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 ✓ Remember open tabs
Special Keyboard shortcuts and view modes for QGraphicsView Special Keyboard shortcuts and view modes for QGraphicsView
Selectable background color for QGraphicsView Selectable background color for QGraphicsView
View and hide toolbar actions in a list
Record progress Record progress
Pagination Pagination
Set context menu for definitions and the like Set context menu for definitions and the like
@@ -268,6 +269,9 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
current_metadata = self.tabWidget.widget( current_metadata = self.tabWidget.widget(
self.tabWidget.currentIndex()).metadata self.tabWidget.currentIndex()).metadata
if self.bookToolBar.fontButton.isChecked():
self.bookToolBar.customize_view_on()
current_title = current_metadata['title'] current_title = current_metadata['title']
current_author = current_metadata['author'] current_author = current_metadata['author']
current_position = current_metadata['position'] current_position = current_metadata['position']
@@ -277,7 +281,8 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.bookToolBar.tocBox.clear() self.bookToolBar.tocBox.clear()
self.bookToolBar.tocBox.addItems(current_toc) self.bookToolBar.tocBox.addItems(current_toc)
if current_position: 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.bookToolBar.tocBox.blockSignals(False)
self.format_contentView() self.format_contentView()

View File

@@ -6,105 +6,128 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>817</width> <width>550</width>
<height>476</height> <height>627</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Settings</string> <string>Settings</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0"> <item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
<item> <item>
<widget class="QLabel" name="label"> <widget class="QGroupBox" name="groupBox_2">
<property name="text"> <property name="title">
<string>Library Directories:</string> <string>Library</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property> </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> </widget>
</item> </item>
<item> <item>
<widget class="QTableWidget" name="tableWidget"> <widget class="QGroupBox" name="groupBox">
<property name="alternatingRowColors"> <property name="title">
<bool>true</bool> <string>Startup</string>
</property> </property>
<column> <layout class="QGridLayout" name="gridLayout">
<property name="text"> <item row="0" column="0">
<string>Name</string> <layout class="QHBoxLayout" name="horizontalLayout_3">
</property> <item>
</column> <widget class="QCheckBox" name="checkBox">
<column> <property name="text">
<property name="text"> <string>Auto add files</string>
<string>Path</string> </property>
</property> </widget>
</column> </item>
<column> <item>
<property name="text"> <widget class="QCheckBox" name="fileRemember">
<string>Auto Tag</string> <property name="text">
</property> <string>Remember open files</string>
</column> </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> </widget>
</item> </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> </layout>
</item> </item>
</layout> </layout>

View File

@@ -11,16 +11,18 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object): class Ui_Dialog(object):
def setupUi(self, Dialog): def setupUi(self, Dialog):
Dialog.setObjectName("Dialog") Dialog.setObjectName("Dialog")
Dialog.resize(817, 476) Dialog.resize(550, 627)
self.gridLayout = QtWidgets.QGridLayout(Dialog) self.gridLayout_3 = QtWidgets.QGridLayout(Dialog)
self.gridLayout.setObjectName("gridLayout") self.gridLayout_3.setObjectName("gridLayout_3")
self.verticalLayout_2 = QtWidgets.QVBoxLayout() self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2") self.verticalLayout_2.setObjectName("verticalLayout_2")
self.label = QtWidgets.QLabel(Dialog) self.groupBox_2 = QtWidgets.QGroupBox(Dialog)
self.label.setAlignment(QtCore.Qt.AlignCenter) self.groupBox_2.setObjectName("groupBox_2")
self.label.setObjectName("label") self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_2)
self.verticalLayout_2.addWidget(self.label) self.gridLayout_2.setObjectName("gridLayout_2")
self.tableWidget = QtWidgets.QTableWidget(Dialog) self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.tableWidget = QtWidgets.QTableWidget(self.groupBox_2)
self.tableWidget.setAlternatingRowColors(True) self.tableWidget.setAlternatingRowColors(True)
self.tableWidget.setObjectName("tableWidget") self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(3) self.tableWidget.setColumnCount(3)
@@ -31,37 +33,48 @@ class Ui_Dialog(object):
self.tableWidget.setHorizontalHeaderItem(1, item) self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem() item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item) self.tableWidget.setHorizontalHeaderItem(2, item)
self.verticalLayout_2.addWidget(self.tableWidget) self.verticalLayout.addWidget(self.tableWidget)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.horizontalLayout.setObjectName("horizontalLayout")
self.addButton = QtWidgets.QPushButton(Dialog) self.addButton = QtWidgets.QPushButton(self.groupBox_2)
self.addButton.setObjectName("addButton") self.addButton.setObjectName("addButton")
self.horizontalLayout_2.addWidget(self.addButton) self.horizontalLayout.addWidget(self.addButton)
self.removeButton = QtWidgets.QPushButton(Dialog) self.removeButton = QtWidgets.QPushButton(self.groupBox_2)
self.removeButton.setObjectName("removeButton") self.removeButton.setObjectName("removeButton")
self.horizontalLayout_2.addWidget(self.removeButton) self.horizontalLayout.addWidget(self.removeButton)
self.refreshButton = QtWidgets.QPushButton(Dialog) self.refreshButton = QtWidgets.QPushButton(self.groupBox_2)
self.refreshButton.setObjectName("refreshButton") self.refreshButton.setObjectName("refreshButton")
self.horizontalLayout_2.addWidget(self.refreshButton) self.horizontalLayout.addWidget(self.refreshButton)
self.verticalLayout_2.addLayout(self.horizontalLayout_2) self.verticalLayout.addLayout(self.horizontalLayout)
self.line = QtWidgets.QFrame(Dialog) self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1)
self.line.setFrameShape(QtWidgets.QFrame.HLine) self.verticalLayout_2.addWidget(self.groupBox_2)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken) self.groupBox = QtWidgets.QGroupBox(Dialog)
self.line.setObjectName("line") self.groupBox.setObjectName("groupBox")
self.verticalLayout_2.addWidget(self.line) self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout.setObjectName("gridLayout")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.fileRemember = QtWidgets.QCheckBox(Dialog) self.checkBox = QtWidgets.QCheckBox(self.groupBox)
self.fileRemember.setObjectName("fileRemember")
self.horizontalLayout_3.addWidget(self.fileRemember)
self.checkBox = QtWidgets.QCheckBox(Dialog)
self.checkBox.setObjectName("checkBox") self.checkBox.setObjectName("checkBox")
self.horizontalLayout_3.addWidget(self.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.okButton.setObjectName("okButton")
self.horizontalLayout_3.addWidget(self.okButton) self.horizontalLayout_2.addWidget(self.okButton)
self.verticalLayout_2.addLayout(self.horizontalLayout_3) self.gridLayout.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
self.gridLayout.addLayout(self.verticalLayout_2, 0, 0, 1, 1) self.verticalLayout_2.addWidget(self.groupBox)
self.gridLayout_3.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
self.retranslateUi(Dialog) self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog)
@@ -69,17 +82,20 @@ class Ui_Dialog(object):
def retranslateUi(self, Dialog): def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Settings")) 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 = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Dialog", "Name"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("Dialog", "Path")) item.setText(_translate("Dialog", "Path"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("Dialog", "Name"))
item = self.tableWidget.horizontalHeaderItem(2) item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("Dialog", "Auto Tag")) item.setText(_translate("Dialog", "Auto Tag"))
self.addButton.setText(_translate("Dialog", "Add")) self.addButton.setText(_translate("Dialog", "Add"))
self.removeButton.setText(_translate("Dialog", "Remove")) self.removeButton.setText(_translate("Dialog", "Remove"))
self.refreshButton.setText(_translate("Dialog", "Refresh")) 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.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")) self.okButton.setText(_translate("Dialog", "OK"))

View File

