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