Skip to content

Commit 5b275ca

Browse files
committed
faves filter fixes + enter key not closing settings dialog no more
1 parent 09395a3 commit 5b275ca

File tree

3 files changed

+33
-20
lines changed

3 files changed

+33
-20
lines changed

__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/usr/bin/env python3
22
# -*- coding: utf-8 -*-
33

4-
__version__ = '2.9.8'
4+
__version__ = '3.0.0'

settings.py

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import sys
66

77
from PyQt5.QtCore import QSettings, Qt, pyqtSlot
8-
from PyQt5.QtGui import QCloseEvent, QIcon, QPixmap
8+
from PyQt5.QtGui import QCloseEvent, QIcon, QKeyEvent, QPixmap
99
from 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

5254
class 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/>&nbsp;&nbsp;&nbsp;&nbsp;the simpsons<br/>
310+
&nbsp;&nbsp;&nbsp;&nbsp;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)

tvlinker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ def init_table(self) -> QTableWidget:
195195
self.table.setAlternatingRowColors(True)
196196
self.table.setSelectionMode(QAbstractItemView.SingleSelection)
197197
self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
198-
self.table.setHorizontalHeaderLabels(('Date', 'URL', 'Description', 'Format'))
198+
self.table.setHorizontalHeaderLabels(('DATE', 'URL', 'DESCRIPTION', 'FORMAT'))
199199
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
200200
self.table.horizontalHeader().setSectionResizeMode(2, QHeaderView.Stretch)
201201
self.table.horizontalHeader().setMinimumSectionSize(100)

0 commit comments

Comments
 (0)