Skip to content

Commit 6f574e4

Browse files
committed
Use events instead of calling child widgets
1 parent 108d648 commit 6f574e4

9 files changed

+30
-16
lines changed

src/vorta/application.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class VortaApp(QtSingleApplication):
4242
backup_log_event = QtCore.pyqtSignal(str, dict)
4343
backup_progress_event = QtCore.pyqtSignal(str)
4444
check_failed_event = QtCore.pyqtSignal(dict)
45+
profile_changed_event = QtCore.pyqtSignal()
4546

4647
def __init__(self, args_raw, single_app=False):
4748
super().__init__(str(APP_ID), args_raw)

src/vorta/views/archive_tab.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ def __init__(self, parent=None, app=None):
152152

153153
# Connect to palette change
154154
self.app.paletteChanged.connect(lambda p: self.set_icons())
155+
self.app.profile_changed_event.connect(self.populate_from_profile)
156+
self.app.profile_changed_event.connect(self.toggle_compact_button_visibility)
155157

156158
def set_icons(self):
157159
"""Used when changing between light- and dark mode"""

src/vorta/views/log_page.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from PyQt6 import uic
22
from PyQt6.QtWidgets import (
33
QAbstractItemView,
4+
QApplication,
45
QHeaderView,
56
QTableWidgetItem,
67
)
@@ -26,6 +27,7 @@ def __init__(self, parent=None):
2627
super().__init__(parent)
2728
self.setupUi(self)
2829
self.init_ui()
30+
QApplication.instance().profile_changed_event.connect(self.populate_logs)
2931

3032
def init_ui(self):
3133
self.logPage.setAlternatingRowColors(True)

src/vorta/views/main_window.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -185,14 +185,15 @@ def profile_selection_changed_action(self, index):
185185
if not backup_profile_id:
186186
return
187187
self.current_profile = BackupProfileModel.get(id=backup_profile_id)
188-
self.archiveTab.populate_from_profile()
189-
self.repoTab.populate_from_profile()
190-
self.sourceTab.populate_from_profile()
191-
self.scheduleTab.schedulePage.populate_from_profile()
188+
self.app.profile_changed_event.emit()
189+
# self.archiveTab.populate_from_profile()
190+
# self.repoTab.populate_from_profile()
191+
# self.sourceTab.populate_from_profile()
192+
# self.scheduleTab.schedulePage.populate_from_profile()
192193
SettingsModel.update({SettingsModel.str_value: self.current_profile.id}).where(
193194
SettingsModel.key == 'previous_profile_id'
194195
).execute()
195-
self.archiveTab.toggle_compact_button_visibility()
196+
# self.archiveTab.toggle_compact_button_visibility()
196197

197198
def profile_clicked_action(self):
198199
if self.miscWidget.isVisible():
@@ -262,11 +263,12 @@ def profile_imported_event(profile):
262263
self.tr('Profile import successful!'),
263264
self.tr('Profile {} imported.').format(profile.name),
264265
)
265-
self.repoTab.populate_from_profile()
266-
self.scheduleTab.logPage.populate_logs()
267-
self.scheduleTab.networksPage.populate_wifi()
268-
self.miscTab.populate()
266+
# self.repoTab.populate_from_profile()
267+
# self.scheduleTab.logPage.populate_logs()
268+
# self.scheduleTab.networksPage.populate_wifi()
269+
# self.miscTab.populate()
269270
self.populate_profile_selector()
271+
self.app.profile_changed_event.emit()
270272

271273
filename = QFileDialog.getOpenFileName(
272274
self,

src/vorta/views/misc_tab.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ def __init__(self, parent=None):
4646

4747
# Connect to palette change
4848
QApplication.instance().paletteChanged.connect(lambda p: self.set_icons())
49+
QApplication.instance().profile_changed_event.connect(self.populate)
4950

5051
def populate(self):
5152
"""

src/vorta/views/networks_page.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from PyQt6 import uic
22
from PyQt6.QtCore import Qt
3-
from PyQt6.QtWidgets import QCheckBox, QLabel, QListWidget, QListWidgetItem
3+
from PyQt6.QtWidgets import QApplication, QCheckBox, QLabel, QListWidget, QListWidgetItem
44

55
from vorta.store.models import BackupProfileMixin, WifiSettingModel
66
from vorta.utils import get_asset, get_sorted_wifis
@@ -20,6 +20,8 @@ def __init__(self, parent=None):
2020

2121
self.populate_wifi()
2222
self.setup_connections()
23+
QApplication.instance().profile_changed_event.connect(self.populate_wifi)
24+
QApplication.instance().profile_changed_event.connect(self.setup_connections)
2325

2426
def setup_connections(self):
2527
self.meteredNetworksCheckBox.stateChanged.connect(self.on_metered_networks_state_changed)

src/vorta/views/repo_tab.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ def __init__(self, parent=None):
6363
self.bAddSSHKey.clicked.connect(self.create_ssh_key)
6464

6565
self.set_icons()
66+
self.populate_from_profile() # needs init of ssh and compression items
6667

67-
# Connect to palette change
68+
# Connect to events
6869
QApplication.instance().paletteChanged.connect(lambda p: self.set_icons())
69-
70-
self.populate_from_profile() # needs init of ssh and compression items
70+
QApplication.instance().profile_changed_event.connect(self.populate_from_profile)
7171

7272
def set_icons(self):
7373
self.bAddSSHKey.setIcon(get_colored_icon("plus"))

src/vorta/views/schedule_page.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ def __init__(self, parent=None):
6464
self.app.scheduler.schedule_changed.connect(lambda pid: self.draw_next_scheduled_backup())
6565
self.populate_from_profile()
6666

67+
# Listen for events
68+
self.app.profile_changed_event.connect(self.populate_from_profile)
69+
6770
def on_scheduler_change(self, _):
6871
profile = self.profile()
6972
for label, obj in self.schedulerRadioMapping.items():

src/vorta/views/source_tab.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,14 @@ def __init__(self, parent=None):
106106
self.bExclude.clicked.connect(self.show_exclude_dialog)
107107
header.sortIndicatorChanged.connect(self.update_sort_order)
108108

109-
# Connect to palette change
110-
QApplication.instance().paletteChanged.connect(lambda p: self.set_icons())
111-
112109
# Populate
113110
self.populate_from_profile()
114111
self.set_icons()
115112

113+
# Listen for events
114+
QApplication.instance().paletteChanged.connect(lambda p: self.set_icons())
115+
QApplication.instance().profile_changed_event.connect(self.populate_from_profile)
116+
116117
def set_icons(self):
117118
"Used when changing between light- and dark mode"
118119
self.addButton.setIcon(get_colored_icon('plus'))

0 commit comments

Comments
 (0)