diff --git a/gajim/accounts_window.py b/gajim/accounts_window.py
index 8d6c00db6..432452bc4 100644
--- a/gajim/accounts_window.py
+++ b/gajim/accounts_window.py
@@ -13,8 +13,8 @@ from gajim.common.connection import Connection
from gajim.common.zeroconf.connection_zeroconf import ConnectionZeroconf
from gajim.options_dialog import OptionsDialog, OptionsBox
from gajim.common.const import Option, OptionKind, OptionType
-from gajim.gtk import ConfirmationDialog
-from gajim.gtk import YesNoDialog
+from gajim.gtk.dialogs import ConfirmationDialog
+from gajim.gtk.dialogs import YesNoDialog
class AccountsWindow(Gtk.ApplicationWindow):
diff --git a/gajim/adhoc_commands.py b/gajim/adhoc_commands.py
index 20b208a59..a490c873e 100644
--- a/gajim/adhoc_commands.py
+++ b/gajim/adhoc_commands.py
@@ -22,16 +22,17 @@
# be entities that often change the list, it may be slow to fetch it every time
from gi.repository import Gtk
-
import nbxmpp
+
from gajim.common import app
from gajim.common.modules import dataforms
from gajim.common import ged
from gajim import gtkgui_helpers
-from gajim.gtk import HigDialog
from gajim import dataforms_widget
+from gajim.gtk.dialogs import HigDialog
+
class CommandWindow:
"""
diff --git a/gajim/app_actions.py b/gajim/app_actions.py
index 1e76a72d0..1ab8b4390 100644
--- a/gajim/app_actions.py
+++ b/gajim/app_actions.py
@@ -23,25 +23,26 @@ from gajim.common.app import interface
from gajim.common.exceptions import GajimGeneralException
from gajim import config
from gajim import dialogs
-from gajim.gtk import shortcuts_window
from gajim.accounts_window import AccountsWindow
import gajim.plugins.gui
from gajim import disco
+
+from gajim.gtk.dialogs import ShortcutsWindow
from gajim.gtk.history_sync import HistorySyncAssistant
from gajim.gtk.server_info import ServerInfoDialog
from gajim.gtk.mam_preferences import MamPreferences
from gajim.gtk.preferences import Preferences
-from gajim.gtk import JoinGroupchatWindow
-from gajim.gtk import StartChatDialog
-from gajim.gtk import AddNewContactWindow
-from gajim.gtk import SingleMessageWindow
-from gajim.gtk import XMLConsoleWindow
-from gajim.gtk import AboutDialog
-from gajim.gtk import PrivacyListsWindow
-from gajim.gtk import ManageBookmarksWindow
-from gajim.gtk import FeaturesDialog
-from gajim.gtk import AccountCreationWizard
-from gajim.gtk import HistoryWindow
+from gajim.gtk.join_groupchat import JoinGroupchatWindow
+from gajim.gtk.start_chat import StartChatDialog
+from gajim.gtk.add_contact import AddNewContactWindow
+from gajim.gtk.single_message import SingleMessageWindow
+from gajim.gtk.xml_console import XMLConsoleWindow
+from gajim.gtk.about import AboutDialog
+from gajim.gtk.privacy_list import PrivacyListsWindow
+from gajim.gtk.bookmarks import ManageBookmarksWindow
+from gajim.gtk.features import FeaturesDialog
+from gajim.gtk.account_wizard import AccountCreationWizard
+from gajim.gtk.history import HistoryWindow
# General Actions
@@ -289,7 +290,7 @@ def on_faq(action, param):
def on_keyboard_shortcuts(action, param):
- shortcuts_window.show(app.app.get_active_window())
+ ShortcutsWindow()
def on_features(action, param):
diff --git a/gajim/chat_control.py b/gajim/chat_control.py
index 044ee53d5..c1a8235fe 100644
--- a/gajim/chat_control.py
+++ b/gajim/chat_control.py
@@ -42,8 +42,8 @@ from gajim import gtkgui_helpers
from gajim import gui_menu_builder
from gajim import message_control
from gajim import dialogs
-from gajim.gtk import ConfirmationDialog
-from gajim.gtk import AddNewContactWindow
+from gajim.gtk.dialogs import ConfirmationDialog
+from gajim.gtk.add_contact import AddNewContactWindow
from gajim.common import app
from gajim.common import helpers
diff --git a/gajim/chat_control_base.py b/gajim/chat_control_base.py
index d5128f25d..3520bb32d 100644
--- a/gajim/chat_control_base.py
+++ b/gajim/chat_control_base.py
@@ -34,7 +34,7 @@ from gi.repository import Gio
from gajim import gtkgui_helpers
from gajim import message_control
-from gajim.gtk import NonModalConfirmationDialog
+from gajim.gtk.dialogs import NonModalConfirmationDialog
from gajim.gtk.util import convert_rgb_to_hex
from gajim import notify
from gajim.gtk.emoji_chooser import emoji_chooser
@@ -406,7 +406,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
app.interface.instances['logs'].window.present()
app.interface.instances['logs'].open_history(jid, self.account)
else:
- from gajim.gtk import HistoryWindow
+ from gajim.gtk.history import HistoryWindow
app.interface.instances['logs'] = HistoryWindow(jid, self.account)
def change_encryption(self, action, param):
@@ -1099,7 +1099,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
app.interface.instances['logs'].window.present()
app.interface.instances['logs'].open_history(jid, self.account)
else:
- from gajim.gtk import HistoryWindow
+ from gajim.gtk.history import HistoryWindow
app.interface.instances['logs'] = HistoryWindow(jid, self.account)
def _on_send_file(self, action, param):
diff --git a/gajim/common/connection_handlers_events.py b/gajim/common/connection_handlers_events.py
index 4d8a2534d..4e842a23a 100644
--- a/gajim/common/connection_handlers_events.py
+++ b/gajim/common/connection_handlers_events.py
@@ -505,7 +505,7 @@ class GcMessageReceivedEvent(nec.NetworkIncomingEvent):
if self.msg_obj.form_node:
# It could be a voice request. See
# http://www.xmpp.org/extensions/xep-0045.html#voiceapprove
- from gajim.gtk import SingleMessageWindow
+ from gajim.gtk.single_message import SingleMessageWindow
SingleMessageWindow(
self.conn.name, self.fjid,
action='receive', from_whom=self.fjid,
diff --git a/gajim/config.py b/gajim/config.py
index 0062d119a..8b97ab640 100644
--- a/gajim/config.py
+++ b/gajim/config.py
@@ -37,13 +37,13 @@ from gajim import gtkgui_helpers
from gajim import dialogs
from gajim import dataforms_widget
from gajim import gui_menu_builder
-from gajim.gtk import ConfirmationDialog
-from gajim.gtk import ConfirmationDialogDoubleRadio
-from gajim.gtk import ErrorDialog
-from gajim.gtk import InputDialog
from gajim.common import helpers
from gajim.common import app
+from gajim.gtk.dialogs import ConfirmationDialog
+from gajim.gtk.dialogs import ConfirmationDialogDoubleRadio
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import InputDialog
#---------- ManageProxiesWindow class -------------#
class ManageProxiesWindow:
diff --git a/gajim/dialog_messages.py b/gajim/dialog_messages.py
index 51951f95f..2af37b301 100644
--- a/gajim/dialog_messages.py
+++ b/gajim/dialog_messages.py
@@ -21,8 +21,8 @@ from gi.repository import GLib
from gajim.common.app import app
from gajim.common.i18n import _
-from gajim.gtk import ErrorDialog
-from gajim.gtk import InformationDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import InformationDialog
Message = namedtuple('Message', ['title', 'text', 'dialog'])
diff --git a/gajim/dialogs.py b/gajim/dialogs.py
index 3c72b82a5..bce1448fd 100644
--- a/gajim/dialogs.py
+++ b/gajim/dialogs.py
@@ -53,7 +53,8 @@ from gajim.common.modules import dataforms
from gajim.common.exceptions import GajimGeneralException
# Compat with Gajim 1.0.3 for plugins
-from gajim.gtk import *
+from gajim.gtk.dialogs import *
+from gajim.gtk.add_contact import AddNewContactWindow
log = logging.getLogger('gajim.dialogs')
diff --git a/gajim/disco.py b/gajim/disco.py
index 9a8608f20..059305f1b 100644
--- a/gajim/disco.py
+++ b/gajim/disco.py
@@ -49,19 +49,20 @@ from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GdkPixbuf
-from gajim.gtk import ErrorDialog
-from gajim.gtk import InformationDialog
from gajim import gtkgui_helpers
from gajim import groups
from gajim import adhoc_commands
from gajim import search_window
-from gajim.gtk import ServiceRegistration
from gajim.common import app
from gajim.common.i18n import _
from gajim.common import helpers
from gajim.common.const import StyleAttr
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import InformationDialog
+from gajim.gtk.service_registration import ServiceRegistration
+
LABELS = {
1: _('This service has not yet responded with detailed information'),
2: _('This service could not respond with detailed information.\n'
diff --git a/gajim/filetransfers_window.py b/gajim/filetransfers_window.py
index 82540bb72..0a3dbe6b2 100644
--- a/gajim/filetransfers_window.py
+++ b/gajim/filetransfers_window.py
@@ -17,36 +17,39 @@
# You should have received a copy of the GNU General Public License
# along with Gajim. If not, see .
+import os
+import time
+import logging
+from functools import partial
+from pathlib import Path
+from enum import IntEnum, unique
+from datetime import datetime
+
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GdkPixbuf
from gi.repository import GLib
from gi.repository import Pango
-import os
-import time
-from functools import partial
-from pathlib import Path
-
-from enum import IntEnum, unique
-from datetime import datetime
+from nbxmpp.protocol import NS_JINGLE_FILE_TRANSFER_5
from gajim import gtkgui_helpers
from gajim import tooltips
-from gajim.gtk import HigDialog
-from gajim.gtk import InformationDialog
-from gajim.gtk import YesNoDialog
-from gajim.gtk import ErrorDialog
-from gajim.gtk import FTOverwriteConfirmationDialog
-from gajim.gtk import NonModalConfirmationDialog
from gajim.common import app
from gajim.common import helpers
from gajim.common.file_props import FilesProp
from gajim.common.protocol.bytestream import (is_transfer_active, is_transfer_paused,
is_transfer_stopped)
-from gajim.gtk.filechoosers import FileSaveDialog, FileChooserDialog
-from nbxmpp.protocol import NS_JINGLE_FILE_TRANSFER_5
-import logging
+
+from gajim.gtk.dialogs import HigDialog
+from gajim.gtk.dialogs import InformationDialog
+from gajim.gtk.dialogs import YesNoDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import FTOverwriteConfirmationDialog
+from gajim.gtk.dialogs import NonModalConfirmationDialog
+from gajim.gtk.filechoosers import FileSaveDialog
+from gajim.gtk.filechoosers import FileChooserDialog
+
log = logging.getLogger('gajim.filetransfer_window')
@unique
diff --git a/gajim/groupchat_control.py b/gajim/groupchat_control.py
index 79af2fe1e..3616b04cc 100644
--- a/gajim/groupchat_control.py
+++ b/gajim/groupchat_control.py
@@ -48,7 +48,7 @@ from gajim import config
from gajim import vcard
from gajim import dataforms_widget
from gajim import adhoc_commands
-from gajim.gtk import AddNewContactWindow
+
from gajim.common.const import AvatarSize
from gajim.common.caps_cache import muc_caps_cache
from gajim.common import events
@@ -61,18 +61,20 @@ from gajim.common import contacts
from gajim.common.const import StyleAttr
from gajim.chat_control import ChatControl
from gajim.chat_control_base import ChatControlBase
-from gajim.gtk.filechoosers import AvatarChooserDialog
-from gajim.gtk import ErrorDialog
-from gajim.gtk import InputTextDialog
-from gajim.gtk import ConfirmationDialogCheck
-from gajim.gtk import DoubleInputDialog
-from gajim.gtk import InputDialog
-from gajim.gtk import ChangeNickDialog
from gajim.command_system.implementation.hosts import PrivateChatCommands
from gajim.command_system.implementation.hosts import GroupChatCommands
from gajim.common.connection_handlers_events import GcMessageOutgoingEvent
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import InputTextDialog
+from gajim.gtk.dialogs import ConfirmationDialogCheck
+from gajim.gtk.dialogs import DoubleInputDialog
+from gajim.gtk.dialogs import InputDialog
+from gajim.gtk.dialogs import ChangeNickDialog
+from gajim.gtk.filechoosers import AvatarChooserDialog
+from gajim.gtk.add_contact import AddNewContactWindow
+
log = logging.getLogger('gajim.groupchat_control')
diff --git a/gajim/gtk/__init__.py b/gajim/gtk/__init__.py
index 6b9444a80..e92e451bc 100644
--- a/gajim/gtk/__init__.py
+++ b/gajim/gtk/__init__.py
@@ -31,41 +31,3 @@
#
# You should have received a copy of the GNU General Public License
# along with Gajim. If not, see .
-
-from gajim.gtk.dialogs import ErrorDialog
-from gajim.gtk.dialogs import InformationDialog
-from gajim.gtk.dialogs import ChangeNickDialog
-from gajim.gtk.dialogs import FTOverwriteConfirmationDialog
-from gajim.gtk.dialogs import InputDialog
-from gajim.gtk.dialogs import ConfirmationDialogDoubleRadio
-from gajim.gtk.dialogs import InputDialogCheck
-from gajim.gtk.dialogs import DoubleInputDialog
-from gajim.gtk.dialogs import InputTextDialog
-from gajim.gtk.dialogs import PlainConnectionDialog
-from gajim.gtk.dialogs import ConfirmationDialogDoubleCheck
-from gajim.gtk.dialogs import ConfirmationDialogCheck
-from gajim.gtk.dialogs import YesNoDialog
-from gajim.gtk.dialogs import WarningDialog
-from gajim.gtk.dialogs import NonModalConfirmationDialog
-from gajim.gtk.dialogs import ConfirmationDialog
-from gajim.gtk.dialogs import AspellDictError
-from gajim.gtk.dialogs import HigDialog
-from gajim.gtk.dialogs import SSLErrorDialog
-from gajim.gtk.dialogs import ChangePasswordDialog
-from gajim.gtk.dialogs import NewConfirmationDialog
-
-from gajim.gtk.about import AboutDialog
-from gajim.gtk.join_groupchat import JoinGroupchatWindow
-from gajim.gtk.add_contact import AddNewContactWindow
-from gajim.gtk.start_chat import StartChatDialog
-from gajim.gtk.xml_console import XMLConsoleWindow
-from gajim.gtk.privacy_list import PrivacyListsWindow
-from gajim.gtk.single_message import SingleMessageWindow
-from gajim.gtk.server_info import ServerInfoDialog
-from gajim.gtk.pep_config import ManagePEPServicesWindow
-from gajim.gtk.bookmarks import ManageBookmarksWindow
-from gajim.gtk.profile import ProfileWindow
-from gajim.gtk.features import FeaturesDialog
-from gajim.gtk.account_wizard import AccountCreationWizard
-from gajim.gtk.service_registration import ServiceRegistration
-from gajim.gtk.history import HistoryWindow
diff --git a/gajim/gtk/account_wizard.py b/gajim/gtk/account_wizard.py
index e8c37ddaa..aa74663ca 100644
--- a/gajim/gtk/account_wizard.py
+++ b/gajim/gtk/account_wizard.py
@@ -27,7 +27,7 @@ from gajim.common.modules import dataforms
from gajim.config import ManageProxiesWindow
from gajim.config import FakeDataForm
from gajim.gtk.util import get_builder
-from gajim.gtk import ErrorDialog
+from gajim.gtk.dialogs import ErrorDialog
from gajim import gtkgui_helpers
from gajim import dataforms_widget
from gajim import gui_menu_builder
diff --git a/gajim/gtk/add_contact.py b/gajim/gtk/add_contact.py
index f0293e913..4aa1ab9b3 100644
--- a/gajim/gtk/add_contact.py
+++ b/gajim/gtk/add_contact.py
@@ -19,7 +19,7 @@ from gajim.common import app
from gajim.common import ged
from gajim.common import helpers
from gajim.common.i18n import _
-from gajim.gtk import ErrorDialog
+from gajim.gtk.dialogs import ErrorDialog
from gajim.gtk.util import get_builder
@@ -205,7 +205,7 @@ class AddNewContactWindow(Gtk.ApplicationWindow):
model = self.protocol_jid_combobox.get_model()
row = self.protocol_jid_combobox.get_active()
jid = model[row][0]
- from gajim.gtk import ServiceRegistration
+ from gajim.gtk.service_registration import ServiceRegistration
ServiceRegistration(self.account, jid)
def _on_key_press(self, widget, event):
diff --git a/gajim/gtk/bookmarks.py b/gajim/gtk/bookmarks.py
index 92979d8e9..a96828a45 100644
--- a/gajim/gtk/bookmarks.py
+++ b/gajim/gtk/bookmarks.py
@@ -19,7 +19,7 @@ from gajim import gui_menu_builder
from gajim.common import app
from gajim.common import helpers
from gajim.common.i18n import Q_
-from gajim.gtk import ErrorDialog
+from gajim.gtk.dialogs import ErrorDialog
from gajim.gtk.util import get_builder
diff --git a/gajim/gtk/dialogs.py b/gajim/gtk/dialogs.py
index 456b912aa..b20a0011c 100644
--- a/gajim/gtk/dialogs.py
+++ b/gajim/gtk/dialogs.py
@@ -1015,3 +1015,18 @@ class NewConfirmationDialog(Gtk.MessageDialog):
if button.callback is not None:
button.callback()
self.destroy()
+
+
+class ShortcutsWindow:
+ def __init__(self):
+ transient = app.app.get_active_window()
+ print(transient)
+ builder = get_builder('shortcuts_window.ui')
+ self.window = builder.get_object('shortcuts_window')
+ self.window.connect('destroy', self._on_window_destroy)
+ self.window.set_transient_for(transient)
+ self.window.show_all()
+ self.window.present()
+
+ def _on_window_destroy(self, widget):
+ self.window = None
diff --git a/gajim/gtk/history.py b/gajim/gtk/history.py
index 82f33b091..f5a0b5e7f 100644
--- a/gajim/gtk/history.py
+++ b/gajim/gtk/history.py
@@ -30,7 +30,7 @@ from gi.repository import Gdk
from gi.repository import GLib
from gajim import conversation_textview
-from gajim.gtk import ErrorDialog
+from gajim.gtk.dialogs import ErrorDialog
from gajim.gtk import util
from gajim.gtk.util import python_month, gtk_month
from gajim.common import app
diff --git a/gajim/gtk/join_groupchat.py b/gajim/gtk/join_groupchat.py
index 2102fb1c8..a43e7b062 100644
--- a/gajim/gtk/join_groupchat.py
+++ b/gajim/gtk/join_groupchat.py
@@ -20,7 +20,7 @@ from gajim.common import app
from gajim.common import helpers
from gajim.common.caps_cache import muc_caps_cache
from gajim.common.exceptions import GajimGeneralException
-from gajim.gtk import ErrorDialog
+from gajim.gtk.dialogs import ErrorDialog
from gajim.gtk.util import get_builder
diff --git a/gajim/gtk/mam_preferences.py b/gajim/gtk/mam_preferences.py
index cb461ca9f..72949ae17 100644
--- a/gajim/gtk/mam_preferences.py
+++ b/gajim/gtk/mam_preferences.py
@@ -19,9 +19,9 @@ from gi.repository import Gdk
from gajim.common import app
from gajim.common import ged
-from gajim.gtk.util import get_builder
-from gajim.gtk import HigDialog
+from gajim.gtk.util import get_builder
+from gajim.gtk.dialogs import HigDialog
log = logging.getLogger('gajim.gtk.mam_preferences')
diff --git a/gajim/gtk/pep_config.py b/gajim/gtk/pep_config.py
index 4a58361cd..5176865a4 100644
--- a/gajim/gtk/pep_config.py
+++ b/gajim/gtk/pep_config.py
@@ -16,8 +16,8 @@ from gi.repository import Gtk
from gajim.common import app
from gajim.common import ged
-from gajim.gtk import ErrorDialog
-from gajim.gtk import WarningDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import WarningDialog
from gajim.gtk.util import get_builder
diff --git a/gajim/gtk/preferences.py b/gajim/gtk/preferences.py
index d59f1f1d7..01ab79b16 100644
--- a/gajim/gtk/preferences.py
+++ b/gajim/gtk/preferences.py
@@ -27,7 +27,7 @@ from gajim.common import idle
from gajim.gtk.util import get_dark_theme
from gajim.gtk.util import set_dark_theme
from gajim.gtk.util import get_builder
-from gajim.gtk import AspellDictError
+from gajim.gtk.dialogs import AspellDictError
from gajim.gtk.themes import Themes
from gajim.advanced_configuration_window import AdvancedConfigurationWindow
from gajim.chat_control_base import ChatControlBase
diff --git a/gajim/gtk/privacy_list.py b/gajim/gtk/privacy_list.py
index e893e1bc9..b151e7ae1 100644
--- a/gajim/gtk/privacy_list.py
+++ b/gajim/gtk/privacy_list.py
@@ -19,7 +19,7 @@ from gi.repository import GObject
from gajim.common import app
from gajim.common import ged
-from gajim.gtk import ErrorDialog
+from gajim.gtk.dialogs import ErrorDialog
from gajim.gtk.util import get_builder
diff --git a/gajim/gtk/profile.py b/gajim/gtk/profile.py
index 4b5db96ac..25ef6d1ff 100644
--- a/gajim/gtk/profile.py
+++ b/gajim/gtk/profile.py
@@ -26,8 +26,8 @@ from gi.repository import Gdk
from gi.repository import GLib
from gajim import gtkgui_helpers
-from gajim.gtk import ErrorDialog
-from gajim.gtk import InformationDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import InformationDialog
from gajim.gtk.util import get_builder
from gajim.gtk.filechoosers import AvatarChooserDialog
from gajim.common.const import AvatarSize
diff --git a/gajim/gtk/shortcuts_window.py b/gajim/gtk/shortcuts_window.py
deleted file mode 100644
index 5303c1731..000000000
--- a/gajim/gtk/shortcuts_window.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# This file is part of Gajim.
-#
-# Gajim is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published
-# by the Free Software Foundation; version 3 only.
-#
-# Gajim is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Gajim. If not, see .
-
-from gajim.gtk.util import get_builder
-from gajim.common import helpers
-
-__all__ = ['show']
-
-
-class ShortcutsWindow:
- def __init__(self):
- self.window = None
-
- def show(self, parent=None):
- if self.window is None:
- builder = get_builder('shortcuts_window.ui')
- self.window = builder.get_object('shortcuts_window')
- self.window.connect('destroy', self._on_window_destroy)
- self.window.set_transient_for(parent)
- self.window.show_all()
- self.window.present()
-
- def _on_window_destroy(self, widget):
- self.window = None
-
-
-def show_shortcuts_webpage(self, parent=None):
- helpers.launch_browser_mailer(
- 'url',
- 'https://dev.gajim.org/gajim/gajim/wikis/help/keyboardshortcuts')
-
-show = ShortcutsWindow().show
diff --git a/gajim/gtk/single_message.py b/gajim/gtk/single_message.py
index c48d5a0f6..ee5968a69 100644
--- a/gajim/gtk/single_message.py
+++ b/gajim/gtk/single_message.py
@@ -21,8 +21,8 @@ from gajim.common import app
from gajim.common.modules import dataforms
from gajim.common import helpers
from gajim.common.connection_handlers_events import MessageOutgoingEvent
-from gajim.gtk import ErrorDialog
-from gajim.gtk import AspellDictError
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import AspellDictError
from gajim.gtk.util import get_builder
from gajim.gtk.util import get_iconset_name_for
from gajim.gtk.util import get_completion_liststore
diff --git a/gajim/gtk/themes.py b/gajim/gtk/themes.py
index 5291e6c13..4b0904c5b 100644
--- a/gajim/gtk/themes.py
+++ b/gajim/gtk/themes.py
@@ -24,8 +24,8 @@ from gajim.common import app
from gajim.common.i18n import _
from gajim.common.const import StyleAttr, DialogButton, ButtonAction
from gajim.common.connection_handlers_events import StyleChanged
-from gajim.gtk import ErrorDialog
-from gajim.gtk import NewConfirmationDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import NewConfirmationDialog
from gajim.gtk.util import get_builder
StyleOption = namedtuple('StyleOption', 'label selector attr')
diff --git a/gajim/gtk/xml_console.py b/gajim/gtk/xml_console.py
index ccbd8a8a6..fb9bbdcba 100644
--- a/gajim/gtk/xml_console.py
+++ b/gajim/gtk/xml_console.py
@@ -22,7 +22,7 @@ from gi.repository import GLib
from gajim.common import app
from gajim.common import ged
from gajim.common.const import Option, OptionKind, OptionType, StyleAttr
-from gajim.gtk import ErrorDialog
+from gajim.gtk.dialogs import ErrorDialog
from gajim.gtk import util
from gajim.gtk.util import get_builder
from gajim.gtk.util import get_image_button
diff --git a/gajim/gtkgui_helpers.py b/gajim/gtkgui_helpers.py
index 87fb47048..ede427f52 100644
--- a/gajim/gtkgui_helpers.py
+++ b/gajim/gtkgui_helpers.py
@@ -423,9 +423,9 @@ def scale_pixbuf_from_data(data, size):
return scale_pixbuf(pixbuf, size)
def on_avatar_save_as_menuitem_activate(widget, avatar, default_name=''):
- from gajim.gtk import ErrorDialog
- from gajim.gtk import ConfirmationDialog
- from gajim.gtk import FTOverwriteConfirmationDialog
+ from gajim.gtk.dialogs import ErrorDialog
+ from gajim.gtk.dialogs import ConfirmationDialog
+ from gajim.gtk.dialogs import FTOverwriteConfirmationDialog
from gajim.gtk.filechoosers import AvatarSaveDialog
def on_continue(response, file_path):
if response < 0:
diff --git a/gajim/gui_interface.py b/gajim/gui_interface.py
index 48780dae1..f61c1b2d0 100644
--- a/gajim/gui_interface.py
+++ b/gajim/gui_interface.py
@@ -36,14 +36,17 @@ import sys
import re
import time
import hashlib
+import logging
from functools import partial
+from threading import Thread
from gi.repository import Gtk
from gi.repository import GdkPixbuf
from gi.repository import GLib
from gi.repository import Gio
from gi.repository import Gdk
-
+from nbxmpp import idlequeue
+from nbxmpp import Hashes2
import OpenSSL
try:
@@ -67,8 +70,6 @@ from gajim import message_control
from gajim.dialog_messages import get_dialog
from gajim.dialogs import ProgressWindow
-from gajim.gtk.filechoosers import FileChooserDialog
-
from gajim.chat_control_base import ChatControlBase
from gajim.chat_control import ChatControl
from gajim.groupchat_control import GroupchatControl
@@ -80,9 +81,6 @@ from gajim.atom_window import AtomWindow
from gajim.session import ChatControlSession
from gajim.common import idle
-
-from nbxmpp import idlequeue
-from nbxmpp import Hashes2
from gajim.common.zeroconf import connection_zeroconf
from gajim.common import resolver
from gajim.common import caps_cache
@@ -103,30 +101,29 @@ from gajim.common.const import ACTIVITIES, MOODS
from gajim import roster_window
from gajim import config
-from threading import Thread
from gajim.common import ged
from gajim.common.caps_cache import muc_caps_cache
-
-from gajim.gtk.emoji_data import emoji_data, emoji_ascii_data
-from gajim.gtk import JoinGroupchatWindow
-from gajim.gtk import ErrorDialog
-from gajim.gtk import WarningDialog
-from gajim.gtk import InformationDialog
-from gajim.gtk import InputDialog
-from gajim.gtk import YesNoDialog
-from gajim.gtk import InputTextDialog
-from gajim.gtk import PlainConnectionDialog
-from gajim.gtk import SSLErrorDialog
-from gajim.gtk import ConfirmationDialogDoubleCheck
-from gajim.gtk import ChangeNickDialog
-from gajim.gtk import ProfileWindow
-
from gajim.common import configpaths
-
from gajim.common import optparser
-parser = optparser.OptionsParser(configpaths.get('CONFIG_FILE'))
-import logging
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import WarningDialog
+from gajim.gtk.dialogs import InformationDialog
+from gajim.gtk.dialogs import InputDialog
+from gajim.gtk.dialogs import YesNoDialog
+from gajim.gtk.dialogs import InputTextDialog
+from gajim.gtk.dialogs import PlainConnectionDialog
+from gajim.gtk.dialogs import SSLErrorDialog
+from gajim.gtk.dialogs import ConfirmationDialogDoubleCheck
+from gajim.gtk.dialogs import ChangeNickDialog
+from gajim.gtk.profile import ProfileWindow
+from gajim.gtk.join_groupchat import JoinGroupchatWindow
+from gajim.gtk.filechoosers import FileChooserDialog
+from gajim.gtk.emoji_data import emoji_data
+from gajim.gtk.emoji_data import emoji_ascii_data
+
+
+parser = optparser.OptionsParser(configpaths.get('CONFIG_FILE'))
log = logging.getLogger('gajim.interface')
class Interface:
diff --git a/gajim/history_manager.py b/gajim/history_manager.py
index 295608c0d..aa18eb739 100644
--- a/gajim/history_manager.py
+++ b/gajim/history_manager.py
@@ -83,9 +83,9 @@ if is_standalone():
from gajim.common.const import JIDConstant, KindConstant
from gajim.common import helpers
-from gajim.gtk import YesNoDialog
-from gajim.gtk import ErrorDialog
-from gajim.gtk import ConfirmationDialog
+from gajim.gtk.dialogs import YesNoDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import ConfirmationDialog
from gajim.gtk.filechoosers import FileSaveDialog
from gajim.gtk.util import convert_rgb_to_hex
from gajim import gtkgui_helpers
diff --git a/gajim/message_window.py b/gajim/message_window.py
index 54479ca24..7f38a9f26 100644
--- a/gajim/message_window.py
+++ b/gajim/message_window.py
@@ -31,14 +31,16 @@ from gi.repository import GObject
from gi.repository import GLib
from gajim import common
-from gajim import gtkgui_helpers
-from gajim import message_control
-from gajim.gtk import YesNoDialog
-from gajim.chat_control_base import ChatControlBase
-from gajim.chat_control import ChatControl
from gajim.common import app
from gajim.common.i18n import Q_
+from gajim import gtkgui_helpers
+from gajim import message_control
+from gajim.chat_control_base import ChatControlBase
+from gajim.chat_control import ChatControl
+
+from gajim.gtk.dialogs import YesNoDialog
+
####################
class MessageWindow:
diff --git a/gajim/options_dialog.py b/gajim/options_dialog.py
index dffcf563d..754be84f8 100644
--- a/gajim/options_dialog.py
+++ b/gajim/options_dialog.py
@@ -5,8 +5,8 @@ from gajim import gtkgui_helpers
from gajim.common.const import OptionKind, OptionType
from gajim.common.exceptions import GajimGeneralException
from gajim import dialogs
-from gajim.gtk import ErrorDialog
-from gajim.gtk import ChangePasswordDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import ChangePasswordDialog
class OptionsDialog(Gtk.ApplicationWindow):
diff --git a/gajim/plugins/gui.py b/gajim/plugins/gui.py
index 60d67093b..56aa18fbb 100644
--- a/gajim/plugins/gui.py
+++ b/gajim/plugins/gui.py
@@ -31,8 +31,8 @@ import os
from enum import IntEnum, unique
from gajim import gtkgui_helpers
-from gajim.gtk import WarningDialog
-from gajim.gtk import YesNoDialog
+from gajim.gtk.dialogs import WarningDialog
+from gajim.gtk.dialogs import YesNoDialog
from gajim.gtk.filechoosers import ArchiveChooserDialog
from gajim.common import app
from gajim.common import configpaths
diff --git a/gajim/remote_control.py b/gajim/remote_control.py
index d772fa51b..69b662494 100644
--- a/gajim/remote_control.py
+++ b/gajim/remote_control.py
@@ -31,7 +31,7 @@ from gi.repository import Gio
from gajim.common import app
from gajim.common import helpers
-from gajim.gtk import AddNewContactWindow
+from gajim.gtk.add_contact import AddNewContactWindow
from gajim.common import ged
from gajim.common.connection_handlers_events import MessageOutgoingEvent
from gajim.common.connection_handlers_events import GcMessageOutgoingEvent
diff --git a/gajim/roster_window.py b/gajim/roster_window.py
index 42bd1d732..1d6b09431 100644
--- a/gajim/roster_window.py
+++ b/gajim/roster_window.py
@@ -28,6 +28,13 @@
# You should have received a copy of the GNU General Public License
# along with Gajim. If not, see .
+import os
+import sys
+import time
+import locale
+import logging
+from enum import IntEnum, unique
+
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GdkPixbuf
@@ -35,13 +42,7 @@ from gi.repository import Pango
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gio
-import os
-import sys
-import time
-import locale
-import logging
-
-from enum import IntEnum, unique
+from nbxmpp.protocol import NS_FILE, NS_ROSTERX, NS_CONFERENCE
from gajim import dialogs
from gajim import vcard
@@ -54,22 +55,6 @@ from gajim import message_control
from gajim import adhoc_commands
from gajim.accounts_window import AccountsWindow
-from gajim.gtk import JoinGroupchatWindow
-from gajim.gtk import ConfirmationDialogCheck
-from gajim.gtk import ConfirmationDialog
-from gajim.gtk import ErrorDialog
-from gajim.gtk import InputDialog
-from gajim.gtk import WarningDialog
-from gajim.gtk import InformationDialog
-from gajim.gtk import NonModalConfirmationDialog
-from gajim.gtk import SingleMessageWindow
-from gajim.gtk import AddNewContactWindow
-from gajim.gtk import ManagePEPServicesWindow
-from gajim.gtk import ManageBookmarksWindow
-from gajim.gtk import AccountCreationWizard
-from gajim.gtk import ServiceRegistration
-from gajim.gtk import HistoryWindow
-
from gajim.common import app
from gajim.common import helpers
from gajim.common import idle
@@ -80,7 +65,22 @@ if app.is_installed('GEOCLUE'):
from gajim.common import location_listener
from gajim.common import ged
from gajim.message_window import MessageWindowMgr
-from nbxmpp.protocol import NS_FILE, NS_ROSTERX, NS_CONFERENCE
+
+from gajim.gtk.dialogs import ConfirmationDialogCheck
+from gajim.gtk.dialogs import ConfirmationDialog
+from gajim.gtk.dialogs import ErrorDialog
+from gajim.gtk.dialogs import InputDialog
+from gajim.gtk.dialogs import WarningDialog
+from gajim.gtk.dialogs import InformationDialog
+from gajim.gtk.dialogs import NonModalConfirmationDialog
+from gajim.gtk.join_groupchat import JoinGroupchatWindow
+from gajim.gtk.single_message import SingleMessageWindow
+from gajim.gtk.add_contact import AddNewContactWindow
+from gajim.gtk.pep_config import ManagePEPServicesWindow
+from gajim.gtk.bookmarks import ManageBookmarksWindow
+from gajim.gtk.account_wizard import AccountCreationWizard
+from gajim.gtk.service_registration import ServiceRegistration
+from gajim.gtk.history import HistoryWindow
log = logging.getLogger('gajim.roster')
diff --git a/gajim/search_window.py b/gajim/search_window.py
index 9824107e7..8e7b9a982 100644
--- a/gajim/search_window.py
+++ b/gajim/search_window.py
@@ -27,7 +27,7 @@ from gajim import gtkgui_helpers
from gajim import vcard
from gajim import config
from gajim import dataforms_widget
-from gajim.gtk import AddNewContactWindow
+from gajim.gtk.add_contact import AddNewContactWindow
class SearchWindow:
diff --git a/gajim/session.py b/gajim/session.py
index 7409937be..d907bb36b 100644
--- a/gajim/session.py
+++ b/gajim/session.py
@@ -30,7 +30,7 @@ from gajim.common import contacts
from gajim.common import ged
from gajim.common.connection_handlers_events import ChatstateReceivedEvent
from gajim.common.const import KindConstant
-from gajim.gtk import SingleMessageWindow
+from gajim.gtk.single_message import SingleMessageWindow
class ChatControlSession:
diff --git a/gajim/statusicon.py b/gajim/statusicon.py
index d4e1f6286..0f017bd04 100644
--- a/gajim/statusicon.py
+++ b/gajim/statusicon.py
@@ -29,7 +29,7 @@ from gajim import tooltips
from gajim import gtkgui_helpers
from gajim.common import app
from gajim.common import helpers
-from gajim.gtk import SingleMessageWindow
+from gajim.gtk.single_message import SingleMessageWindow
class StatusIcon: