Skip to content

Commit

Permalink
ui, prefs: use buttons to change spins' values
Browse files Browse the repository at this point in the history
Instead of the builtin buttons to increase the value of spin boxes, use
regular buttons. It'll be easier to use on touchable devices.

Note: This feature can also be achieved by customizing SpinBoxes' css
style.
  • Loading branch information
gustavo-iniguez-goya committed Jan 6, 2022
1 parent db901a8 commit 2d2a970
Show file tree
Hide file tree
Showing 2 changed files with 208 additions and 59 deletions.
28 changes: 28 additions & 0 deletions ui/opensnitch/dialogs/preferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ class PreferencesDialog(QtWidgets.QDialog, uic.loadUiType(DIALOG_UI_PATH)[0]):
TAB_NODES = 2
TAB_DB = 3

SUM = 1
REST = 0

def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent, QtCore.Qt.WindowStaysOnTopHint)

Expand All @@ -48,13 +51,26 @@ def __init__(self, parent=None):
self.popupsCheck.clicked.connect(self._cb_popups_check_toggled)
self.dbFileButton.clicked.connect(self._cb_file_db_clicked)
self.checkUIRules.toggled.connect(self._cb_check_ui_rules_toggled)
self.cmdTimeoutUp.clicked.connect(lambda: self._cb_cmd_spin_clicked(self.spinUITimeout, self.SUM))
self.cmdTimeoutDown.clicked.connect(lambda: self._cb_cmd_spin_clicked(self.spinUITimeout, self.REST))
self.cmdDBMaxDaysUp.clicked.connect(lambda: self._cb_cmd_spin_clicked(self.spinDBMaxDays, self.SUM))
self.cmdDBMaxDaysDown.clicked.connect(lambda: self._cb_cmd_spin_clicked(self.spinDBMaxDays, self.REST))
self.cmdDBPurgesUp.clicked.connect(lambda: self._cb_cmd_spin_clicked(self.spinDBPurgeInterval, self.SUM))
self.cmdDBPurgesDown.clicked.connect(lambda: self._cb_cmd_spin_clicked(self.spinDBPurgeInterval, self.REST))
self.helpButton.setToolTipDuration(10 * 1000)

if QtGui.QIcon.hasThemeIcon("emblem-default") == False:
self.applyButton.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_DialogApplyButton")))
self.cancelButton.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_DialogCloseButton")))
self.acceptButton.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_DialogSaveButton")))
self.dbFileButton.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_DirOpenIcon")))
if QtGui.QIcon.hasThemeIcon("zoom-in") == False:
self.cmdTimeoutUp.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_ArrowUp")))
self.cmdTimeoutDown.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_ArrowDown")))
self.cmdDBMaxDaysUp.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_ArrowUp")))
self.cmdDBMaxDaysDown.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_ArrowDown")))
self.cmdDBPurgesUp.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_ArrowUp")))
self.cmdDBPurgesDown.setIcon(self.style().standardIcon(getattr(QtWidgets.QStyle, "SP_ArrowDown")))

def showEvent(self, event):
super(PreferencesDialog, self).showEvent(event)
Expand Down Expand Up @@ -394,6 +410,12 @@ def _enable_db_cleaner_options(self, enable, db_max_days):
self.spinDBMaxDays.setEnabled(enable)
self.spinDBPurgeInterval.setEnabled(enable)
self.labelDBPurgeInterval.setEnabled(enable)
self.cmdTimeoutUp.setEnabled(enable)
self.cmdTimeoutDown.setEnabled(enable)
self.cmdDBMaxDaysUp.setEnabled(enable)
self.cmdDBMaxDaysDown.setEnabled(enable)
self.cmdDBPurgesUp.setEnabled(enable)
self.cmdDBPurgesDown.setEnabled(enable)

@QtCore.pyqtSlot(ui_pb2.NotificationReply)
def _cb_notification_callback(self, reply):
Expand Down Expand Up @@ -452,3 +474,9 @@ def _cb_check_ui_rules_toggled(self, state):

def _cb_db_max_days_toggled(self, state):
self._enable_db_cleaner_options(state, 1)

def _cb_cmd_spin_clicked(self, spinWidget, operation):
if operation == self.SUM:
spinWidget.setValue(spinWidget.value() + 1)
else:
spinWidget.setValue(spinWidget.value() - 1)
239 changes: 180 additions & 59 deletions ui/opensnitch/res/preferences.ui
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>626</width>
<height>403</height>
<height>405</height>
</rect>
</property>
<property name="windowTitle">
Expand Down Expand Up @@ -39,39 +39,14 @@
<string>Pop-ups</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="2">
<widget class="QSpinBox" name="spinUITimeout">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::PlusMinus</enum>
</property>
<property name="value">
<number>15</number>
</property>
</widget>
</item>
<item row="0" column="2">
<item row="0" column="3">
<widget class="QCheckBox" name="popupsCheck">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0" colspan="3">
<item row="2" column="0" colspan="4">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
Expand Down Expand Up @@ -392,7 +367,73 @@
</layout>
</widget>
</item>
<item row="1" column="0" colspan="2">
<item row="1" column="3">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QPushButton" name="cmdTimeoutUp">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="list-add">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinUITimeout">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="value">
<number>15</number>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cmdTimeoutDown">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="list-remove">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0" colspan="3">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
Expand All @@ -408,7 +449,7 @@
</property>
</widget>
</item>
<item row="0" column="0">
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Disable pop-ups, only display an alert</string>
Expand Down Expand Up @@ -870,7 +911,7 @@
<number>9</number>
</property>
<property name="verticalSpacing">
<number>10</number>
<number>15</number>
</property>
<item row="1" column="1" colspan="3">
<widget class="QLabel" name="dbLabel">
Expand Down Expand Up @@ -960,20 +1001,59 @@
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="0" column="0">
<widget class="QCheckBox" name="checkDBMaxDays">
<item row="0" column="3">
<widget class="QSpinBox" name="spinDBMaxDays">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="cmdDBMaxDaysUp">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Maximum days of events to keep</string>
<string/>
</property>
<property name="icon">
<iconset theme="list-add">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="2">
<item row="1" column="5">
<widget class="QLabel" name="label_20">
<property name="text">
<string>minutes</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QSpinBox" name="spinDBPurgeInterval">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::PlusMinus</enum>
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="minimum">
<number>5</number>
Expand All @@ -993,22 +1073,6 @@
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QSpinBox" name="spinDBMaxDays">
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::PlusMinus</enum>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
Expand All @@ -1022,7 +1086,7 @@
</property>
</spacer>
</item>
<item row="0" column="3">
<item row="0" column="5">
<widget class="QLabel" name="label_19">
<property name="text">
<string>days</string>
Expand All @@ -1032,13 +1096,70 @@
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label_20">
<item row="0" column="0">
<widget class="QCheckBox" name="checkDBMaxDays">
<property name="text">
<string>Maximum days of events to keep</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="cmdDBMaxDaysDown">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Minutes</string>
<string/>
</property>
<property name="margin">
<number>5</number>
<property name="icon">
<iconset theme="list-remove">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="cmdDBPurgesUp">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="list-add">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="cmdDBPurgesDown">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="list-remove">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
Expand Down

0 comments on commit 2d2a970

Please sign in to comment.