mirror of
https://github.com/evilsocket/opensnitch.git
synced 2025-03-04 08:34:40 +01:00
ui: fixed falling back to Qt's built-in icons
When the WM/DE is not properly configured, Qt does not load the system's icon theme. In this scenario we try to use Qt's built-in icons. Due to a bug, this was not working. On the other hand, in order to display the icons of the system, one can follow these instructions: https://github.com/evilsocket/opensnitch/wiki/GUI-known-problems#no-icons-on-the-gui Closes #998
This commit is contained in:
parent
071f95572d
commit
7c7733483c
8 changed files with 70 additions and 65 deletions
|
@ -39,9 +39,9 @@ class FirewallDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
self.comboProfile.setVisible(False)
|
||||
self.lblProfile.setVisible(False)
|
||||
|
||||
self.secHighIcon = Icons.new("security-high")
|
||||
self.secMediumIcon = Icons.new("security-medium")
|
||||
self.secLowIcon = Icons.new("security-low")
|
||||
self.secHighIcon = Icons.new(self, "security-high")
|
||||
self.secMediumIcon = Icons.new(self, "security-medium")
|
||||
self.secLowIcon = Icons.new(self, "security-low")
|
||||
self.lblStatusIcon.setPixmap(self.secHighIcon.pixmap(96, 96))
|
||||
|
||||
self._fwrule_dialog = FwRuleDialog(appicon=self.appicon)
|
||||
|
@ -76,11 +76,11 @@ class FirewallDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
if QtGui.QIcon.hasThemeIcon("document-new"):
|
||||
return
|
||||
|
||||
closeIcon = Icons.new("window-close")
|
||||
excludeIcon = Icons.new("go-up")
|
||||
allowInIcon = Icons.new("go-down")
|
||||
newIcon = Icons.new("document-new")
|
||||
helpIcon = Icons.new("help-browser")
|
||||
closeIcon = Icons.new(self, "window-close")
|
||||
excludeIcon = Icons.new(self, "go-up")
|
||||
allowInIcon = Icons.new(self, "go-down")
|
||||
newIcon = Icons.new(self, "document-new")
|
||||
helpIcon = Icons.new(self, "help-browser")
|
||||
self.cmdClose.setIcon(closeIcon)
|
||||
self.cmdAllowOUTService.setIcon(excludeIcon)
|
||||
self.cmdAllowINService.setIcon(allowInIcon)
|
||||
|
|
|
@ -352,12 +352,12 @@ The value must be in the format: VALUE/UNITS/TIME, for example:
|
|||
|
||||
# -----------------------------------------------------------
|
||||
|
||||
saveIcon = Icons.new("document-save")
|
||||
closeIcon = Icons.new("window-close")
|
||||
delIcon = Icons.new("edit-delete")
|
||||
addIcon = Icons.new("list-add")
|
||||
remIcon = Icons.new("list-remove")
|
||||
helpIcon = Icons.new("help-browser")
|
||||
saveIcon = Icons.new(self, "document-save")
|
||||
closeIcon = Icons.new(self, "window-close")
|
||||
delIcon = Icons.new(self, "edit-delete")
|
||||
addIcon = Icons.new(self, "list-add")
|
||||
remIcon = Icons.new(self, "list-remove")
|
||||
helpIcon = Icons.new(self, "help-browser")
|
||||
self.cmdSave.setIcon(saveIcon)
|
||||
self.cmdDelete.setIcon(delIcon)
|
||||
self.cmdClose.setIcon(closeIcon)
|
||||
|
@ -385,7 +385,6 @@ The value must be in the format: VALUE/UNITS/TIME, for example:
|
|||
self.comboDirection.currentIndexChanged.connect(self._cb_direction_changed)
|
||||
return True
|
||||
|
||||
|
||||
def _close(self):
|
||||
self.comboDirection.currentIndexChanged.disconnect(self._cb_direction_changed)
|
||||
self.hide()
|
||||
|
|
|
@ -88,17 +88,17 @@ class PreferencesDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
if QtGui.QIcon.hasThemeIcon("emblem-default"):
|
||||
return
|
||||
|
||||
saveIcon = Icons.new("document-save")
|
||||
applyIcon = Icons.new("emblem-default")
|
||||
delIcon = Icons.new("edit-delete")
|
||||
closeIcon = Icons.new("window-close")
|
||||
openIcon = Icons.new("document-open")
|
||||
helpIcon = Icons.new("help-browser")
|
||||
addIcon = Icons.new("list-add")
|
||||
delIcon = Icons.new("list-remove")
|
||||
allowIcon = Icons.new("emblem-default")
|
||||
denyIcon = Icons.new("emblem-important")
|
||||
rejectIcon = Icons.new("window-close")
|
||||
saveIcon = Icons.new(self, "document-save")
|
||||
applyIcon = Icons.new(self, "emblem-default")
|
||||
delIcon = Icons.new(self, "edit-delete")
|
||||
closeIcon = Icons.new(self, "window-close")
|
||||
openIcon = Icons.new(self, "document-open")
|
||||
helpIcon = Icons.new(self, "help-browser")
|
||||
addIcon = Icons.new(self, "list-add")
|
||||
delIcon = Icons.new(self, "list-remove")
|
||||
allowIcon = Icons.new(self, "emblem-default")
|
||||
denyIcon = Icons.new(self, "emblem-important")
|
||||
rejectIcon = Icons.new(self, "window-close")
|
||||
self.applyButton.setIcon(applyIcon)
|
||||
self.cancelButton.setIcon(closeIcon)
|
||||
self.acceptButton.setIcon(saveIcon)
|
||||
|
|
|
@ -86,10 +86,10 @@ class ProcessDetailsDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0])
|
|||
if QtGui.QIcon.hasThemeIcon("window-close"):
|
||||
return
|
||||
|
||||
closeIcon = Icons.new("window-close")
|
||||
closeIcon = Icons.new(self, "window-close")
|
||||
self.cmdClose.setIcon(closeIcon)
|
||||
self.iconStart = Icons.new("media-playback-start")
|
||||
self.iconPause = Icons.new("media-playback-pause")
|
||||
self.iconStart = Icons.new(self, "media-playback-start")
|
||||
self.iconPause = Icons.new(self, "media-playback-pause")
|
||||
|
||||
@QtCore.pyqtSlot(ui_pb2.NotificationReply)
|
||||
def _cb_notification_callback(self, reply):
|
||||
|
|
|
@ -105,9 +105,9 @@ class PromptDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
self.checkDstPort.clicked.connect(self._button_clicked)
|
||||
self.checkUserID.clicked.connect(self._button_clicked)
|
||||
|
||||
self.allowIcon = Icons.new("emblem-default")
|
||||
denyIcon = Icons.new("emblem-important")
|
||||
rejectIcon = Icons.new("window-close")
|
||||
self.allowIcon = Icons.new(self, "emblem-default")
|
||||
denyIcon = Icons.new(self, "emblem-important")
|
||||
rejectIcon = Icons.new(self, "window-close")
|
||||
|
||||
self._default_action = self._cfg.getInt(self._cfg.DEFAULT_ACTION_KEY)
|
||||
|
||||
|
|
|
@ -93,10 +93,10 @@ class RulesEditorDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
if QtGui.QIcon.hasThemeIcon("emblem-default"):
|
||||
return
|
||||
|
||||
applyIcon = Icons.new("emblem-default")
|
||||
denyIcon = Icons.new("emblem-important")
|
||||
rejectIcon = Icons.new("window-close")
|
||||
openIcon = Icons.new("document-open")
|
||||
applyIcon = Icons.new(self, "emblem-default")
|
||||
denyIcon = Icons.new(self, "emblem-important")
|
||||
rejectIcon = Icons.new(self, "window-close")
|
||||
openIcon = Icons.new(self, "document-open")
|
||||
self.actionAllowRadio.setIcon(applyIcon)
|
||||
self.actionDenyRadio.setIcon(denyIcon)
|
||||
self.actionRejectRadio.setIcon(rejectIcon)
|
||||
|
|
|
@ -397,15 +397,15 @@ class StatsDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
self.comboRulesFilter.setVisible(False)
|
||||
|
||||
menu = QtWidgets.QMenu()
|
||||
menu.addAction(Icons.new("go-up"), QC.translate("stats", "Export rules")).triggered.connect(self._on_menu_node_export_clicked)
|
||||
menu.addAction(Icons.new("go-down"), QC.translate("stats", "Import rules")).triggered.connect(self._on_menu_node_import_clicked)
|
||||
menu.addAction(Icons.new(self, "go-up"), QC.translate("stats", "Export rules")).triggered.connect(self._on_menu_node_export_clicked)
|
||||
menu.addAction(Icons.new(self, "go-down"), QC.translate("stats", "Import rules")).triggered.connect(self._on_menu_node_import_clicked)
|
||||
self.nodeActionsButton.setMenu(menu)
|
||||
|
||||
menuActions = QtWidgets.QMenu()
|
||||
menuActions.addAction(Icons.new("go-up"), QC.translate("stats", "Export rules")).triggered.connect(self._on_menu_export_clicked)
|
||||
menuActions.addAction(Icons.new("go-down"), QC.translate("stats", "Import rules")).triggered.connect(self._on_menu_import_clicked)
|
||||
menuActions.addAction(Icons.new("document-save"), QC.translate("stats", "Export events to CSV")).triggered.connect(self._on_menu_export_csv_clicked)
|
||||
menuActions.addAction(Icons.new("application-exit"), QC.translate("stats", "Quit")).triggered.connect(self._on_menu_exit_clicked)
|
||||
menuActions.addAction(Icons.new(self, "go-up"), QC.translate("stats", "Export rules")).triggered.connect(self._on_menu_export_clicked)
|
||||
menuActions.addAction(Icons.new(self, "go-down"), QC.translate("stats", "Import rules")).triggered.connect(self._on_menu_import_clicked)
|
||||
menuActions.addAction(Icons.new(self, "document-save"), QC.translate("stats", "Export events to CSV")).triggered.connect(self._on_menu_export_csv_clicked)
|
||||
menuActions.addAction(Icons.new(self, "application-exit"), QC.translate("stats", "Quit")).triggered.connect(self._on_menu_exit_clicked)
|
||||
self.actionsButton.setMenu(menuActions)
|
||||
|
||||
# translations must be done here, otherwise they don't take effect
|
||||
|
@ -605,8 +605,8 @@ class StatsDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
'users.csv'
|
||||
)
|
||||
|
||||
self.iconStart = Icons.new("media-playback-start")
|
||||
self.iconPause = Icons.new("media-playback-pause")
|
||||
self.iconStart = Icons.new(self, "media-playback-start")
|
||||
self.iconPause = Icons.new(self, "media-playback-pause")
|
||||
|
||||
self.fwTreeEdit = QtWidgets.QPushButton()
|
||||
self.fwTreeEdit.setIcon(QtGui.QIcon().fromTheme("preferences-desktop"))
|
||||
|
@ -663,20 +663,20 @@ class StatsDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
|
|||
if QtGui.QIcon.hasThemeIcon("document-new"):
|
||||
return
|
||||
|
||||
newRuleIcon = Icons.new("document-new")
|
||||
delRuleIcon = Icons.new("edit-delete")
|
||||
editRuleIcon = Icons.new("accessories-text-editor")
|
||||
saveIcon = Icons.new("document-save")
|
||||
prefsIcon = Icons.new("preferences-system")
|
||||
searchIcon = Icons.new("system-search")
|
||||
clearIcon = Icons.new("edit-clear-all")
|
||||
leftArrowIcon = Icons.new("go-previous")
|
||||
fwIcon = Icons.new("security-high")
|
||||
optsIcon = Icons.new("format-justify-fill")
|
||||
helpIcon = Icons.new("help-browser")
|
||||
eventsIcon = Icons.new("view-sort-ascending")
|
||||
rulesIcon = Icons.new("address-book-new")
|
||||
procsIcon = Icons.new("system-run")
|
||||
newRuleIcon = Icons.new(self, "document-new")
|
||||
delRuleIcon = Icons.new(self, "edit-delete")
|
||||
editRuleIcon = Icons.new(self, "accessories-text-editor")
|
||||
saveIcon = Icons.new(self, "document-save")
|
||||
prefsIcon = Icons.new(self, "preferences-system")
|
||||
searchIcon = Icons.new(self, "system-search")
|
||||
clearIcon = Icons.new(self, "edit-clear-all")
|
||||
leftArrowIcon = Icons.new(self, "go-previous")
|
||||
fwIcon = Icons.new(self, "security-high")
|
||||
optsIcon = Icons.new(self, "format-justify-fill")
|
||||
helpIcon = Icons.new(self, "help-browser")
|
||||
eventsIcon = Icons.new(self, "view-sort-ascending")
|
||||
rulesIcon = Icons.new(self, "address-book-new")
|
||||
procsIcon = Icons.new(self, "system-run")
|
||||
|
||||
if QtGui.QIcon().hasThemeIcon("preferences-desktop") == False:
|
||||
self.fwTreeEdit.setText("+")
|
||||
|
|
|
@ -441,9 +441,9 @@ class Icons():
|
|||
'document-save': "SP_DialogSaveButton",
|
||||
'document-open': "SP_DirOpenIcon",
|
||||
'format-justify-fill': "SP_FileDialogDetailedView",
|
||||
'preferences-system': "SP_FileDialogDetailedView",
|
||||
'preferences-system': "SP_FileDialogListView",
|
||||
'preferences-desktop': "SP_FileDialogListView",
|
||||
'security-high': "SP_VistaShield",
|
||||
'edit-clear-all': "SP_DialogResetButton",
|
||||
'go-previous': "SP_ArrowLeft",
|
||||
'go-jump': "SP_CommandLink",
|
||||
'go-down': "SP_TitleBarUnshadeButton",
|
||||
|
@ -461,17 +461,23 @@ class Icons():
|
|||
'system-search': "SP_FileDialogContentsView",
|
||||
'application-exit': "SP_TitleBarCloseButton",
|
||||
'view-sort-ascending': "SP_ToolBarVerticalExtensionButton",
|
||||
'address-book-new': ""
|
||||
'address-book-new': "",
|
||||
'media-playback-start': "SP_MediaPlay",
|
||||
'media-playback-pause': "SP_MediaPause",
|
||||
'system-search': "SP_FileDialogContentsView",
|
||||
'accessories-text-editor': "SP_DialogOpenButton",
|
||||
'edit-clear-all': "SP_DialogResetButton",
|
||||
'reload': "SP_DialogResetButton"
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def new(icon_name):
|
||||
def new(widget, icon_name):
|
||||
icon = QtGui.QIcon.fromTheme(icon_name, QtGui.QIcon.fromTheme(icon_name + "-symbolic"))
|
||||
if icon.isNull():
|
||||
try:
|
||||
return self.style().standardIcon(getattr(QtWidgets.QStyle, NewIcon.defaults[icon_name]))
|
||||
except:
|
||||
pass
|
||||
return widget.style().standardIcon(getattr(QtWidgets.QStyle, Icons.defaults[icon_name]))
|
||||
except Exception as e:
|
||||
print("Qt standardIcon exception:", icon_name, ",", e)
|
||||
|
||||
return icon
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue