Merge pull request #2042 from pypeclub/feature/settings_ui_disable_projects_view

Settings UI: Project view enhancements
This commit is contained in:
Jakub Trllo 2021-09-20 12:13:27 +02:00 committed by GitHub
commit 7f84cb33b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 9 deletions

View file

@ -609,14 +609,23 @@ class ProjectWidget(SettingsCategoryWidget):
self.project_list_widget.refresh()
def _on_reset_crash(self):
self.project_list_widget.setEnabled(False)
self._set_enabled_project_list(False)
super(ProjectWidget, self)._on_reset_crash()
def _on_reset_success(self):
if not self.project_list_widget.isEnabled():
self.project_list_widget.setEnabled(True)
self._set_enabled_project_list(True)
super(ProjectWidget, self)._on_reset_success()
def _set_enabled_project_list(self, enabled):
if (
enabled
and self.modify_defaults_checkbox
and self.modify_defaults_checkbox.isChecked()
):
enabled = False
if self.project_list_widget.isEnabled() != enabled:
self.project_list_widget.setEnabled(enabled)
def _create_root_entity(self):
self.entity = ProjectSettings(change_state=False)
self.entity.on_change_callbacks.append(self._on_entity_change)
@ -637,7 +646,8 @@ class ProjectWidget(SettingsCategoryWidget):
if self.modify_defaults_checkbox:
self.modify_defaults_checkbox.setEnabled(True)
self.project_list_widget.setEnabled(True)
self._set_enabled_project_list(True)
except DefaultsNotDefined:
if not self.modify_defaults_checkbox:
@ -646,7 +656,7 @@ class ProjectWidget(SettingsCategoryWidget):
self.entity.set_defaults_state()
self.modify_defaults_checkbox.setChecked(True)
self.modify_defaults_checkbox.setEnabled(False)
self.project_list_widget.setEnabled(False)
self._set_enabled_project_list(False)
except StudioDefaultsNotDefined:
self.select_default_project()
@ -666,8 +676,10 @@ class ProjectWidget(SettingsCategoryWidget):
def _on_modify_defaults(self):
if self.modify_defaults_checkbox.isChecked():
self._set_enabled_project_list(False)
if not self.entity.is_in_defaults_state():
self.reset()
else:
self._set_enabled_project_list(True)
if not self.entity.is_in_studio_state():
self.reset()

View file

@ -146,6 +146,15 @@ QSlider::handle:vertical {
border: 1px solid #464b54;
background: #21252B;
}
#ProjectListWidget QListView:disabled {
background: #282C34;
}
#ProjectListWidget QListView::item:disabled {
color: #4e5254;
}
#ProjectListWidget QLabel {
background: transparent;
font-weight: bold;
@ -249,8 +258,6 @@ QTabBar::tab:!selected:hover {
background: #333840;
}
QTabBar::tab:first:selected {
margin-left: 0;
}
@ -405,12 +412,15 @@ QHeaderView::section {
font-weight: bold;
}
QTableView::item:pressed, QListView::item:pressed, QTreeView::item:pressed {
QAbstractItemView::item:pressed {
background: #78879b;
color: #FFFFFF;
}
QTableView::item:selected:active, QTreeView::item:selected:active, QListView::item:selected:active {
QAbstractItemView::item:selected:active {
background: #3d8ec9;
}
QAbstractItemView::item:selected:!active {
background: #3d8ec9;
}