55import sys
66
77from PyQt5 .QtCore import QSettings , Qt , pyqtSlot
8- from PyQt5 .QtGui import QCloseEvent , QIcon , QPixmap
8+ from PyQt5 .QtGui import QCloseEvent , QIcon , QKeyEvent , QPixmap
99from PyQt5 .QtWidgets import (QAbstractItemView , QComboBox , QDialog , QDialogButtonBox ,
1010 QFormLayout , QGroupBox , QHBoxLayout , QLabel , QLayout , QLineEdit ,
1111 QListWidget , QListWidgetItem , QPushButton , QSizePolicy , QStackedLayout , QStyleFactory ,
@@ -27,12 +27,9 @@ def __init__(self, parent, settings: QSettings, f=Qt.WindowCloseButtonHint):
2727 button_box .accepted .connect (self .save_settings )
2828 button_box .rejected .connect (self .close )
2929 layout = QVBoxLayout ()
30- # layout.setSizeConstraint(QLayout.SetFixedSize)
3130 layout .addWidget (tabs )
3231 layout .addWidget (button_box )
33-
3432 self .setLayout (layout )
35-
3633 self .setWindowTitle ('%s Settings' % qApp .applicationName ())
3734 self .setWindowIcon (self .parent .icon_settings )
3835
@@ -42,11 +39,16 @@ def save_settings(self) -> None:
4239 self .parent .init_settings ()
4340 self .close ()
4441
42+ def keyPressEvent (self , event : QKeyEvent ) -> None :
43+ if event .key () in (Qt .Key_Enter , Qt .Key_Return ):
44+ return
45+ super (Settings , self ).keyPressEvent (event )
46+
4547 def closeEvent (self , event : QCloseEvent ) -> None :
4648 self .tab_general .deleteLater ()
4749 self .tab_favorites .deleteLater ()
4850 self .deleteLater ()
49- super ( QDialog , self ). closeEvent ( event )
51+ event . accept ( )
5052
5153
5254class GeneralTab (QWidget ):
@@ -253,53 +255,64 @@ def __init__(self, settings: QSettings):
253255 self .settings = settings
254256 faves_formLayout = QFormLayout (labelAlignment = Qt .AlignRight )
255257 self .faves_lineEdit = QLineEdit (self )
258+ self .faves_lineEdit .returnPressed .connect (self .add_item )
256259 self .faves_lineEdit .setSizePolicy (QSizePolicy .Expanding , QSizePolicy .Fixed )
257260 faves_addItemButton = QPushButton (parent = self , flat = False , cursor = Qt .PointingHandCursor , text = 'Add' ,
258261 icon = qta .icon ('fa.plus' , color = '#555' ), toolTip = 'Add item' ,
259262 clicked = self .add_item )
260- faves_addItemButton .setDefault (True )
261263 faves_deleteItemButton = QPushButton (parent = self , flat = False , cursor = Qt .PointingHandCursor , text = 'Delete' ,
262264 icon = qta .icon ('fa.minus' , color = '#555' ), toolTip = 'Delete selected item' ,
263265 clicked = self .delete_items )
264- faves_lineEditLayout = QHBoxLayout ()
265- faves_lineEditLayout .addWidget (self .faves_lineEdit )
266- faves_lineEditLayout .addWidget (faves_addItemButton )
267- faves_lineEditLayout .addWidget (faves_deleteItemButton )
268- faves_formLayout .addRow ('Item Label:' , faves_lineEditLayout )
266+ faves_buttonLayout = QHBoxLayout ()
267+ faves_buttonLayout .addWidget (faves_addItemButton )
268+ faves_buttonLayout .addWidget (faves_deleteItemButton )
269+ faves_formLayout .addRow ('Item Label:' , self .faves_lineEdit )
270+ faves_formLayout .addRow (faves_buttonLayout )
271+ faves_formLayout .addRow (self .get_notes ())
269272 self .faves_listWidget = QListWidget (self )
270273 self .faves_listWidget .setSelectionMode (QAbstractItemView .ExtendedSelection )
271274 self .faves_listWidget .setSortingEnabled (True )
272- self .add_items (self .settings .value ('favorites' ))
275+ self .add_items (self .settings .value ('favorites' , '' ))
273276
274- tab_layout = QVBoxLayout ()
277+ tab_layout = QHBoxLayout ()
275278 tab_layout .addLayout (faves_formLayout )
276279 tab_layout .addWidget (self .faves_listWidget )
277280
278281 self .setLayout (tab_layout )
279282
280- def add_items (self , items : list ):
283+ def add_items (self , items : list ) -> None :
281284 for item in items :
282285 listitem = QListWidgetItem (item , self .faves_listWidget )
283286 listitem .setFlags (listitem .flags () | Qt .ItemIsEditable )
284287 self .faves_listWidget .sortItems (Qt .AscendingOrder )
285288
286289 @pyqtSlot ()
287- def delete_items (self ):
290+ def delete_items (self ) -> None :
288291 for item in self .faves_listWidget .selectedItems ():
289292 deleted_item = self .faves_listWidget .takeItem (self .faves_listWidget .row (item ))
290293 del deleted_item
291294
292295 @pyqtSlot ()
293- def add_item (self ):
294- if len (self .faves_lineEdit .text ()) > 0 :
296+ def add_item (self ) -> None :
297+ if len (self .faves_lineEdit .text ()):
295298 item = QListWidgetItem (self .faves_lineEdit .text (), self .faves_listWidget )
296299 item .setFlags (item .flags () | Qt .ItemIsEditable )
297300 self .faves_listWidget .sortItems (order = Qt .AscendingOrder )
298301 self .faves_lineEdit .clear ()
299302
303+ def get_notes (self ) -> QLabel :
304+ content = QLabel ()
305+ content .setStyleSheet ('margin:10px; border:1px solid #BABABA; padding:10px; color:#666;' )
306+ content .setTextFormat (Qt .RichText )
307+ content .setWordWrap (True )
308+ content .setText ('''Labels from this list will be used to filter links. Filtering is NOT case-sensitive.
309+ <br/><br/>Example:<br/><br/> the simpsons<br/>
310+ south park''' )
311+ return content
312+
300313 def save (self ) -> None :
301314 if self .faves_listWidget .count ():
302- faves = list ()
315+ faves = []
303316 for row in range (0 , self .faves_listWidget .count ()):
304317 faves .append (self .faves_listWidget .item (row ).text ())
305318 self .settings .setValue ('favorites' , faves )
0 commit comments