@@ -26,14 +26,18 @@ class BookToolBar(QtWidgets.QToolBar):
self.setObjectName("LibraryToolBar") self.setObjectName("LibraryToolBar")
# Buttons # Buttons
self.fullscreenButton = QtWidgets.QAction(
QtGui.QIcon.fromTheme('view-fullscreen'), 'Fullscreen', self)
self.fontButton = QtWidgets.QAction( 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( self.settingsButton = QtWidgets.QAction(
QtGui.QIcon.fromTheme('settings'), 'Settings', self) QtGui.QIcon.fromTheme('settings'),
'Settings', self)
self.resetProfile = QtWidgets.QAction( self.resetProfile = QtWidgets.QAction(
QtGui.QIcon.fromTheme('view-refresh'), 'Reset profile', self) QtGui.QIcon.fromTheme('view-refresh'),
'Reset profile', self)
# Add buttons # Add buttons
self.addAction(self.fontButton) self.addAction(self.fontButton)
@@ -100,20 +104,73 @@ class BookToolBar(QtWidgets.QToolBar):
self.addAction(self.paddingUp) self.addAction(self.paddingUp)
self.addAction(self.paddingDown) self.addAction(self.paddingDown)
self.fontBoxAction.setVisible(False) self.fontActions = [
self.fontSizeBoxAction.setVisible(False) self.fontBoxAction,
self.fgColorAction.setVisible(False) self.fontSizeBoxAction,
self.bgColorAction.setVisible(False) self.fgColorAction,
self.lineSpacingUp.setVisible(False) self.bgColorAction,
self.lineSpacingDown.setVisible(False) self.lineSpacingUp,
self.paddingUp.setVisible(False) self.lineSpacingDown,
self.paddingDown.setVisible(False) self.paddingUp,
self.profileAction.setVisible(False) self.paddingDown,
self.fontSeparator1.setVisible(False) self.profileAction,
self.fontSeparator2.setVisible(False) self.fontSeparator1,
self.fontSeparator3.setVisible(False) self.fontSeparator2,
self.fontSeparator4.setVisible(False) 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 = FixedLineEdit(self)
self.searchBar.setPlaceholderText( self.searchBar.setPlaceholderText(
'Search...') 'Search...')
@@ -133,59 +190,51 @@ class BookToolBar(QtWidgets.QToolBar):
self.tocBoxAction = self.addWidget(self.tocBox) self.tocBoxAction = self.addWidget(self.tocBox)
self.searchBarAction = self.addWidget(self.searchBar) 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.addAction(self.resetProfile)
self.resetProfile.setVisible(False)
def toggle_font_settings(self): def toggle_font_settings(self):
if self.fontButton.isChecked(): if self.fontButton.isChecked():
self.font_settings_on() self.customize_view_on()
else: else:
self.font_settings_off() self.customize_view_off()
def font_settings_on(self): def customize_view_on(self):
self.fullscreenButton.setVisible(False) if self.parent().tabWidget.widget(
self.settingsButton.setVisible(False) self.parent().tabWidget.currentIndex()).metadata['images_only']:
for i in self.comicActions:
i.setVisible(True)
self.fontBoxAction.setVisible(True) for i in self.fontActions:
self.fontSizeBoxAction.setVisible(True) i.setVisible(False)
self.fgColorAction.setVisible(True) else:
self.bgColorAction.setVisible(True) for i in self.fontActions:
self.lineSpacingUp.setVisible(True) i.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)
self.tocBoxAction.setVisible(False) for i in self.comicActions:
self.searchBarAction.setVisible(False) i.setVisible(False)
self.resetProfile.setVisible(True)
def font_settings_off(self): for i in self.bookActions:
self.fullscreenButton.setVisible(True) i.setVisible(False)
self.settingsButton.setVisible(True)
self.fontBoxAction.setVisible(False) def customize_view_off(self):
self.fontSizeBoxAction.setVisible(False) for i in self.fontActions:
self.fgColorAction.setVisible(False) i.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.tocBoxAction.setVisible(True) for i in self.comicActions:
self.searchBarAction.setVisible(True) i.setVisible(False)
self.resetProfile.setVisible(False)
for i in self.bookActions:
i.setVisible(True)
class LibraryToolBar(QtWidgets.QToolBar): class LibraryToolBar(QtWidgets.QToolBar):
@@ -220,8 +269,8 @@ class LibraryToolBar(QtWidgets.QToolBar):
sizePolicy = QtWidgets.QSizePolicy( sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
# self.searchBar = QtWidgets.QLineEdit()
self.searchBar = FixedLineEdit(self) self.searchBar = FixedLineEdit(self)
self.searchBar.setClearButtonEnabled(True)
self.searchBar.setPlaceholderText( self.searchBar.setPlaceholderText(
'Search for Title, Author, Tags...') 'Search for Title, Author, Tags...')
self.searchBar.setSizePolicy(sizePolicy) self.searchBar.setSizePolicy(sizePolicy)