Comic view settings, Settings dialog layout changed

This commit is contained in:
BasioMeusPuga
2017-11-18 06:45:57 +05:30
parent 5b1b9c1c92
commit 058a7fd643
4 changed files with 274 additions and 181 deletions

View File

@@ -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()

View File

@@ -6,105 +6,128 @@
<rect>
<x>0</x>
<y>0</y>
<width>817</width>
<height>476</height>
<width>550</width>
<height>627</height>
</rect>
</property>
<property name="windowTitle">
<string>Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Library Directories:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Library</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Path</string>
</property>
</column>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>Auto Tag</string>
</property>
</column>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="addButton">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="removeButton">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="refreshButton">
<property name="text">
<string>Refresh</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="alternatingRowColors">
<bool>true</bool>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Startup</string>
</property>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>Path</string>
</property>
</column>
<column>
<property name="text">
<string>Auto Tag</string>
</property>
</column>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Auto add files</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="fileRemember">
<property name="text">
<string>Remember open files</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_2">
<property name="text">
<string>Show Library</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="aboutButton">
<property name="text">
<string>About</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="okButton">
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="addButton">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="removeButton">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="refreshButton">
<property name="text">
<string>Refresh</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QCheckBox" name="fileRemember">
<property name="text">
<string>Remember open files</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Auto add files on start</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="okButton">
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>

View File

@@ -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"))

View File

@@ -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)