1) added option to change table scale;
2) fixed focusing issue
This commit is contained in:
parent
6fc4f716b7
commit
b71e2bbb55
41
frontend.py
41
frontend.py
@ -12,7 +12,7 @@ from PyQt5.QtWidgets import (
|
||||
QInputDialog, QApplication, QAbstractItemView, QSizePolicy, QHeaderView, QPushButton
|
||||
)
|
||||
from PyQt5.QtCore import Qt, QSettings
|
||||
from PyQt5.QtGui import QColor, QIcon
|
||||
from PyQt5.QtGui import QColor, QIcon, QFont
|
||||
from backend import AnimeBackend
|
||||
|
||||
# Set up logging
|
||||
@ -94,6 +94,8 @@ Global Shortcuts:
|
||||
- Page Up: Previous tab
|
||||
- Q: Quit the program
|
||||
- R: Pick random anime
|
||||
- Ctrl + + : Increase table scale
|
||||
- Ctrl + - : Decrease table scale
|
||||
|
||||
Table-specific Shortcuts (apply to selected entry):
|
||||
- Delete: Delete an anime
|
||||
@ -189,12 +191,14 @@ class AnimeTracker(QMainWindow):
|
||||
self.status_filter = None
|
||||
self.type_filter = None
|
||||
self.search_text = None
|
||||
self.table_scale = self.settings.value("tableScale", 1.0, type=float)
|
||||
self.create_menu()
|
||||
self.load_tabs()
|
||||
self.restoreGeometry(self.settings.value("geometry", self.saveGeometry()))
|
||||
last_tab = self.settings.value("lastTab", None)
|
||||
if last_tab is not None:
|
||||
self.set_current_tab_by_identifier(last_tab)
|
||||
self.tab_widget.setFocus()
|
||||
|
||||
def apply_filters(self):
|
||||
year_val = self.year_spin.value()
|
||||
@ -212,6 +216,7 @@ class AnimeTracker(QMainWindow):
|
||||
def closeEvent(self, event):
|
||||
self.settings.setValue("geometry", self.saveGeometry())
|
||||
self.settings.setValue("lastTab", self.get_current_tab_identifier())
|
||||
self.settings.setValue("tableScale", self.table_scale)
|
||||
super().closeEvent(event)
|
||||
|
||||
def create_menu(self):
|
||||
@ -308,6 +313,11 @@ class AnimeTracker(QMainWindow):
|
||||
header.setSectionResizeMode(4, QHeaderView.ResizeToContents) # Status
|
||||
header.setSectionResizeMode(5, QHeaderView.Stretch) # Comment
|
||||
header.setSectionResizeMode(6, QHeaderView.ResizeToContents) # Actions
|
||||
font = QFont()
|
||||
font.setPointSize(int(10 * self.table_scale))
|
||||
table.setFont(font)
|
||||
table.horizontalHeader().setFont(font)
|
||||
table.verticalHeader().setFont(font)
|
||||
for row, entry in enumerate(pre_entries):
|
||||
col = 0
|
||||
# ID
|
||||
@ -316,6 +326,7 @@ class AnimeTracker(QMainWindow):
|
||||
col += 1
|
||||
# Year
|
||||
year_item = QTableWidgetItem(str(entry[2]))
|
||||
year_item.setFont(font)
|
||||
table.setItem(row, col, year_item)
|
||||
col += 1
|
||||
# Name
|
||||
@ -328,22 +339,28 @@ class AnimeTracker(QMainWindow):
|
||||
name_label.setOpenExternalLinks(True)
|
||||
else:
|
||||
name_label.setText(html.escape(name))
|
||||
name_label.setFont(font)
|
||||
table.setCellWidget(row, col, name_label)
|
||||
col += 1
|
||||
# Type
|
||||
type_item = QTableWidgetItem(entry[5] or '')
|
||||
type_item.setFont(font)
|
||||
table.setItem(row, col, type_item)
|
||||
col += 1
|
||||
# Status
|
||||
status_item = QTableWidgetItem(entry[4])
|
||||
status_item.setFont(font)
|
||||
table.setItem(row, col, status_item)
|
||||
col += 1
|
||||
# Comment
|
||||
comment_item = QTableWidgetItem(entry[6] or '')
|
||||
comment_item.setFont(font)
|
||||
table.setItem(row, col, comment_item)
|
||||
col += 1
|
||||
# Actions
|
||||
actions_widget = self.create_actions_widget(entry[0], entry[4])
|
||||
for child in actions_widget.findChildren(QToolButton):
|
||||
child.setFont(font)
|
||||
table.setCellWidget(row, col, actions_widget)
|
||||
table.resizeColumnsToContents()
|
||||
table.resizeRowsToContents()
|
||||
@ -428,6 +445,11 @@ class AnimeTracker(QMainWindow):
|
||||
header.setSectionResizeMode(3, QHeaderView.ResizeToContents) # Status
|
||||
header.setSectionResizeMode(4, QHeaderView.Stretch) # Comment
|
||||
header.setSectionResizeMode(5, QHeaderView.ResizeToContents) # Actions
|
||||
font = QFont()
|
||||
font.setPointSize(int(10 * self.table_scale))
|
||||
table.setFont(font)
|
||||
table.horizontalHeader().setFont(font)
|
||||
table.verticalHeader().setFont(font)
|
||||
for row, entry in enumerate(entries):
|
||||
col = 0
|
||||
# ID
|
||||
@ -444,22 +466,28 @@ class AnimeTracker(QMainWindow):
|
||||
name_label.setOpenExternalLinks(True)
|
||||
else:
|
||||
name_label.setText(html.escape(name))
|
||||
name_label.setFont(font)
|
||||
table.setCellWidget(row, col, name_label)
|
||||
col += 1
|
||||
# Type
|
||||
type_item = QTableWidgetItem(entry[5] or '')
|
||||
type_item.setFont(font)
|
||||
table.setItem(row, col, type_item)
|
||||
col += 1
|
||||
# Status
|
||||
status_item = QTableWidgetItem(entry[4])
|
||||
status_item.setFont(font)
|
||||
table.setItem(row, col, status_item)
|
||||
col += 1
|
||||
# Comment
|
||||
comment_item = QTableWidgetItem(entry[6] or '')
|
||||
comment_item.setFont(font)
|
||||
table.setItem(row, col, comment_item)
|
||||
col += 1
|
||||
# Actions
|
||||
actions_widget = self.create_actions_widget(entry[0], entry[4])
|
||||
for child in actions_widget.findChildren(QToolButton):
|
||||
child.setFont(font)
|
||||
table.setCellWidget(row, col, actions_widget)
|
||||
table.resizeColumnsToContents()
|
||||
table.resizeRowsToContents()
|
||||
@ -661,6 +689,17 @@ class AnimeTracker(QMainWindow):
|
||||
self.close()
|
||||
elif key == Qt.Key_R:
|
||||
self.random_pick()
|
||||
elif modifiers == Qt.ControlModifier:
|
||||
if key == Qt.Key_Plus or key == Qt.Key_Equal:
|
||||
current_id = self.get_current_tab_identifier()
|
||||
self.table_scale = min(self.table_scale + 0.1, 2.0)
|
||||
self.load_tabs()
|
||||
self.set_current_tab_by_identifier(current_id)
|
||||
elif key == Qt.Key_Minus:
|
||||
current_id = self.get_current_tab_identifier()
|
||||
self.table_scale = max(self.table_scale - 0.1, 0.5)
|
||||
self.load_tabs()
|
||||
self.set_current_tab_by_identifier(current_id)
|
||||
super().keyPressEvent(event)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Loading…
Reference in New Issue
Block a user