diff -up firewalld-0.4.4.3/src/firewall-applet.qt4_applet firewalld-0.4.4.3/src/firewall-applet --- firewalld-0.4.4.3/src/firewall-applet.qt4_applet 2017-01-26 13:07:25.000000000 +0100 +++ firewalld-0.4.4.3/src/firewall-applet 2017-02-08 19:13:03.196185899 +0100 @@ -21,14 +21,14 @@ # import sys -from PyQt5 import QtGui, QtCore, QtWidgets +from PyQt4 import QtGui, QtCore import gi gi.require_version('Notify', '0.7') from gi.repository import Notify import os -from dbus.mainloop.pyqt5 import DBusQtMainLoop +from dbus.mainloop.qt import DBusQtMainLoop import functools from firewall.config import * @@ -74,20 +74,21 @@ def escape(text): return text def fromUTF8(text): - if PY2 and QtCore.QT_VERSION < 0x050000: + if PY2: return QtCore.QString.fromUtf8(text) - return text + else: + return text # ZoneInterfaceEditor ######################################################### -class ZoneInterfaceEditor(QtWidgets.QDialog): +class ZoneInterfaceEditor(QtGui.QDialog): def __init__(self, fw, interface, zone): self.fw = fw self.interface = interface self.zone = None self.title = _("Select zone for interface '%s'") % self.interface - QtWidgets.QDialog.__init__(self) + QtGui.QDialog.__init__(self) self.create_ui(zone) def create_ui(self, zone): @@ -96,19 +97,19 @@ class ZoneInterfaceEditor(QtWidgets.QDia self.resize(100, 50) - vbox = QtWidgets.QVBoxLayout() + vbox = QtGui.QVBoxLayout() vbox.setSpacing(6) - label = QtWidgets.QLabel(fromUTF8(escape(self.title))) + label = QtGui.QLabel(fromUTF8(escape(self.title))) vbox.addWidget(label) - self.combo = QtWidgets.QComboBox() + self.combo = QtGui.QComboBox() self.fill_zone_combo() vbox.addWidget(self.combo) - buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok - | QtWidgets.QDialogButtonBox.Cancel) - self.ok_button = buttonBox.button(QtWidgets.QDialogButtonBox.Ok) + buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok + | QtGui.QDialogButtonBox.Cancel) + self.ok_button = buttonBox.button(QtGui.QDialogButtonBox.Ok) buttonBox.accepted.connect(self.ok) buttonBox.rejected.connect(self.hide) vbox.addWidget(buttonBox) @@ -160,7 +161,7 @@ class ZoneConnectionEditor(ZoneInterface self.zone = None self.title = _("Select zone for connection '%s'") % self.connection - QtWidgets.QDialog.__init__(self) + QtGui.QDialog.__init__(self) self.create_ui(zone) def ok(self): @@ -169,7 +170,7 @@ class ZoneConnectionEditor(ZoneInterface nm_set_zone_of_connection(self.get_zone(), self.connection) except Exception as msg: text = _("Failed to set zone {zone} for connection {connection}") - QtWidgets.QMessageBox.warning(None, fromUTF8(escape(self.title)), + QtGui.QMessageBox.warning(None, fromUTF8(escape(self.title)), escape(text.format( zone=self.get_zone(), connection=self.connection))) @@ -184,7 +185,7 @@ class ZoneSourceEditor(ZoneInterfaceEdit self.zone = None self.title = _("Select zone for source '%s'") % self.source - QtWidgets.QDialog.__init__(self) + QtGui.QDialog.__init__(self) self.create_ui(zone) def ok(self): @@ -193,7 +194,7 @@ class ZoneSourceEditor(ZoneInterfaceEdit # ShieldsEditor ######################################################### -class ShieldsEditor(QtWidgets.QDialog): +class ShieldsEditor(QtGui.QDialog): def __init__(self, fw, settings, shields_up, shields_down): self.fw = fw self.settings = settings @@ -201,63 +202,63 @@ class ShieldsEditor(QtWidgets.QDialog): self.shields_down = shields_down self.title = _("Configure Shields Up/Down Zones") - QtWidgets.QDialog.__init__(self) + QtGui.QDialog.__init__(self) self.create_ui() def create_ui(self): self.setWindowTitle(fromUTF8(escape(self.title))) self.rejected.connect(self.hide) - vbox = QtWidgets.QVBoxLayout() + vbox = QtGui.QVBoxLayout() vbox.setSpacing(6) - label = QtWidgets.QLabel(fromUTF8(escape( + label = QtGui.QLabel(fromUTF8(escape( _("Here you can select the zones used for Shields Up and " "Shields Down.")))) label.setWordWrap(True) vbox.addWidget(label) - label = QtWidgets.QLabel(fromUTF8(escape( + label = QtGui.QLabel(fromUTF8(escape( _("This feature is useful for people using the default zones " "mostly. For users, that are changing zones of connections, it " "might be of limited use.")))) label.setWordWrap(True) vbox.addWidget(label) - grid = QtWidgets.QGridLayout() + grid = QtGui.QGridLayout() grid.setSpacing(6) - label = QtWidgets.QLabel(fromUTF8(escape(_("Shields Up Zone:")))) + label = QtGui.QLabel(fromUTF8(escape(_("Shields Up Zone:")))) label.setWordWrap(True) grid.addWidget(label, 0, 0, 1, 1) - self.shields_up_combo = QtWidgets.QComboBox() + self.shields_up_combo = QtGui.QComboBox() #self.fill_combo(self.shields_up_combo) #self.set_shields_up(self.shields_up) grid.addWidget(self.shields_up_combo, 0, 1, 1, 1) - button = QtWidgets.QPushButton(_("Reset To Default")) + button = QtGui.QPushButton(_("Reset To Default")) button.clicked.connect(self.reset_shields_up) grid.addWidget(button, 0, 2, 1, 1) - label = QtWidgets.QLabel(fromUTF8(escape(_("Shields Down Zone:")))) + label = QtGui.QLabel(fromUTF8(escape(_("Shields Down Zone:")))) label.setWordWrap(True) grid.addWidget(label, 1, 0, 1, 1) - self.shields_down_combo = QtWidgets.QComboBox() + self.shields_down_combo = QtGui.QComboBox() #self.fill_combo(self.shields_down_combo) #self.set_shields_down(self.shields_down) grid.addWidget(self.shields_down_combo, 1, 1, 1, 1) - button = QtWidgets.QPushButton(_("Reset To Default")) + button = QtGui.QPushButton(_("Reset To Default")) button.clicked.connect(self.reset_shields_down) grid.addWidget(button, 1, 2, 1, 1) vbox.addLayout(grid) - buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok - | QtWidgets.QDialogButtonBox.Cancel) - self.ok_button = buttonBox.button(QtWidgets.QDialogButtonBox.Ok) + buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok + | QtGui.QDialogButtonBox.Cancel) + self.ok_button = buttonBox.button(QtGui.QDialogButtonBox.Ok) buttonBox.accepted.connect(self.ok) buttonBox.rejected.connect(self.hide) vbox.addWidget(buttonBox) @@ -328,56 +329,56 @@ class ShieldsEditor(QtWidgets.QDialog): # AboutDialog ################################################################# -class AboutDialog(QtWidgets.QDialog): +class AboutDialog(QtGui.QDialog): def __init__(self, name, icon, version, url, copyright, authors, license): - QtWidgets.QDialog.__init__(self) + QtGui.QDialog.__init__(self) self.setWindowIcon(icon) self.setWindowTitle(fromUTF8(escape(_("About %s" % name)))) self.resize(500, 250) - vbox = QtWidgets.QVBoxLayout() + vbox = QtGui.QVBoxLayout() vbox.setSpacing(6) - hbox = QtWidgets.QHBoxLayout() + hbox = QtGui.QHBoxLayout() hbox.setSpacing(24) - label = QtWidgets.QLabel() + label = QtGui.QLabel() label.setPixmap(icon.pixmap(96)) label.setMinimumSize(96, 96) label.setMaximumSize(96, 96) hbox.addWidget(label) - vbox2 = QtWidgets.QVBoxLayout() + vbox2 = QtGui.QVBoxLayout() vbox2.setSpacing(3) - label = QtWidgets.QLabel(name) + label = QtGui.QLabel(name) font = label.font() font.setPointSize(font.pointSize()*2) font.setBold(True) label.setFont(font) vbox2.addWidget(label) - vbox2.addWidget(QtWidgets.QLabel(version)) + vbox2.addWidget(QtGui.QLabel(version)) - label = QtWidgets.QLabel("%s" % (url, url)) + label = QtGui.QLabel("%s" % (url, url)) label.setTextFormat(QtCore.Qt.RichText) label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction) label.setOpenExternalLinks(True) vbox2.addWidget(label) - vbox2.addWidget(QtWidgets.QLabel(copyright)) + vbox2.addWidget(QtGui.QLabel(copyright)) hbox.addLayout(vbox2) vbox.addLayout(hbox) - tabs = QtWidgets.QTabWidget() + tabs = QtGui.QTabWidget() tabs.setStyleSheet("QTabWidget::tab { padding: 1px 1px 1px 1px; }") - tab = QtWidgets.QWidget() - vbox3 = QtWidgets.QVBoxLayout() - textedit = QtWidgets.QPlainTextEdit() + tab = QtGui.QWidget() + vbox3 = QtGui.QVBoxLayout() + textedit = QtGui.QPlainTextEdit() #textedit.setStyleSheet("QPlainTextEdit { border: 0; padding: 0; }") textedit.setReadOnly(True) textedit.setPlainText(fromUTF8("\n".join(authors))) @@ -385,9 +386,9 @@ class AboutDialog(QtWidgets.QDialog): tab.setLayout(vbox3) tabs.addTab(tab, fromUTF8(escape(_("Authors")))) - tab = QtWidgets.QWidget() - vbox3 = QtWidgets.QVBoxLayout() - textedit = QtWidgets.QPlainTextEdit() + tab = QtGui.QWidget() + vbox3 = QtGui.QVBoxLayout() + textedit = QtGui.QPlainTextEdit() #textedit.setStyleSheet("QPlainTextEdit { border: 0; padding: 0; }") textedit.setReadOnly(True) textedit.setPlainText(license) @@ -397,7 +398,7 @@ class AboutDialog(QtWidgets.QDialog): vbox.addWidget(tabs) - buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Close) + buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Close) buttonBox.rejected.connect(self.hide) vbox.addWidget(buttonBox) @@ -405,7 +406,7 @@ class AboutDialog(QtWidgets.QDialog): # TrayApplet ################################################################## -class TrayApplet(QtWidgets.QSystemTrayIcon): +class TrayApplet(QtGui.QSystemTrayIcon): def __init__(self): super(TrayApplet, self).__init__() self.name = _("Firewall Applet") @@ -452,67 +453,67 @@ class TrayApplet(QtWidgets.QSystemTrayIc # urgencies - self.urgencies = { "noicon": QtWidgets.QSystemTrayIcon.NoIcon, - "information": QtWidgets.QSystemTrayIcon.Information, - "warning": QtWidgets.QSystemTrayIcon.Warning, - "critical": QtWidgets.QSystemTrayIcon.Critical } + self.urgencies = { "noicon": QtGui.QSystemTrayIcon.NoIcon, + "information": QtGui.QSystemTrayIcon.Information, + "warning": QtGui.QSystemTrayIcon.Warning, + "critical": QtGui.QSystemTrayIcon.Critical } # actions - self.shieldsupAction = QtWidgets.QAction(fromUTF8(escape(_("Shields Up"))), + self.shieldsupAction = QtGui.QAction(fromUTF8(escape(_("Shields Up"))), self) self.shieldsupAction.setCheckable(True) self.shieldsupAction.setChecked(False) self.shieldsupAction.triggered.connect(self.shieldsup_changed_cb) - self.notificationsAction = QtWidgets.QAction( + self.notificationsAction = QtGui.QAction( fromUTF8(escape(_("Enable Notifications"))), self) self.notificationsAction.setCheckable(True) self.notificationsAction.setChecked(False) self.notificationsAction.triggered.connect(self.notification_changed_cb) - self.settingsAction = QtWidgets.QAction( + self.settingsAction = QtGui.QAction( fromUTF8(escape(_("Edit Firewall Settings..."))), self) self.settingsAction.triggered.connect(self.configure_cb) - self.changeZonesAction = QtWidgets.QAction( + self.changeZonesAction = QtGui.QAction( fromUTF8(escape(_("Change Zones of Connections..."))), self) self.changeZonesAction.triggered.connect(self.nm_connection_editor) - self.shieldsAction = QtWidgets.QAction( + self.shieldsAction = QtGui.QAction( fromUTF8(escape(_("Configure Shields UP/Down Zones..."))), self) self.shieldsAction.triggered.connect(self.configure_shields) - self.panicAction = QtWidgets.QAction( + self.panicAction = QtGui.QAction( fromUTF8(escape(_("Block all network traffic"))), self) self.panicAction.setCheckable(True) self.panicAction.setChecked(False) self.panicAction.triggered.connect(self.panic_mode_cb) - self.aboutAction = QtWidgets.QAction(fromUTF8(escape(_("About"))), self) + self.aboutAction = QtGui.QAction(fromUTF8(escape(_("About"))), self) self.aboutAction.triggered.connect(self.about_dialog.exec_) - #self.quitAction = QtWidgets.QAction(fromUTF8(escape(_("Quit"))), self, + #self.quitAction = QtGui.QAction(fromUTF8(escape(_("Quit"))), self, # triggered=self.quit) - self.connectionsAction = QtWidgets.QWidgetAction(self) - self.connectionsAction.setDefaultWidget(QtWidgets.QLabel( + self.connectionsAction = QtGui.QWidgetAction(self) + self.connectionsAction.setDefaultWidget(QtGui.QLabel( fromUTF8(""+escape(_("Connections"))+" "))) - self.interfacesAction = QtWidgets.QWidgetAction(self) - self.interfacesAction.setDefaultWidget(QtWidgets.QLabel( + self.interfacesAction = QtGui.QWidgetAction(self) + self.interfacesAction.setDefaultWidget(QtGui.QLabel( fromUTF8(""+escape(_("Interfaces"))+" "))) - self.sourcesAction = QtWidgets.QWidgetAction(self) - self.sourcesAction.setDefaultWidget(QtWidgets.QLabel( + self.sourcesAction = QtGui.QWidgetAction(self) + self.sourcesAction.setDefaultWidget(QtGui.QLabel( fromUTF8(""+escape(_("Sources"))+" "))) # init - self.left_menu = QtWidgets.QMenu() + self.left_menu = QtGui.QMenu() self.left_menu.setStyleSheet('QMenu { margin: 5px; }') - self.right_menu = QtWidgets.QMenu() + self.right_menu = QtGui.QMenu() self.right_menu.addAction(self.shieldsupAction) self.right_menu.addAction(self.notificationsAction) self.right_menu.addSeparator() @@ -631,7 +632,7 @@ class TrayApplet(QtWidgets.QSystemTrayIc self.setVisible(True) def activated_cb(self, reason): - if reason == QtWidgets.QSystemTrayIcon.Trigger: + if reason == QtGui.QSystemTrayIcon.Trigger: self.left_menu.popup(QtGui.QCursor.pos()) def update_active_zones(self): @@ -679,12 +680,12 @@ class TrayApplet(QtWidgets.QSystemTrayIc zone = connections[connection][0] if zone == "": _binding = _("{entry} (Default Zone: {default_zone})") - action = QtWidgets.QAction( + action = QtGui.QAction( fromUTF8(escape( _binding.format(default_zone=self.default_zone, entry=connection))), self) else: - action = QtWidgets.QAction( + action = QtGui.QAction( fromUTF8(escape(binding.format(zone=zone, entry=connection))), self) action.triggered.connect(functools.partial( @@ -697,7 +698,7 @@ class TrayApplet(QtWidgets.QSystemTrayIc # add other interfaces for interface in sorted(interfaces): zone = interfaces[interface] - action = QtWidgets.QAction( + action = QtGui.QAction( fromUTF8(escape(binding.format(zone=zone, entry=interface))), self) action.triggered.connect(functools.partial( @@ -709,7 +710,7 @@ class TrayApplet(QtWidgets.QSystemTrayIc for source in sorted(sources): zone = sources[source] - action = QtWidgets.QAction( + action = QtGui.QAction( fromUTF8(escape(binding.format(zone=zone, entry=source))), self) action.triggered.connect(functools.partial( @@ -931,10 +932,10 @@ class TrayApplet(QtWidgets.QSystemTrayIc os.system("%s &" % NM_CONNECTION_EDITOR) def warning(self, text): - QtWidgets.QMessageBox.warning(None, fromUTF8(escape(self.name)), text) + QtGui.QMessageBox.warning(None, fromUTF8(escape(self.name)), text) def error(self, text): - QtWidgets.QMessageBox.critical(None, fromUTF8(escape(self.name)), text) + QtGui.QMessageBox.critical(None, fromUTF8(escape(self.name)), text) def configure_cb(self, widget): os.system("firewall-config &") @@ -970,8 +971,6 @@ class TrayApplet(QtWidgets.QSystemTrayIc def reloaded(self): if self.notificationsAction.isChecked(): self.notify(escape(_("FirewallD has been reloaded."))) - self.update_active_zones() - self.update_tooltip() def default_zone_changed(self, zone): self.default_zone = zone @@ -1118,7 +1117,7 @@ Options: # reset SIGINT signal to default signal.signal(signal.SIGINT, signal.SIG_DFL) -app = QtWidgets.QApplication(sys.argv) +app = QtGui.QApplication(sys.argv) app.setQuitOnLastWindowClosed(False) applet = TrayApplet()