diff --git a/__main__.py b/__main__.py
index 85fef6f..a99ab24 100755
--- a/__main__.py
+++ b/__main__.py
@@ -40,6 +40,7 @@
✓ Remember open tabs
Special Keyboard shortcuts and view modes for QGraphicsView
Selectable background color for QGraphicsView
+ View and hide toolbar actions in a list
Record progress
Pagination
Set context menu for definitions and the like
@@ -268,6 +269,9 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
current_metadata = self.tabWidget.widget(
self.tabWidget.currentIndex()).metadata
+ if self.bookToolBar.fontButton.isChecked():
+ self.bookToolBar.customize_view_on()
+
current_title = current_metadata['title']
current_author = current_metadata['author']
current_position = current_metadata['position']
@@ -277,7 +281,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.bookToolBar.tocBox.clear()
self.bookToolBar.tocBox.addItems(current_toc)
if current_position:
- self.bookToolBar.tocBox.setCurrentIndex(current_position['current_chapter'] - 1)
+ self.bookToolBar.tocBox.setCurrentIndex(
+ current_position['current_chapter'] - 1)
self.bookToolBar.tocBox.blockSignals(False)
self.format_contentView()
diff --git a/resources/raw/settings.ui b/resources/raw/settings.ui
index 215a2f0..4e82241 100644
--- a/resources/raw/settings.ui
+++ b/resources/raw/settings.ui
@@ -6,105 +6,128 @@
0
0
- 817
- 476
+ 550
+ 627
Settings
-
+
-
-
-
-
- Library Directories:
-
-
- Qt::AlignCenter
+
+
+ Library
+
+
-
+
+
-
+
+
+ true
+
+
+
+ Path
+
+
+
+
+ Name
+
+
+
+
+ Auto Tag
+
+
+
+
+ -
+
+
-
+
+
+ Add
+
+
+
+ -
+
+
+ Remove
+
+
+
+ -
+
+
+ Refresh
+
+
+
+
+
+
+
+
-
-
-
- true
+
+
+ Startup
-
-
- Name
-
-
-
-
- Path
-
-
-
-
- Auto Tag
-
-
+
+
-
+
+
-
+
+
+ Auto add files
+
+
+
+ -
+
+
+ Remember open files
+
+
+
+ -
+
+
+ Show Library
+
+
+
+
+
+ -
+
+
-
+
+
+ About
+
+
+
+ -
+
+
+ OK
+
+
+
+
+
+
- -
-
-
-
-
-
- Add
-
-
-
- -
-
-
- Remove
-
-
-
- -
-
-
- Refresh
-
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- -
-
-
-
-
-
- Remember open files
-
-
-
- -
-
-
- Auto add files on start
-
-
-
- -
-
-
- OK
-
-
-
-
-
diff --git a/resources/settingswindow.py b/resources/settingswindow.py
index cadc3e3..d6222c5 100644
--- a/resources/settingswindow.py
+++ b/resources/settingswindow.py
@@ -11,16 +11,18 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
- Dialog.resize(817, 476)
- self.gridLayout = QtWidgets.QGridLayout(Dialog)
- self.gridLayout.setObjectName("gridLayout")
+ Dialog.resize(550, 627)
+ self.gridLayout_3 = QtWidgets.QGridLayout(Dialog)
+ self.gridLayout_3.setObjectName("gridLayout_3")
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
- self.label = QtWidgets.QLabel(Dialog)
- self.label.setAlignment(QtCore.Qt.AlignCenter)
- self.label.setObjectName("label")
- self.verticalLayout_2.addWidget(self.label)
- self.tableWidget = QtWidgets.QTableWidget(Dialog)
+ self.groupBox_2 = QtWidgets.QGroupBox(Dialog)
+ self.groupBox_2.setObjectName("groupBox_2")
+ self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_2)
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.verticalLayout = QtWidgets.QVBoxLayout()
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.tableWidget = QtWidgets.QTableWidget(self.groupBox_2)
self.tableWidget.setAlternatingRowColors(True)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(3)
@@ -31,37 +33,48 @@ class Ui_Dialog(object):
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
- self.verticalLayout_2.addWidget(self.tableWidget)
- self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
- self.horizontalLayout_2.setObjectName("horizontalLayout_2")
- self.addButton = QtWidgets.QPushButton(Dialog)
+ self.verticalLayout.addWidget(self.tableWidget)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.addButton = QtWidgets.QPushButton(self.groupBox_2)
self.addButton.setObjectName("addButton")
- self.horizontalLayout_2.addWidget(self.addButton)
- self.removeButton = QtWidgets.QPushButton(Dialog)
+ self.horizontalLayout.addWidget(self.addButton)
+ self.removeButton = QtWidgets.QPushButton(self.groupBox_2)
self.removeButton.setObjectName("removeButton")
- self.horizontalLayout_2.addWidget(self.removeButton)
- self.refreshButton = QtWidgets.QPushButton(Dialog)
+ self.horizontalLayout.addWidget(self.removeButton)
+ self.refreshButton = QtWidgets.QPushButton(self.groupBox_2)
self.refreshButton.setObjectName("refreshButton")
- self.horizontalLayout_2.addWidget(self.refreshButton)
- self.verticalLayout_2.addLayout(self.horizontalLayout_2)
- self.line = QtWidgets.QFrame(Dialog)
- self.line.setFrameShape(QtWidgets.QFrame.HLine)
- self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
- self.line.setObjectName("line")
- self.verticalLayout_2.addWidget(self.line)
+ self.horizontalLayout.addWidget(self.refreshButton)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1)
+ self.verticalLayout_2.addWidget(self.groupBox_2)
+ self.groupBox = QtWidgets.QGroupBox(Dialog)
+ self.groupBox.setObjectName("groupBox")
+ self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
+ self.gridLayout.setObjectName("gridLayout")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
- self.fileRemember = QtWidgets.QCheckBox(Dialog)
- self.fileRemember.setObjectName("fileRemember")
- self.horizontalLayout_3.addWidget(self.fileRemember)
- self.checkBox = QtWidgets.QCheckBox(Dialog)
+ self.checkBox = QtWidgets.QCheckBox(self.groupBox)
self.checkBox.setObjectName("checkBox")
self.horizontalLayout_3.addWidget(self.checkBox)
- self.okButton = QtWidgets.QPushButton(Dialog)
+ self.fileRemember = QtWidgets.QCheckBox(self.groupBox)
+ self.fileRemember.setObjectName("fileRemember")
+ self.horizontalLayout_3.addWidget(self.fileRemember)
+ self.checkBox_2 = QtWidgets.QCheckBox(self.groupBox)
+ self.checkBox_2.setObjectName("checkBox_2")
+ self.horizontalLayout_3.addWidget(self.checkBox_2)
+ self.gridLayout.addLayout(self.horizontalLayout_3, 0, 0, 1, 1)
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.aboutButton = QtWidgets.QPushButton(self.groupBox)
+ self.aboutButton.setObjectName("aboutButton")
+ self.horizontalLayout_2.addWidget(self.aboutButton)
+ self.okButton = QtWidgets.QPushButton(self.groupBox)
self.okButton.setObjectName("okButton")
- self.horizontalLayout_3.addWidget(self.okButton)
- self.verticalLayout_2.addLayout(self.horizontalLayout_3)
- self.gridLayout.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
+ self.horizontalLayout_2.addWidget(self.okButton)
+ self.gridLayout.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
+ self.verticalLayout_2.addWidget(self.groupBox)
+ self.gridLayout_3.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
@@ -69,17 +82,20 @@ class Ui_Dialog(object):
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Settings"))
- self.label.setText(_translate("Dialog", "Library Directories:"))
+ self.groupBox_2.setTitle(_translate("Dialog", "Library"))
item = self.tableWidget.horizontalHeaderItem(0)
- item.setText(_translate("Dialog", "Name"))
- item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("Dialog", "Path"))
+ item = self.tableWidget.horizontalHeaderItem(1)
+ item.setText(_translate("Dialog", "Name"))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("Dialog", "Auto Tag"))
self.addButton.setText(_translate("Dialog", "Add"))
self.removeButton.setText(_translate("Dialog", "Remove"))
self.refreshButton.setText(_translate("Dialog", "Refresh"))
+ self.groupBox.setTitle(_translate("Dialog", "Startup"))
+ self.checkBox.setText(_translate("Dialog", "Auto add files"))
self.fileRemember.setText(_translate("Dialog", "Remember open files"))
- self.checkBox.setText(_translate("Dialog", "Auto add files on start"))
+ self.checkBox_2.setText(_translate("Dialog", "Show Library"))
+ self.aboutButton.setText(_translate("Dialog", "About"))
self.okButton.setText(_translate("Dialog", "OK"))
diff --git a/widgets.py b/widgets.py
index b451a10..e716239 100644
--- a/widgets.py
+++ b/widgets.py
@@ -26,14 +26,18 @@ class BookToolBar(QtWidgets.QToolBar):
self.setObjectName("LibraryToolBar")
# Buttons
- self.fullscreenButton = QtWidgets.QAction(
- QtGui.QIcon.fromTheme('view-fullscreen'), 'Fullscreen', self)
self.fontButton = QtWidgets.QAction(
- QtGui.QIcon.fromTheme('gtk-select-font'), 'Font settings', self)
+ QtGui.QIcon.fromTheme('gtk-select-font'),
+ 'Font settings', self)
+ self.fullscreenButton = QtWidgets.QAction(
+ QtGui.QIcon.fromTheme('view-fullscreen'),
+ 'Fullscreen', self)
self.settingsButton = QtWidgets.QAction(
- QtGui.QIcon.fromTheme('settings'), 'Settings', self)
+ QtGui.QIcon.fromTheme('settings'),
+ 'Settings', self)
self.resetProfile = QtWidgets.QAction(
- QtGui.QIcon.fromTheme('view-refresh'), 'Reset profile', self)
+ QtGui.QIcon.fromTheme('view-refresh'),
+ 'Reset profile', self)
# Add buttons
self.addAction(self.fontButton)
@@ -100,20 +104,73 @@ class BookToolBar(QtWidgets.QToolBar):
self.addAction(self.paddingUp)
self.addAction(self.paddingDown)
- self.fontBoxAction.setVisible(False)
- self.fontSizeBoxAction.setVisible(False)
- self.fgColorAction.setVisible(False)
- self.bgColorAction.setVisible(False)
- self.lineSpacingUp.setVisible(False)
- self.lineSpacingDown.setVisible(False)
- self.paddingUp.setVisible(False)
- self.paddingDown.setVisible(False)
- self.profileAction.setVisible(False)
- self.fontSeparator1.setVisible(False)
- self.fontSeparator2.setVisible(False)
- self.fontSeparator3.setVisible(False)
- self.fontSeparator4.setVisible(False)
+ self.fontActions = [
+ self.fontBoxAction,
+ self.fontSizeBoxAction,
+ self.fgColorAction,
+ self.bgColorAction,
+ self.lineSpacingUp,
+ self.lineSpacingDown,
+ self.paddingUp,
+ self.paddingDown,
+ self.profileAction,
+ self.fontSeparator1,
+ self.fontSeparator2,
+ self.fontSeparator3,
+ self.fontSeparator4,
+ self.resetProfile]
+ for i in self.fontActions:
+ i.setVisible(False)
+
+ # Comic view modification
+ self.zoomIn = QtWidgets.QAction(
+ QtGui.QIcon.fromTheme('zoom-in'),
+ 'Zoom in', self)
+ self.zoomOut = QtWidgets.QAction(
+ QtGui.QIcon.fromTheme('zoom-out'),
+ 'Zoom Out', self)
+
+ self.fitWidth = QtWidgets.QAction(
+ QtGui.QIcon.fromTheme('zoom-fit-width'),
+ 'Fit Width', self)
+ self.fitWidth.setCheckable(True)
+ self.bestFit = QtWidgets.QAction(
+ QtGui.QIcon.fromTheme('zoom-fit-best'),
+ 'Best Fit', self)
+ self.bestFit.setCheckable(True)
+ self.originalSize = QtWidgets.QAction(
+ QtGui.QIcon.fromTheme('zoom-original'),
+ 'Original size', self)
+ self.originalSize.setCheckable(True)
+
+ self.comicColorBG = FixedPushButton(self)
+ self.comicColorBG.setToolTip('Background color')
+ self.comicColorBG.setObjectName('comicColorBG')
+
+ self.comicSeparator1 = self.addSeparator()
+ self.addAction(self.zoomIn)
+ self.addAction(self.zoomOut)
+ self.addAction(self.fitWidth)
+ self.addAction(self.bestFit)
+ self.addAction(self.originalSize)
+ self.comicSeparator2 = self.addSeparator()
+ self.comicBGColorAction = self.addWidget(self.comicColorBG)
+
+ self.comicActions = [
+ self.comicBGColorAction,
+ self.zoomIn,
+ self.zoomOut,
+ self.fitWidth,
+ self.bestFit,
+ self.originalSize,
+ self.comicSeparator1,
+ self.comicSeparator2]
+
+ for i in self.comicActions:
+ i.setVisible(False)
+
+ # Other booktoolbar widgets
self.searchBar = FixedLineEdit(self)
self.searchBar.setPlaceholderText(
'Search...')
@@ -133,59 +190,51 @@ class BookToolBar(QtWidgets.QToolBar):
self.tocBoxAction = self.addWidget(self.tocBox)
self.searchBarAction = self.addWidget(self.searchBar)
+
+ self.bookActions = [
+ self.fullscreenButton,
+ self.settingsButton,
+ self.tocBoxAction,
+ self.searchBarAction]
+
+ for i in self.bookActions:
+ i.setVisible(True)
+
self.addAction(self.resetProfile)
- self.resetProfile.setVisible(False)
def toggle_font_settings(self):
if self.fontButton.isChecked():
- self.font_settings_on()
+ self.customize_view_on()
else:
- self.font_settings_off()
+ self.customize_view_off()
- def font_settings_on(self):
- self.fullscreenButton.setVisible(False)
- self.settingsButton.setVisible(False)
+ def customize_view_on(self):
+ if self.parent().tabWidget.widget(
+ self.parent().tabWidget.currentIndex()).metadata['images_only']:
+ for i in self.comicActions:
+ i.setVisible(True)
- self.fontBoxAction.setVisible(True)
- self.fontSizeBoxAction.setVisible(True)
- self.fgColorAction.setVisible(True)
- self.bgColorAction.setVisible(True)
- self.lineSpacingUp.setVisible(True)
- self.lineSpacingDown.setVisible(True)
- self.paddingUp.setVisible(True)
- self.paddingDown.setVisible(True)
- self.profileAction.setVisible(True)
- self.fontSeparator1.setVisible(True)
- self.fontSeparator2.setVisible(True)
- self.fontSeparator3.setVisible(True)
- self.fontSeparator3.setVisible(True)
- self.fontSeparator4.setVisible(False)
+ for i in self.fontActions:
+ i.setVisible(False)
+ else:
+ for i in self.fontActions:
+ i.setVisible(True)
- self.tocBoxAction.setVisible(False)
- self.searchBarAction.setVisible(False)
- self.resetProfile.setVisible(True)
+ for i in self.comicActions:
+ i.setVisible(False)
- def font_settings_off(self):
- self.fullscreenButton.setVisible(True)
- self.settingsButton.setVisible(True)
+ for i in self.bookActions:
+ i.setVisible(False)
- self.fontBoxAction.setVisible(False)
- self.fontSizeBoxAction.setVisible(False)
- self.fgColorAction.setVisible(False)
- self.bgColorAction.setVisible(False)
- self.lineSpacingUp.setVisible(False)
- self.lineSpacingDown.setVisible(False)
- self.paddingUp.setVisible(False)
- self.paddingDown.setVisible(False)
- self.profileAction.setVisible(False)
- self.fontSeparator1.setVisible(False)
- self.fontSeparator2.setVisible(False)
- self.fontSeparator3.setVisible(False)
- self.fontSeparator4.setVisible(False)
+ def customize_view_off(self):
+ for i in self.fontActions:
+ i.setVisible(False)
- self.tocBoxAction.setVisible(True)
- self.searchBarAction.setVisible(True)
- self.resetProfile.setVisible(False)
+ for i in self.comicActions:
+ i.setVisible(False)
+
+ for i in self.bookActions:
+ i.setVisible(True)
class LibraryToolBar(QtWidgets.QToolBar):
@@ -220,8 +269,8 @@ class LibraryToolBar(QtWidgets.QToolBar):
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
- # self.searchBar = QtWidgets.QLineEdit()
self.searchBar = FixedLineEdit(self)
+ self.searchBar.setClearButtonEnabled(True)
self.searchBar.setPlaceholderText(
'Search for Title, Author, Tags...')
self.searchBar.setSizePolicy(sizePolicy)