diff --git a/src/python/__about__.py b/src/backend/__about__.py similarity index 100% rename from src/python/__about__.py rename to src/backend/__about__.py diff --git a/src/python/__init__.py b/src/backend/__init__.py similarity index 100% rename from src/python/__init__.py rename to src/backend/__init__.py diff --git a/src/python/app.py b/src/backend/app.py similarity index 100% rename from src/python/app.py rename to src/backend/app.py diff --git a/src/python/backend.py b/src/backend/backend.py similarity index 100% rename from src/python/backend.py rename to src/backend/backend.py diff --git a/src/python/config_files.py b/src/backend/config_files.py similarity index 100% rename from src/python/config_files.py rename to src/backend/config_files.py diff --git a/src/python/errors.py b/src/backend/errors.py similarity index 100% rename from src/python/errors.py rename to src/backend/errors.py diff --git a/src/python/html_filter.py b/src/backend/html_filter.py similarity index 100% rename from src/python/html_filter.py rename to src/backend/html_filter.py diff --git a/src/python/matrix_client.py b/src/backend/matrix_client.py similarity index 100% rename from src/python/matrix_client.py rename to src/backend/matrix_client.py diff --git a/src/python/media_cache.py b/src/backend/media_cache.py similarity index 100% rename from src/python/media_cache.py rename to src/backend/media_cache.py diff --git a/src/python/models/__init__.py b/src/backend/models/__init__.py similarity index 100% rename from src/python/models/__init__.py rename to src/backend/models/__init__.py diff --git a/src/python/models/items.py b/src/backend/models/items.py similarity index 100% rename from src/python/models/items.py rename to src/backend/models/items.py diff --git a/src/python/models/model.py b/src/backend/models/model.py similarity index 100% rename from src/python/models/model.py rename to src/backend/models/model.py diff --git a/src/python/models/model_item.py b/src/backend/models/model_item.py similarity index 100% rename from src/python/models/model_item.py rename to src/backend/models/model_item.py diff --git a/src/python/models/model_store.py b/src/backend/models/model_store.py similarity index 100% rename from src/python/models/model_store.py rename to src/backend/models/model_store.py diff --git a/src/python/nio_callbacks.py b/src/backend/nio_callbacks.py similarity index 100% rename from src/python/nio_callbacks.py rename to src/backend/nio_callbacks.py diff --git a/src/python/pyotherside_events.py b/src/backend/pyotherside_events.py similarity index 100% rename from src/python/pyotherside_events.py rename to src/backend/pyotherside_events.py diff --git a/src/python/theme_parser.py b/src/backend/theme_parser.py similarity index 100% rename from src/python/theme_parser.py rename to src/backend/theme_parser.py diff --git a/src/python/utils.py b/src/backend/utils.py similarity index 100% rename from src/python/utils.py rename to src/backend/utils.py diff --git a/src/qml/Base/HAvatar.qml b/src/gui/Base/HAvatar.qml similarity index 100% rename from src/qml/Base/HAvatar.qml rename to src/gui/Base/HAvatar.qml diff --git a/src/qml/Base/HBox.qml b/src/gui/Base/HBox.qml similarity index 100% rename from src/qml/Base/HBox.qml rename to src/gui/Base/HBox.qml diff --git a/src/qml/Base/HBusyIndicator.qml b/src/gui/Base/HBusyIndicator.qml similarity index 100% rename from src/qml/Base/HBusyIndicator.qml rename to src/gui/Base/HBusyIndicator.qml diff --git a/src/qml/Base/HButton.qml b/src/gui/Base/HButton.qml similarity index 100% rename from src/qml/Base/HButton.qml rename to src/gui/Base/HButton.qml diff --git a/src/qml/Base/HButtonBackground.qml b/src/gui/Base/HButtonBackground.qml similarity index 100% rename from src/qml/Base/HButtonBackground.qml rename to src/gui/Base/HButtonBackground.qml diff --git a/src/qml/Base/HButtonContent.qml b/src/gui/Base/HButtonContent.qml similarity index 100% rename from src/qml/Base/HButtonContent.qml rename to src/gui/Base/HButtonContent.qml diff --git a/src/qml/Base/HCheckBox.qml b/src/gui/Base/HCheckBox.qml similarity index 100% rename from src/qml/Base/HCheckBox.qml rename to src/gui/Base/HCheckBox.qml diff --git a/src/qml/Base/HCircleProgressBar.qml b/src/gui/Base/HCircleProgressBar.qml similarity index 100% rename from src/qml/Base/HCircleProgressBar.qml rename to src/gui/Base/HCircleProgressBar.qml diff --git a/src/qml/Base/HColorAnimation.qml b/src/gui/Base/HColorAnimation.qml similarity index 100% rename from src/qml/Base/HColorAnimation.qml rename to src/gui/Base/HColorAnimation.qml diff --git a/src/qml/Base/HColumnLayout.qml b/src/gui/Base/HColumnLayout.qml similarity index 100% rename from src/qml/Base/HColumnLayout.qml rename to src/gui/Base/HColumnLayout.qml diff --git a/src/qml/Base/HDrawer.qml b/src/gui/Base/HDrawer.qml similarity index 100% rename from src/qml/Base/HDrawer.qml rename to src/gui/Base/HDrawer.qml diff --git a/src/qml/Base/HFlickable.qml b/src/gui/Base/HFlickable.qml similarity index 100% rename from src/qml/Base/HFlickable.qml rename to src/gui/Base/HFlickable.qml diff --git a/src/qml/Base/HFlow.qml b/src/gui/Base/HFlow.qml similarity index 100% rename from src/qml/Base/HFlow.qml rename to src/gui/Base/HFlow.qml diff --git a/src/qml/Base/HGridLayout.qml b/src/gui/Base/HGridLayout.qml similarity index 100% rename from src/qml/Base/HGridLayout.qml rename to src/gui/Base/HGridLayout.qml diff --git a/src/qml/Base/HIcon.qml b/src/gui/Base/HIcon.qml similarity index 100% rename from src/qml/Base/HIcon.qml rename to src/gui/Base/HIcon.qml diff --git a/src/qml/Base/HImage.qml b/src/gui/Base/HImage.qml similarity index 100% rename from src/qml/Base/HImage.qml rename to src/gui/Base/HImage.qml diff --git a/src/qml/Base/HLabel.qml b/src/gui/Base/HLabel.qml similarity index 100% rename from src/qml/Base/HLabel.qml rename to src/gui/Base/HLabel.qml diff --git a/src/qml/Base/HLabeledTextField.qml b/src/gui/Base/HLabeledTextField.qml similarity index 100% rename from src/qml/Base/HLabeledTextField.qml rename to src/gui/Base/HLabeledTextField.qml diff --git a/src/qml/Base/HListModel.qml b/src/gui/Base/HListModel.qml similarity index 100% rename from src/qml/Base/HListModel.qml rename to src/gui/Base/HListModel.qml diff --git a/src/qml/Base/HListView.qml b/src/gui/Base/HListView.qml similarity index 100% rename from src/qml/Base/HListView.qml rename to src/gui/Base/HListView.qml diff --git a/src/qml/Base/HLoader.qml b/src/gui/Base/HLoader.qml similarity index 100% rename from src/qml/Base/HLoader.qml rename to src/gui/Base/HLoader.qml diff --git a/src/qml/Base/HMenu.qml b/src/gui/Base/HMenu.qml similarity index 100% rename from src/qml/Base/HMenu.qml rename to src/gui/Base/HMenu.qml diff --git a/src/qml/Base/HMenuItem.qml b/src/gui/Base/HMenuItem.qml similarity index 100% rename from src/qml/Base/HMenuItem.qml rename to src/gui/Base/HMenuItem.qml diff --git a/src/qml/Base/HMxcImage.qml b/src/gui/Base/HMxcImage.qml similarity index 100% rename from src/qml/Base/HMxcImage.qml rename to src/gui/Base/HMxcImage.qml diff --git a/src/qml/Base/HNoticePage.qml b/src/gui/Base/HNoticePage.qml similarity index 100% rename from src/qml/Base/HNoticePage.qml rename to src/gui/Base/HNoticePage.qml diff --git a/src/qml/Base/HNumberAnimation.qml b/src/gui/Base/HNumberAnimation.qml similarity index 100% rename from src/qml/Base/HNumberAnimation.qml rename to src/gui/Base/HNumberAnimation.qml diff --git a/src/qml/Base/HPage.qml b/src/gui/Base/HPage.qml similarity index 100% rename from src/qml/Base/HPage.qml rename to src/gui/Base/HPage.qml diff --git a/src/qml/Base/HPauseAnimation.qml b/src/gui/Base/HPauseAnimation.qml similarity index 100% rename from src/qml/Base/HPauseAnimation.qml rename to src/gui/Base/HPauseAnimation.qml diff --git a/src/qml/Base/HPopup.qml b/src/gui/Base/HPopup.qml similarity index 100% rename from src/qml/Base/HPopup.qml rename to src/gui/Base/HPopup.qml diff --git a/src/qml/Base/HProgressBar.qml b/src/gui/Base/HProgressBar.qml similarity index 100% rename from src/qml/Base/HProgressBar.qml rename to src/gui/Base/HProgressBar.qml diff --git a/src/qml/Base/HRepeater.qml b/src/gui/Base/HRepeater.qml similarity index 100% rename from src/qml/Base/HRepeater.qml rename to src/gui/Base/HRepeater.qml diff --git a/src/qml/Base/HRichLabel.qml b/src/gui/Base/HRichLabel.qml similarity index 100% rename from src/qml/Base/HRichLabel.qml rename to src/gui/Base/HRichLabel.qml diff --git a/src/qml/Base/HRoomAvatar.qml b/src/gui/Base/HRoomAvatar.qml similarity index 100% rename from src/qml/Base/HRoomAvatar.qml rename to src/gui/Base/HRoomAvatar.qml diff --git a/src/qml/Base/HRowLayout.qml b/src/gui/Base/HRowLayout.qml similarity index 100% rename from src/qml/Base/HRowLayout.qml rename to src/gui/Base/HRowLayout.qml diff --git a/src/qml/Base/HScrollableTextArea.qml b/src/gui/Base/HScrollableTextArea.qml similarity index 100% rename from src/qml/Base/HScrollableTextArea.qml rename to src/gui/Base/HScrollableTextArea.qml diff --git a/src/qml/Base/HSelectableLabel.qml b/src/gui/Base/HSelectableLabel.qml similarity index 100% rename from src/qml/Base/HSelectableLabel.qml rename to src/gui/Base/HSelectableLabel.qml diff --git a/src/qml/Base/HSelectableLabelContainer.qml b/src/gui/Base/HSelectableLabelContainer.qml similarity index 100% rename from src/qml/Base/HSelectableLabelContainer.qml rename to src/gui/Base/HSelectableLabelContainer.qml diff --git a/src/qml/Base/HShortcut.qml b/src/gui/Base/HShortcut.qml similarity index 100% rename from src/qml/Base/HShortcut.qml rename to src/gui/Base/HShortcut.qml diff --git a/src/qml/Base/HSlider.qml b/src/gui/Base/HSlider.qml similarity index 100% rename from src/qml/Base/HSlider.qml rename to src/gui/Base/HSlider.qml diff --git a/src/qml/Base/HSpacer.qml b/src/gui/Base/HSpacer.qml similarity index 100% rename from src/qml/Base/HSpacer.qml rename to src/gui/Base/HSpacer.qml diff --git a/src/qml/Base/HSwipeView.qml b/src/gui/Base/HSwipeView.qml similarity index 100% rename from src/qml/Base/HSwipeView.qml rename to src/gui/Base/HSwipeView.qml diff --git a/src/qml/Base/HTabBar.qml b/src/gui/Base/HTabBar.qml similarity index 100% rename from src/qml/Base/HTabBar.qml rename to src/gui/Base/HTabBar.qml diff --git a/src/qml/Base/HTabButton.qml b/src/gui/Base/HTabButton.qml similarity index 100% rename from src/qml/Base/HTabButton.qml rename to src/gui/Base/HTabButton.qml diff --git a/src/qml/Base/HTabContainer.qml b/src/gui/Base/HTabContainer.qml similarity index 100% rename from src/qml/Base/HTabContainer.qml rename to src/gui/Base/HTabContainer.qml diff --git a/src/qml/Base/HTextField.qml b/src/gui/Base/HTextField.qml similarity index 100% rename from src/qml/Base/HTextField.qml rename to src/gui/Base/HTextField.qml diff --git a/src/qml/Base/HTile.qml b/src/gui/Base/HTile.qml similarity index 100% rename from src/qml/Base/HTile.qml rename to src/gui/Base/HTile.qml diff --git a/src/qml/Base/HTileDelegate.qml b/src/gui/Base/HTileDelegate.qml similarity index 100% rename from src/qml/Base/HTileDelegate.qml rename to src/gui/Base/HTileDelegate.qml diff --git a/src/qml/Base/HToolTip.qml b/src/gui/Base/HToolTip.qml similarity index 100% rename from src/qml/Base/HToolTip.qml rename to src/gui/Base/HToolTip.qml diff --git a/src/qml/Base/HUserAvatar.qml b/src/gui/Base/HUserAvatar.qml similarity index 100% rename from src/qml/Base/HUserAvatar.qml rename to src/gui/Base/HUserAvatar.qml diff --git a/src/qml/Base/MediaPlayer/AudioPlayer.qml b/src/gui/Base/MediaPlayer/AudioPlayer.qml similarity index 100% rename from src/qml/Base/MediaPlayer/AudioPlayer.qml rename to src/gui/Base/MediaPlayer/AudioPlayer.qml diff --git a/src/qml/Base/MediaPlayer/OSD.qml b/src/gui/Base/MediaPlayer/OSD.qml similarity index 100% rename from src/qml/Base/MediaPlayer/OSD.qml rename to src/gui/Base/MediaPlayer/OSD.qml diff --git a/src/qml/Base/MediaPlayer/OSDButton.qml b/src/gui/Base/MediaPlayer/OSDButton.qml similarity index 100% rename from src/qml/Base/MediaPlayer/OSDButton.qml rename to src/gui/Base/MediaPlayer/OSDButton.qml diff --git a/src/qml/Base/MediaPlayer/OSDLabel.qml b/src/gui/Base/MediaPlayer/OSDLabel.qml similarity index 100% rename from src/qml/Base/MediaPlayer/OSDLabel.qml rename to src/gui/Base/MediaPlayer/OSDLabel.qml diff --git a/src/qml/Base/MediaPlayer/VideoPlayer.qml b/src/gui/Base/MediaPlayer/VideoPlayer.qml similarity index 100% rename from src/qml/Base/MediaPlayer/VideoPlayer.qml rename to src/gui/Base/MediaPlayer/VideoPlayer.qml diff --git a/src/qml/Chat/Banners/Banner.qml b/src/gui/Chat/Banners/Banner.qml similarity index 100% rename from src/qml/Chat/Banners/Banner.qml rename to src/gui/Chat/Banners/Banner.qml diff --git a/src/qml/Chat/Banners/InviteBanner.qml b/src/gui/Chat/Banners/InviteBanner.qml similarity index 100% rename from src/qml/Chat/Banners/InviteBanner.qml rename to src/gui/Chat/Banners/InviteBanner.qml diff --git a/src/qml/Chat/Banners/LeftBanner.qml b/src/gui/Chat/Banners/LeftBanner.qml similarity index 100% rename from src/qml/Chat/Banners/LeftBanner.qml rename to src/gui/Chat/Banners/LeftBanner.qml diff --git a/src/qml/Chat/Banners/UnknownDevicesBanner.qml b/src/gui/Chat/Banners/UnknownDevicesBanner.qml similarity index 100% rename from src/qml/Chat/Banners/UnknownDevicesBanner.qml rename to src/gui/Chat/Banners/UnknownDevicesBanner.qml diff --git a/src/qml/Chat/Chat.qml b/src/gui/Chat/Chat.qml similarity index 100% rename from src/qml/Chat/Chat.qml rename to src/gui/Chat/Chat.qml diff --git a/src/qml/Chat/ChatPage.qml b/src/gui/Chat/ChatPage.qml similarity index 100% rename from src/qml/Chat/ChatPage.qml rename to src/gui/Chat/ChatPage.qml diff --git a/src/qml/Chat/Composer.qml b/src/gui/Chat/Composer.qml similarity index 100% rename from src/qml/Chat/Composer.qml rename to src/gui/Chat/Composer.qml diff --git a/src/qml/Chat/FileTransfer/Transfer.qml b/src/gui/Chat/FileTransfer/Transfer.qml similarity index 100% rename from src/qml/Chat/FileTransfer/Transfer.qml rename to src/gui/Chat/FileTransfer/Transfer.qml diff --git a/src/qml/Chat/FileTransfer/TransferList.qml b/src/gui/Chat/FileTransfer/TransferList.qml similarity index 100% rename from src/qml/Chat/FileTransfer/TransferList.qml rename to src/gui/Chat/FileTransfer/TransferList.qml diff --git a/src/qml/Chat/LoadingRoomProgressBar.qml b/src/gui/Chat/LoadingRoomProgressBar.qml similarity index 100% rename from src/qml/Chat/LoadingRoomProgressBar.qml rename to src/gui/Chat/LoadingRoomProgressBar.qml diff --git a/src/qml/Chat/RoomHeader.qml b/src/gui/Chat/RoomHeader.qml similarity index 100% rename from src/qml/Chat/RoomHeader.qml rename to src/gui/Chat/RoomHeader.qml diff --git a/src/qml/Chat/RoomPane/MemberDelegate.qml b/src/gui/Chat/RoomPane/MemberDelegate.qml similarity index 100% rename from src/qml/Chat/RoomPane/MemberDelegate.qml rename to src/gui/Chat/RoomPane/MemberDelegate.qml diff --git a/src/qml/Chat/RoomPane/MemberView.qml b/src/gui/Chat/RoomPane/MemberView.qml similarity index 100% rename from src/qml/Chat/RoomPane/MemberView.qml rename to src/gui/Chat/RoomPane/MemberView.qml diff --git a/src/qml/Chat/RoomPane/RoomPane.qml b/src/gui/Chat/RoomPane/RoomPane.qml similarity index 100% rename from src/qml/Chat/RoomPane/RoomPane.qml rename to src/gui/Chat/RoomPane/RoomPane.qml diff --git a/src/qml/Chat/RoomPane/SettingsView.qml b/src/gui/Chat/RoomPane/SettingsView.qml similarity index 100% rename from src/qml/Chat/RoomPane/SettingsView.qml rename to src/gui/Chat/RoomPane/SettingsView.qml diff --git a/src/qml/Chat/Timeline/Daybreak.qml b/src/gui/Chat/Timeline/Daybreak.qml similarity index 100% rename from src/qml/Chat/Timeline/Daybreak.qml rename to src/gui/Chat/Timeline/Daybreak.qml diff --git a/src/qml/Chat/Timeline/EventAudio.qml b/src/gui/Chat/Timeline/EventAudio.qml similarity index 100% rename from src/qml/Chat/Timeline/EventAudio.qml rename to src/gui/Chat/Timeline/EventAudio.qml diff --git a/src/qml/Chat/Timeline/EventContent.qml b/src/gui/Chat/Timeline/EventContent.qml similarity index 100% rename from src/qml/Chat/Timeline/EventContent.qml rename to src/gui/Chat/Timeline/EventContent.qml diff --git a/src/qml/Chat/Timeline/EventDelegate.qml b/src/gui/Chat/Timeline/EventDelegate.qml similarity index 100% rename from src/qml/Chat/Timeline/EventDelegate.qml rename to src/gui/Chat/Timeline/EventDelegate.qml diff --git a/src/qml/Chat/Timeline/EventFile.qml b/src/gui/Chat/Timeline/EventFile.qml similarity index 100% rename from src/qml/Chat/Timeline/EventFile.qml rename to src/gui/Chat/Timeline/EventFile.qml diff --git a/src/qml/Chat/Timeline/EventImage.qml b/src/gui/Chat/Timeline/EventImage.qml similarity index 100% rename from src/qml/Chat/Timeline/EventImage.qml rename to src/gui/Chat/Timeline/EventImage.qml diff --git a/src/qml/Chat/Timeline/EventImageTextBubble.qml b/src/gui/Chat/Timeline/EventImageTextBubble.qml similarity index 100% rename from src/qml/Chat/Timeline/EventImageTextBubble.qml rename to src/gui/Chat/Timeline/EventImageTextBubble.qml diff --git a/src/qml/Chat/Timeline/EventList.qml b/src/gui/Chat/Timeline/EventList.qml similarity index 100% rename from src/qml/Chat/Timeline/EventList.qml rename to src/gui/Chat/Timeline/EventList.qml diff --git a/src/qml/Chat/Timeline/EventMediaLoader.qml b/src/gui/Chat/Timeline/EventMediaLoader.qml similarity index 100% rename from src/qml/Chat/Timeline/EventMediaLoader.qml rename to src/gui/Chat/Timeline/EventMediaLoader.qml diff --git a/src/qml/Chat/Timeline/EventVideo.qml b/src/gui/Chat/Timeline/EventVideo.qml similarity index 100% rename from src/qml/Chat/Timeline/EventVideo.qml rename to src/gui/Chat/Timeline/EventVideo.qml diff --git a/src/qml/Chat/TypingMembersBar.qml b/src/gui/Chat/TypingMembersBar.qml similarity index 100% rename from src/qml/Chat/TypingMembersBar.qml rename to src/gui/Chat/TypingMembersBar.qml diff --git a/src/qml/DebugConsole.qml b/src/gui/DebugConsole.qml similarity index 100% rename from src/qml/DebugConsole.qml rename to src/gui/DebugConsole.qml diff --git a/src/qml/Dialogs/ExportKeys.qml b/src/gui/Dialogs/ExportKeys.qml similarity index 100% rename from src/qml/Dialogs/ExportKeys.qml rename to src/gui/Dialogs/ExportKeys.qml diff --git a/src/qml/Dialogs/HFileDialogOpener.qml b/src/gui/Dialogs/HFileDialogOpener.qml similarity index 100% rename from src/qml/Dialogs/HFileDialogOpener.qml rename to src/gui/Dialogs/HFileDialogOpener.qml diff --git a/src/qml/Dialogs/ImportKeys.qml b/src/gui/Dialogs/ImportKeys.qml similarity index 100% rename from src/qml/Dialogs/ImportKeys.qml rename to src/gui/Dialogs/ImportKeys.qml diff --git a/src/qml/Dialogs/SendFilePicker.qml b/src/gui/Dialogs/SendFilePicker.qml similarity index 100% rename from src/qml/Dialogs/SendFilePicker.qml rename to src/gui/Dialogs/SendFilePicker.qml diff --git a/src/qml/Shortcuts.qml b/src/gui/GlobalShortcuts.qml similarity index 100% rename from src/qml/Shortcuts.qml rename to src/gui/GlobalShortcuts.qml diff --git a/src/qml/LoadingScreen.qml b/src/gui/LoadingScreen.qml similarity index 100% rename from src/qml/LoadingScreen.qml rename to src/gui/LoadingScreen.qml diff --git a/src/qml/MainPane/AccountDelegate.qml b/src/gui/MainPane/AccountDelegate.qml similarity index 100% rename from src/qml/MainPane/AccountDelegate.qml rename to src/gui/MainPane/AccountDelegate.qml diff --git a/src/qml/MainPane/AccountRoomList.qml b/src/gui/MainPane/AccountRoomList.qml similarity index 100% rename from src/qml/MainPane/AccountRoomList.qml rename to src/gui/MainPane/AccountRoomList.qml diff --git a/src/qml/MainPane/MainPane.qml b/src/gui/MainPane/MainPane.qml similarity index 100% rename from src/qml/MainPane/MainPane.qml rename to src/gui/MainPane/MainPane.qml diff --git a/src/qml/MainPane/MainPaneToolBar.qml b/src/gui/MainPane/MainPaneToolBar.qml similarity index 100% rename from src/qml/MainPane/MainPaneToolBar.qml rename to src/gui/MainPane/MainPaneToolBar.qml diff --git a/src/qml/MainPane/RoomDelegate.qml b/src/gui/MainPane/RoomDelegate.qml similarity index 100% rename from src/qml/MainPane/RoomDelegate.qml rename to src/gui/MainPane/RoomDelegate.qml diff --git a/src/qml/Pages/AccountSettings/AccountSettings.qml b/src/gui/Pages/AccountSettings/AccountSettings.qml similarity index 100% rename from src/qml/Pages/AccountSettings/AccountSettings.qml rename to src/gui/Pages/AccountSettings/AccountSettings.qml diff --git a/src/qml/Pages/AccountSettings/ImportExportKeys.qml b/src/gui/Pages/AccountSettings/ImportExportKeys.qml similarity index 100% rename from src/qml/Pages/AccountSettings/ImportExportKeys.qml rename to src/gui/Pages/AccountSettings/ImportExportKeys.qml diff --git a/src/qml/Pages/AccountSettings/Profile.qml b/src/gui/Pages/AccountSettings/Profile.qml similarity index 100% rename from src/qml/Pages/AccountSettings/Profile.qml rename to src/gui/Pages/AccountSettings/Profile.qml diff --git a/src/qml/Pages/AddAccount/AddAccount.qml b/src/gui/Pages/AddAccount/AddAccount.qml similarity index 100% rename from src/qml/Pages/AddAccount/AddAccount.qml rename to src/gui/Pages/AddAccount/AddAccount.qml diff --git a/src/qml/Pages/AddAccount/Register.qml b/src/gui/Pages/AddAccount/Register.qml similarity index 100% rename from src/qml/Pages/AddAccount/Register.qml rename to src/gui/Pages/AddAccount/Register.qml diff --git a/src/qml/Pages/AddAccount/Reset.qml b/src/gui/Pages/AddAccount/Reset.qml similarity index 100% rename from src/qml/Pages/AddAccount/Reset.qml rename to src/gui/Pages/AddAccount/Reset.qml diff --git a/src/qml/Pages/AddAccount/SignIn.qml b/src/gui/Pages/AddAccount/SignIn.qml similarity index 100% rename from src/qml/Pages/AddAccount/SignIn.qml rename to src/gui/Pages/AddAccount/SignIn.qml diff --git a/src/qml/Pages/AddChat/AddChat.qml b/src/gui/Pages/AddChat/AddChat.qml similarity index 100% rename from src/qml/Pages/AddChat/AddChat.qml rename to src/gui/Pages/AddChat/AddChat.qml diff --git a/src/qml/Pages/AddChat/CreateRoom.qml b/src/gui/Pages/AddChat/CreateRoom.qml similarity index 100% rename from src/qml/Pages/AddChat/CreateRoom.qml rename to src/gui/Pages/AddChat/CreateRoom.qml diff --git a/src/qml/Pages/AddChat/CurrentUserAvatar.qml b/src/gui/Pages/AddChat/CurrentUserAvatar.qml similarity index 100% rename from src/qml/Pages/AddChat/CurrentUserAvatar.qml rename to src/gui/Pages/AddChat/CurrentUserAvatar.qml diff --git a/src/qml/Pages/AddChat/DirectChat.qml b/src/gui/Pages/AddChat/DirectChat.qml similarity index 100% rename from src/qml/Pages/AddChat/DirectChat.qml rename to src/gui/Pages/AddChat/DirectChat.qml diff --git a/src/qml/Pages/AddChat/EncryptCheckBox.qml b/src/gui/Pages/AddChat/EncryptCheckBox.qml similarity index 100% rename from src/qml/Pages/AddChat/EncryptCheckBox.qml rename to src/gui/Pages/AddChat/EncryptCheckBox.qml diff --git a/src/qml/Pages/AddChat/JoinRoom.qml b/src/gui/Pages/AddChat/JoinRoom.qml similarity index 100% rename from src/qml/Pages/AddChat/JoinRoom.qml rename to src/gui/Pages/AddChat/JoinRoom.qml diff --git a/src/qml/Pages/Default.qml b/src/gui/Pages/Default.qml similarity index 100% rename from src/qml/Pages/Default.qml rename to src/gui/Pages/Default.qml diff --git a/src/qml/Popups/BoxPopup.qml b/src/gui/Popups/BoxPopup.qml similarity index 100% rename from src/qml/Popups/BoxPopup.qml rename to src/gui/Popups/BoxPopup.qml diff --git a/src/qml/Popups/ClearMessagesPopup.qml b/src/gui/Popups/ClearMessagesPopup.qml similarity index 100% rename from src/qml/Popups/ClearMessagesPopup.qml rename to src/gui/Popups/ClearMessagesPopup.qml diff --git a/src/qml/Popups/ForgetRoomPopup.qml b/src/gui/Popups/ForgetRoomPopup.qml similarity index 100% rename from src/qml/Popups/ForgetRoomPopup.qml rename to src/gui/Popups/ForgetRoomPopup.qml diff --git a/src/qml/Popups/InviteToRoomPopup.qml b/src/gui/Popups/InviteToRoomPopup.qml similarity index 100% rename from src/qml/Popups/InviteToRoomPopup.qml rename to src/gui/Popups/InviteToRoomPopup.qml diff --git a/src/qml/Popups/LeaveRoomPopup.qml b/src/gui/Popups/LeaveRoomPopup.qml similarity index 100% rename from src/qml/Popups/LeaveRoomPopup.qml rename to src/gui/Popups/LeaveRoomPopup.qml diff --git a/src/qml/Popups/PasswordPopup.qml b/src/gui/Popups/PasswordPopup.qml similarity index 100% rename from src/qml/Popups/PasswordPopup.qml rename to src/gui/Popups/PasswordPopup.qml diff --git a/src/qml/Popups/SignOutPopup.qml b/src/gui/Popups/SignOutPopup.qml similarity index 100% rename from src/qml/Popups/SignOutPopup.qml rename to src/gui/Popups/SignOutPopup.qml diff --git a/src/qml/Python.qml b/src/gui/PythonBridge.qml similarity index 96% rename from src/qml/Python.qml rename to src/gui/PythonBridge.qml index f68f2ea3..1d754117 100644 --- a/src/qml/Python.qml +++ b/src/gui/PythonBridge.qml @@ -9,7 +9,7 @@ Python { property bool startupAnyAccountsSaved: false property var pendingCoroutines: ({}) - property EventHandlers eventHandlers: EventHandlers {} + property PythonEventHandlers eventHandlers: PythonEventHandlers {} function newQmlFuture() { @@ -105,7 +105,7 @@ Python { addImportPath("src") addImportPath("qrc:/src") - importNames("python", ["APP"], () => { + importNames("backend", ["APP"], () => { loadSettings(() => { callCoro("saved_accounts.any_saved", [], any => { if (any) { py.callCoro("load_saved_accounts", []) } diff --git a/src/qml/EventHandlers.qml b/src/gui/PythonEventHandlers.qml similarity index 100% rename from src/qml/EventHandlers.qml rename to src/gui/PythonEventHandlers.qml diff --git a/src/qml/UI.qml b/src/gui/UI.qml similarity index 99% rename from src/qml/UI.qml rename to src/gui/UI.qml index a9f4fc9a..03a7e945 100644 --- a/src/qml/UI.qml +++ b/src/gui/UI.qml @@ -31,7 +31,7 @@ Item { (modelSources["Account"] || []).length > 0 || py.startupAnyAccountsSaved - Shortcuts { id: shortcuts } + GlobalShortcuts { id: shortcuts } HImage { id: mainUIBackground diff --git a/src/qml/Utils.qml b/src/gui/Utils.qml similarity index 100% rename from src/qml/Utils.qml rename to src/gui/Utils.qml diff --git a/src/qml/Window.qml b/src/gui/Window.qml similarity index 98% rename from src/qml/Window.qml rename to src/gui/Window.qml index 3e403d98..645341d4 100644 --- a/src/qml/Window.qml +++ b/src/gui/Window.qml @@ -70,7 +70,7 @@ ApplicationWindow { } - Python { id: py } + PythonBridge { id: py } Utils { id: utils } diff --git a/src/main.cpp b/src/main.cpp index bb2b0107..a25613f9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -48,10 +48,10 @@ int main(int argc, char *argv[]) { // System (qrc:/, resources stored in the app's executable) if possible, // else fall back to the filesystem. // The dev qmake flag disables the resource system for faster builds. - QFileInfo qrcPath(":src/qml/Window.qml"); + QFileInfo qrcPath(":src/gui/Window.qml"); QQmlComponent component( &engine, - qrcPath.exists() ? "qrc:/src/qml/Window.qml" : "src/qml/Window.qml" + qrcPath.exists() ? "qrc:/src/gui/Window.qml" : "src/gui/Window.qml" ); component.create(objectContext);