maintenance: use modules properly
0
resources/__init__.py
Normal file
14
resources/about.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta content="HTML is not a programming language">
|
||||
<style></style>
|
||||
</head>
|
||||
<body><h1 style="text-align: center;">Lector</h1>
|
||||
<h2 style="text-align: center;">A Qt Based ebook reader</h2>
|
||||
<p> </p>
|
||||
<p>Author: BasioMeusPuga <a href="mailto:disgruntled.mob@gmail.com">disgruntled.mob@gmail.com</a></p>
|
||||
<p>Page: <a href="https://github.com/BasioMeusPuga/Lector">https://github.com/BasioMeusPuga/Lector</a></p>
|
||||
<p>License: GPLv3 <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">https://www.gnu.org/licenses/gpl-3.0.en.html</a></p>
|
||||
<p> </p></body>
|
||||
</html>
|
67
resources/definitions.py
Normal file
@@ -0,0 +1,67 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'raw/definition.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.10.1
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
class Ui_Dialog(object):
|
||||
def setupUi(self, Dialog):
|
||||
Dialog.setObjectName("Dialog")
|
||||
Dialog.resize(729, 318)
|
||||
self.gridLayout = QtWidgets.QGridLayout(Dialog)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.definitionView = QtWidgets.QTextBrowser(Dialog)
|
||||
self.definitionView.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||
self.definitionView.setFrameShadow(QtWidgets.QFrame.Plain)
|
||||
self.definitionView.setObjectName("definitionView")
|
||||
self.verticalLayout.addWidget(self.definitionView)
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem)
|
||||
self.okButton = QtWidgets.QPushButton(Dialog)
|
||||
self.okButton.setText("")
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/images/checkmark.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.okButton.setIcon(icon)
|
||||
self.okButton.setIconSize(QtCore.QSize(24, 24))
|
||||
self.okButton.setFlat(True)
|
||||
self.okButton.setObjectName("okButton")
|
||||
self.horizontalLayout.addWidget(self.okButton)
|
||||
self.pronounceButton = QtWidgets.QPushButton(Dialog)
|
||||
self.pronounceButton.setText("")
|
||||
icon1 = QtGui.QIcon()
|
||||
icon1.addPixmap(QtGui.QPixmap(":/images/QMPlay2.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.pronounceButton.setIcon(icon1)
|
||||
self.pronounceButton.setIconSize(QtCore.QSize(24, 24))
|
||||
self.pronounceButton.setFlat(True)
|
||||
self.pronounceButton.setObjectName("pronounceButton")
|
||||
self.horizontalLayout.addWidget(self.pronounceButton)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem1)
|
||||
self.dialogBackground = QtWidgets.QPushButton(Dialog)
|
||||
self.dialogBackground.setText("")
|
||||
icon2 = QtGui.QIcon()
|
||||
icon2.addPixmap(QtGui.QPixmap(":/images/color.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.dialogBackground.setIcon(icon2)
|
||||
self.dialogBackground.setIconSize(QtCore.QSize(27, 27))
|
||||
self.dialogBackground.setFlat(True)
|
||||
self.dialogBackground.setObjectName("dialogBackground")
|
||||
self.horizontalLayout.addWidget(self.dialogBackground)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout)
|
||||
self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Dialog)
|
||||
QtCore.QMetaObject.connectSlotsByName(Dialog)
|
||||
|
||||
def retranslateUi(self, Dialog):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
|
||||
self.okButton.setToolTip(_translate("Dialog", "WERDS"))
|
||||
self.pronounceButton.setToolTip(_translate("Dialog", "Play pronunciation of root word"))
|
96
resources/mainwindow.py
Normal file
@@ -0,0 +1,96 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'raw/main.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.9.2
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(1049, 720)
|
||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
|
||||
self.tabWidget.setTabsClosable(True)
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.gridLayout_2 = QtWidgets.QGridLayout(self.tab)
|
||||
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||
self.stackedWidget = QtWidgets.QStackedWidget(self.tab)
|
||||
self.stackedWidget.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||
self.stackedWidget.setLineWidth(0)
|
||||
self.stackedWidget.setObjectName("stackedWidget")
|
||||
self.listPage = QtWidgets.QWidget()
|
||||
self.listPage.setObjectName("listPage")
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.listPage)
|
||||
self.gridLayout_4.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_4.setSpacing(0)
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.listView = QtWidgets.QListView(self.listPage)
|
||||
self.listView.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||
self.listView.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
self.listView.setProperty("showDropIndicator", False)
|
||||
self.listView.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||
self.listView.setMovement(QtWidgets.QListView.Static)
|
||||
self.listView.setProperty("isWrapping", True)
|
||||
self.listView.setResizeMode(QtWidgets.QListView.Fixed)
|
||||
self.listView.setLayoutMode(QtWidgets.QListView.SinglePass)
|
||||
self.listView.setViewMode(QtWidgets.QListView.IconMode)
|
||||
self.listView.setUniformItemSizes(True)
|
||||
self.listView.setWordWrap(True)
|
||||
self.listView.setObjectName("listView")
|
||||
self.gridLayout_4.addWidget(self.listView, 0, 0, 1, 1)
|
||||
self.stackedWidget.addWidget(self.listPage)
|
||||
self.tablePage = QtWidgets.QWidget()
|
||||
self.tablePage.setObjectName("tablePage")
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(self.tablePage)
|
||||
self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
|
||||
self.gridLayout_3.setSpacing(0)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.tableView = QtWidgets.QTableView(self.tablePage)
|
||||
self.tableView.setFrameShape(QtWidgets.QFrame.Box)
|
||||
self.tableView.setFrameShadow(QtWidgets.QFrame.Plain)
|
||||
self.tableView.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContentsOnFirstShow)
|
||||
self.tableView.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed|QtWidgets.QAbstractItemView.SelectedClicked)
|
||||
self.tableView.setAlternatingRowColors(True)
|
||||
self.tableView.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
|
||||
self.tableView.setGridStyle(QtCore.Qt.NoPen)
|
||||
self.tableView.setSortingEnabled(True)
|
||||
self.tableView.setWordWrap(False)
|
||||
self.tableView.setObjectName("tableView")
|
||||
self.tableView.horizontalHeader().setVisible(True)
|
||||
self.tableView.verticalHeader().setVisible(False)
|
||||
self.gridLayout_3.addWidget(self.tableView, 0, 0, 1, 1)
|
||||
self.stackedWidget.addWidget(self.tablePage)
|
||||
self.gridLayout_2.addWidget(self.stackedWidget, 0, 0, 1, 1)
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.horizontalLayout.addWidget(self.tabWidget)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.statusBar = QtWidgets.QStatusBar(MainWindow)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.statusBar.sizePolicy().hasHeightForWidth())
|
||||
self.statusBar.setSizePolicy(sizePolicy)
|
||||
self.statusBar.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.statusBar.setObjectName("statusBar")
|
||||
MainWindow.setStatusBar(self.statusBar)
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "Lector"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Library"))
|
99
resources/metadata.py
Normal file
@@ -0,0 +1,99 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'raw/metadata.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.10.1
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
class Ui_Dialog(object):
|
||||
def setupUi(self, Dialog):
|
||||
Dialog.setObjectName("Dialog")
|
||||
Dialog.resize(728, 234)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())
|
||||
Dialog.setSizePolicy(sizePolicy)
|
||||
Dialog.setMaximumSize(QtCore.QSize(16777215, 16777215))
|
||||
Dialog.setModal(True)
|
||||
self.gridLayout = QtWidgets.QGridLayout(Dialog)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.coverView = QtWidgets.QGraphicsView(Dialog)
|
||||
self.coverView.setMaximumSize(QtCore.QSize(165, 16777215))
|
||||
self.coverView.setFrameShadow(QtWidgets.QFrame.Plain)
|
||||
self.coverView.setObjectName("coverView")
|
||||
self.horizontalLayout.addWidget(self.coverView)
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.titleLine = QtWidgets.QLineEdit(Dialog)
|
||||
self.titleLine.setObjectName("titleLine")
|
||||
self.verticalLayout.addWidget(self.titleLine)
|
||||
self.authorLine = QtWidgets.QLineEdit(Dialog)
|
||||
self.authorLine.setObjectName("authorLine")
|
||||
self.verticalLayout.addWidget(self.authorLine)
|
||||
self.yearLine = QtWidgets.QLineEdit(Dialog)
|
||||
self.yearLine.setObjectName("yearLine")
|
||||
self.verticalLayout.addWidget(self.yearLine)
|
||||
self.tagsLine = QtWidgets.QLineEdit(Dialog)
|
||||
self.tagsLine.setMinimumSize(QtCore.QSize(0, 0))
|
||||
self.tagsLine.setObjectName("tagsLine")
|
||||
self.verticalLayout.addWidget(self.tagsLine)
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem)
|
||||
self.okButton = QtWidgets.QPushButton(Dialog)
|
||||
self.okButton.setText("")
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/images/checkmark.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.okButton.setIcon(icon)
|
||||
self.okButton.setIconSize(QtCore.QSize(24, 24))
|
||||
self.okButton.setFlat(True)
|
||||
self.okButton.setObjectName("okButton")
|
||||
self.horizontalLayout_2.addWidget(self.okButton)
|
||||
self.cancelButton = QtWidgets.QPushButton(Dialog)
|
||||
self.cancelButton.setText("")
|
||||
icon1 = QtGui.QIcon()
|
||||
icon1.addPixmap(QtGui.QPixmap(":/images/error.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.cancelButton.setIcon(icon1)
|
||||
self.cancelButton.setIconSize(QtCore.QSize(24, 24))
|
||||
self.cancelButton.setFlat(True)
|
||||
self.cancelButton.setObjectName("cancelButton")
|
||||
self.horizontalLayout_2.addWidget(self.cancelButton)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_2.addItem(spacerItem1)
|
||||
self.dialogBackground = QtWidgets.QPushButton(Dialog)
|
||||
self.dialogBackground.setText("")
|
||||
icon2 = QtGui.QIcon()
|
||||
icon2.addPixmap(QtGui.QPixmap(":/images/color.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.dialogBackground.setIcon(icon2)
|
||||
self.dialogBackground.setIconSize(QtCore.QSize(27, 27))
|
||||
self.dialogBackground.setFlat(True)
|
||||
self.dialogBackground.setObjectName("dialogBackground")
|
||||
self.horizontalLayout_2.addWidget(self.dialogBackground)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_2)
|
||||
self.horizontalLayout.addLayout(self.verticalLayout)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Dialog)
|
||||
QtCore.QMetaObject.connectSlotsByName(Dialog)
|
||||
|
||||
def retranslateUi(self, Dialog):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
Dialog.setWindowTitle(_translate("Dialog", "Edit metadata"))
|
||||
self.coverView.setToolTip(_translate("Dialog", "Cover (click to change)"))
|
||||
self.titleLine.setToolTip(_translate("Dialog", "Title"))
|
||||
self.titleLine.setPlaceholderText(_translate("Dialog", "Title"))
|
||||
self.authorLine.setToolTip(_translate("Dialog", "Author"))
|
||||
self.authorLine.setPlaceholderText(_translate("Dialog", "Author"))
|
||||
self.yearLine.setToolTip(_translate("Dialog", "Year"))
|
||||
self.yearLine.setPlaceholderText(_translate("Dialog", "Year"))
|
||||
self.tagsLine.setToolTip(_translate("Dialog", "Tags (comma separated)"))
|
||||
self.tagsLine.setPlaceholderText(_translate("Dialog", "Tags"))
|
||||
self.okButton.setToolTip(_translate("Dialog", "OK"))
|
||||
self.cancelButton.setToolTip(_translate("Dialog", "Cancel"))
|
120
resources/pie_chart.py
Normal file
@@ -0,0 +1,120 @@
|
||||
# Modified from: http://drumcoder.co.uk/blog/2010/nov/16/python-code-generate-svg-pie-chart/
|
||||
|
||||
import os
|
||||
import math
|
||||
|
||||
from PyQt5 import QtGui
|
||||
|
||||
|
||||
def generate_pie(progress_percent, temp_dir=None):
|
||||
progress_percent = int(progress_percent)
|
||||
|
||||
lSlices = (progress_percent, 100 - progress_percent) # percentages to show in pie
|
||||
|
||||
lOffsetX = 150
|
||||
lOffsetY = 150
|
||||
|
||||
lRadius = 100
|
||||
|
||||
def endpoint(pAngleInRadians, pRadius, pCentreOffsetX, pCentreOffsetY):
|
||||
"""
|
||||
Calculate position of point on circle given an angle, a radius,
|
||||
and the location of the center of the circle
|
||||
Zero line points west.
|
||||
"""
|
||||
lCosAngle = math.cos(pAngleInRadians)
|
||||
lSinAngle = math.sin(pAngleInRadians)
|
||||
lStartLineDestinationX = pCentreOffsetX - (lRadius * lCosAngle)
|
||||
lStartLineDestinationY = pCentreOffsetY - (lRadius * lSinAngle)
|
||||
|
||||
return (lStartLineDestinationX, lStartLineDestinationY)
|
||||
|
||||
|
||||
GRADIENTS = ('myRadialGradientGreen', 'myRadialGradientOrange',
|
||||
'myRadialGradientGreen', 'myRadialGradientOrange')
|
||||
DEGREES_IN_CIRCLE = 360.0
|
||||
lSvgPath = ""
|
||||
lCurrentAngle = 0
|
||||
lTotalSlices = 0
|
||||
lIndex = 0
|
||||
lSvgPath = ""
|
||||
for x in lSlices:
|
||||
lTotalSlices += x
|
||||
|
||||
for lSlice in lSlices:
|
||||
lLineOneX, lLineOneY = endpoint(lCurrentAngle, lRadius, lOffsetX, lOffsetY)
|
||||
lLineOne = "M%d,%d L%d,%d" % (lOffsetX, lOffsetY, lLineOneX, lLineOneY)
|
||||
|
||||
lDegrees = (DEGREES_IN_CIRCLE / lTotalSlices) * lSlice
|
||||
lRadians = math.radians(lDegrees)
|
||||
lCurrentAngle += lRadians
|
||||
lLineTwoX, lLineTwoY = endpoint(lCurrentAngle, lRadius, lOffsetX, lOffsetY)
|
||||
|
||||
lRoute = 0
|
||||
if lDegrees > 180:
|
||||
lRoute = 1
|
||||
lArc = "A%d,%d 0 %d,1 %d %d" % (
|
||||
lRadius, lRadius, lRoute, lLineTwoX, lLineTwoY)
|
||||
lLineTwo = "L%d,%d" % (lOffsetX, lOffsetY)
|
||||
|
||||
lPath = "%s %s %s" % (lLineOne, lArc, lLineTwo)
|
||||
lGradient = GRADIENTS[lIndex]
|
||||
lSvgPath += "<path d='%s' style='stroke:#097b8c; fill:url(#%s);'/>" % (
|
||||
lPath, lGradient)
|
||||
lIndex += 1
|
||||
|
||||
lSvg = """
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<radialGradient id="myRadialGradientGreen" r="65%%" cx="0" cy="0" spreadMethod="pad">
|
||||
<stop offset="0%%" stop-color="#11e0ff" stop-opacity="1"/>
|
||||
<stop offset="100%%" stop-color="#11e0ff" stop-opacity="1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<defs>
|
||||
<radialGradient id="myRadialGradientOrange" r="65%%" cx="0" cy="0" spreadMethod="pad">
|
||||
<stop offset="0%%" stop-color="#097b8c" stop-opacity="1"/>
|
||||
<stop offset="100%%" stop-color="#097b8c" stop-opacity="1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
|
||||
%s
|
||||
<!-- <circle cx="%d" cy="%d" r="100" style="stroke:#097b8c; fill:none;"/> -->
|
||||
</svg>
|
||||
""" % (lSvgPath, lOffsetX, lOffsetY)
|
||||
|
||||
|
||||
if temp_dir:
|
||||
svg_path = os.path.join(temp_dir, 'lector_progress.svg')
|
||||
lFile = open(svg_path, 'w')
|
||||
lFile.write(lSvg)
|
||||
lFile.close()
|
||||
else:
|
||||
return lSvg
|
||||
|
||||
|
||||
def pixmapper(current_chapter, total_chapters, temp_dir, size):
|
||||
# A current_chapter of -1 implies the files does not exist
|
||||
# A chapter number == Total chapters implies the file is unread
|
||||
return_pixmap = None
|
||||
|
||||
if current_chapter == -1:
|
||||
return_pixmap = QtGui.QIcon(':/images/error.svg').pixmap(size)
|
||||
return return_pixmap
|
||||
|
||||
if current_chapter == total_chapters:
|
||||
return_pixmap = QtGui.QIcon(':/images/checkmark.svg').pixmap(size)
|
||||
else:
|
||||
|
||||
# TODO
|
||||
# See if saving the svg to disk can be avoided
|
||||
# Shift to lines to track progress
|
||||
# Maybe make the alignment a little more uniform across emblems
|
||||
|
||||
progress_percent = int(current_chapter * 100 / total_chapters)
|
||||
generate_pie(progress_percent, temp_dir)
|
||||
svg_path = os.path.join(temp_dir, 'lector_progress.svg')
|
||||
return_pixmap = QtGui.QIcon(svg_path).pixmap(size - 4) ## The -4 looks more proportional
|
||||
|
||||
return return_pixmap
|
BIN
resources/raw/NotFound.png
Normal file
After Width: | Height: | Size: 17 KiB |
7
resources/raw/QMPlay2.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" version="1">
|
||||
<path fill="#4f4f4f" d="m3.8102 2.0006a1.7691 1.5694 0 0 0 -1.8102 1.5688v16.863a1.7691 1.5694 0 0 0 2.6536 1.358l8.2314-4.215 8.231-4.215a1.7691 1.5694 0 0 0 0 -2.7182l-8.231-4.2161-8.2314-4.2156a1.7691 1.5694 0 0 0 -0.8434 -0.2097z"/>
|
||||
<path opacity=".2" d="m5 5.5v14l6.832-3.679 6.168-3.321-6.168-3.3213-6.832-3.6787z"/>
|
||||
<path fill="#00e382" d="m5 5v14l6.832-3.679 6.168-3.321-6.168-3.3213-6.832-3.6787z"/>
|
||||
<path fill="#fff" opacity=".1" d="m3.8105 2.0002a1.7691 1.5694 0 0 0 -1.8105 1.5693v0.5a1.7691 1.5694 0 0 1 1.8105 -1.5693 1.7691 1.5694 0 0 1 0.8428 0.2099l8.2314 4.2158 8.2305 4.2158a1.7691 1.5694 0 0 1 0.86133 1.1074 1.7691 1.5694 0 0 0 -0.86133 -1.6074l-8.23-4.2161-8.2317-4.2158a1.7691 1.5694 0 0 0 -0.8428 -0.2099z"/>
|
||||
<path opacity=".2" d="m21.977 12.249a1.7691 1.5694 0 0 1 -0.86133 1.1104l-8.2305 4.2158-8.2314 4.2148a1.7691 1.5694 0 0 1 -2.654 -1.358v0.5a1.7691 1.5694 0 0 0 2.6533 1.3584l8.2314-4.2148 8.2305-4.2158a1.7691 1.5694 0 0 0 0.86133 -1.6104z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
BIN
resources/raw/blank.png
Normal file
After Width: | Height: | Size: 663 B |
6
resources/raw/checkmark.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" version="1.1" viewBox="0 0 16 16">
|
||||
<g transform="translate(0 -1036.4)">
|
||||
<circle fill="#4caf50" cx="8" cy="1044.4" r="7"/>
|
||||
<path fill="#fff" d="m11.535 1040.8-4.2422 4.2422-2.8281-2.8281-1.4141 1.4141 2.8281 2.8281 1.4141 1.4141 5.6563-5.6563-1.4141-1.4141z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 341 B |
426
resources/raw/color.svg
Normal file
@@ -0,0 +1,426 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="22"
|
||||
height="22"
|
||||
version="1.1"
|
||||
viewBox="0 0 22 22"
|
||||
id="svg90"
|
||||
sodipodi:docname="color-management.svg"
|
||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06">
|
||||
<metadata
|
||||
id="metadata94">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1225"
|
||||
inkscape:window-height="767"
|
||||
id="namedview92"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.727273"
|
||||
inkscape:cx="0.27966102"
|
||||
inkscape:cy="11"
|
||||
inkscape:window-x="578"
|
||||
inkscape:window-y="148"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg90" />
|
||||
<defs
|
||||
id="defs46">
|
||||
<linearGradient
|
||||
id="linearGradient4202"
|
||||
x1="1"
|
||||
x2="8"
|
||||
y1="8"
|
||||
y2="1"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#e81877"
|
||||
id="stop2" />
|
||||
<stop
|
||||
offset=".313"
|
||||
stop-color="#dd1d8c"
|
||||
id="stop4" />
|
||||
<stop
|
||||
offset=".563"
|
||||
stop-color="#6d57b1"
|
||||
id="stop6" />
|
||||
<stop
|
||||
offset=".75"
|
||||
stop-color="#2a78c1"
|
||||
id="stop8" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#018dcb"
|
||||
id="stop10" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4204"
|
||||
x1="1"
|
||||
x2="8"
|
||||
y1="8"
|
||||
y2="15"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#e51561"
|
||||
id="stop13" />
|
||||
<stop
|
||||
offset=".313"
|
||||
stop-color="#e4156c"
|
||||
id="stop15" />
|
||||
<stop
|
||||
offset=".563"
|
||||
stop-color="#e71e2c"
|
||||
id="stop17" />
|
||||
<stop
|
||||
offset=".75"
|
||||
stop-color="#e8301e"
|
||||
id="stop19" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#e6320e"
|
||||
id="stop21" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4206"
|
||||
x1="15"
|
||||
x2="8"
|
||||
y1="8"
|
||||
y2="1"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#bec900"
|
||||
id="stop24" />
|
||||
<stop
|
||||
offset=".313"
|
||||
stop-color="#9ec80a"
|
||||
id="stop26" />
|
||||
<stop
|
||||
offset=".563"
|
||||
stop-color="#71b93d"
|
||||
id="stop28" />
|
||||
<stop
|
||||
offset=".75"
|
||||
stop-color="#35a48f"
|
||||
id="stop30" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#018fca"
|
||||
id="stop32" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4208"
|
||||
x1="15"
|
||||
x2="8"
|
||||
y1="8"
|
||||
y2="15"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
offset="0"
|
||||
stop-color="#c1cc00"
|
||||
id="stop35" />
|
||||
<stop
|
||||
offset=".313"
|
||||
stop-color="#dfcd00"
|
||||
id="stop37" />
|
||||
<stop
|
||||
offset=".563"
|
||||
stop-color="#f0cc00"
|
||||
id="stop39" />
|
||||
<stop
|
||||
offset=".75"
|
||||
stop-color="#fd8c08"
|
||||
id="stop41" />
|
||||
<stop
|
||||
offset="1"
|
||||
stop-color="#f25c13"
|
||||
id="stop43" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4206"
|
||||
id="linearGradient4590"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4202"
|
||||
id="linearGradient4592"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4208"
|
||||
id="linearGradient4594"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4204"
|
||||
id="linearGradient4596"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4206"
|
||||
id="linearGradient4598"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4202"
|
||||
id="linearGradient4600"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4208"
|
||||
id="linearGradient4602"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4204"
|
||||
id="linearGradient4604"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4206"
|
||||
id="linearGradient4606"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4202"
|
||||
id="linearGradient4608"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4208"
|
||||
id="linearGradient4610"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4204"
|
||||
id="linearGradient4612"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4206"
|
||||
id="linearGradient4614"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4202"
|
||||
id="linearGradient4616"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="1"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4208"
|
||||
id="linearGradient4618"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4204"
|
||||
id="linearGradient4620"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1"
|
||||
y1="8"
|
||||
x2="8"
|
||||
y2="15"
|
||||
gradientTransform="matrix(0.80906149,0,0,0.80906149,1.5275081,1.5275081)" />
|
||||
</defs>
|
||||
<g
|
||||
transform="matrix(1.236,0,0,1.236,1.112,1.112)"
|
||||
id="g88">
|
||||
<g
|
||||
transform="rotate(15,8,8)"
|
||||
id="g56">
|
||||
<path
|
||||
style="fill:url(#linearGradient4590)"
|
||||
d="m 8,1 v 7 h 7 A 7,7 0 0 0 8,1 Z"
|
||||
id="path48"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4592)"
|
||||
d="M 8,1 A 7,7 0 0 0 1,8 h 7 z"
|
||||
id="path50"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4594)"
|
||||
d="m 8,8 v 7 a 7,7 0 0 0 7,-7 z"
|
||||
id="path52"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4596)"
|
||||
d="m 1,8 a 7,7 0 0 0 7,7 V 8 Z"
|
||||
id="path54"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.7"
|
||||
id="g66">
|
||||
<path
|
||||
style="fill:url(#linearGradient4598)"
|
||||
d="m 8,1 v 7 h 7 A 7,7 0 0 0 8,1 Z"
|
||||
id="path58"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4600)"
|
||||
d="M 8,1 A 7,7 0 0 0 1,8 h 7 z"
|
||||
id="path60"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4602)"
|
||||
d="m 8,8 v 7 a 7,7 0 0 0 7,-7 z"
|
||||
id="path62"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4604)"
|
||||
d="m 1,8 a 7,7 0 0 0 7,7 V 8 Z"
|
||||
id="path64"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.35"
|
||||
transform="rotate(45,8,8)"
|
||||
id="g76">
|
||||
<path
|
||||
style="fill:url(#linearGradient4606)"
|
||||
d="m 8,1 v 7 h 7 A 7,7 0 0 0 8,1 Z"
|
||||
id="path68"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4608)"
|
||||
d="M 8,1 A 7,7 0 0 0 1,8 h 7 z"
|
||||
id="path70"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4610)"
|
||||
d="m 8,8 v 7 a 7,7 0 0 0 7,-7 z"
|
||||
id="path72"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4612)"
|
||||
d="m 1,8 a 7,7 0 0 0 7,7 V 8 Z"
|
||||
id="path74"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.3"
|
||||
transform="rotate(60,8,8)"
|
||||
id="g86">
|
||||
<path
|
||||
style="fill:url(#linearGradient4614)"
|
||||
d="m 8,1 v 7 h 7 A 7,7 0 0 0 8,1 Z"
|
||||
id="path78"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4616)"
|
||||
d="M 8,1 A 7,7 0 0 0 1,8 h 7 z"
|
||||
id="path80"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4618)"
|
||||
d="m 8,8 v 7 a 7,7 0 0 0 7,-7 z"
|
||||
id="path82"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4620)"
|
||||
d="m 1,8 a 7,7 0 0 0 7,7 V 8 Z"
|
||||
id="path84"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 12 KiB |
133
resources/raw/definition.ui
Normal file
@@ -0,0 +1,133 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog</class>
|
||||
<widget class="QDialog" name="Dialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>729</width>
|
||||
<height>318</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="definitionView">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="okButton">
|
||||
<property name="toolTip">
|
||||
<string>WERDS</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources.qrc">
|
||||
<normaloff>:/images/checkmark.svg</normaloff>:/images/checkmark.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pronounceButton">
|
||||
<property name="toolTip">
|
||||
<string>Play pronunciation of root word</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources.qrc">
|
||||
<normaloff>:/images/QMPlay2.svg</normaloff>:/images/QMPlay2.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="dialogBackground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources.qrc">
|
||||
<normaloff>:/images/color.svg</normaloff>:/images/color.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>27</width>
|
||||
<height>27</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
9
resources/raw/error.svg
Normal file
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" version="1.1" viewBox="0 0 16 16">
|
||||
<g transform="translate(0 -1036.4)">
|
||||
<circle fill="#f44336" cx="8" cy="1044.4" r="7"/>
|
||||
<g fill="#fff" transform="matrix(.70711 .70711 -.70711 .70711 740.82 300.23)">
|
||||
<rect width="2" height="10" x="1043.4" y="-13" transform="rotate(90)"/>
|
||||
<rect width="2" height="10" x="-9" y="-1049.4" transform="scale(-1)"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 438 B |
BIN
resources/raw/gray-shadow.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
185
resources/raw/main.ui
Normal file
@@ -0,0 +1,185 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1049</width>
|
||||
<height>720</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Lector</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="tabsClosable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>Library</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QStackedWidget" name="stackedWidget">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="listPage">
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QListView" name="listView">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="showDropIndicator" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="movement">
|
||||
<enum>QListView::Static</enum>
|
||||
</property>
|
||||
<property name="isWrapping" stdset="0">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="resizeMode">
|
||||
<enum>QListView::Fixed</enum>
|
||||
</property>
|
||||
<property name="layoutMode">
|
||||
<enum>QListView::SinglePass</enum>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="viewMode">
|
||||
<enum>QListView::IconMode</enum>
|
||||
</property>
|
||||
<property name="uniformItemSizes">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tablePage">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QTableView" name="tableView">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustToContentsOnFirstShow</enum>
|
||||
</property>
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="gridStyle">
|
||||
<enum>Qt::NoPen</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusBar">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
204
resources/raw/metadata.ui
Normal file
@@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog</class>
|
||||
<widget class="QDialog" name="Dialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>728</width>
|
||||
<height>234</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Edit metadata</string>
|
||||
</property>
|
||||
<property name="modal">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QGraphicsView" name="coverView">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>165</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Cover (click to change)</string>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="titleLine">
|
||||
<property name="toolTip">
|
||||
<string>Title</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Title</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="authorLine">
|
||||
<property name="toolTip">
|
||||
<string>Author</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Author</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="yearLine">
|
||||
<property name="toolTip">
|
||||
<string>Year</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Year</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="tagsLine">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Tags (comma separated)</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Tags</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="okButton">
|
||||
<property name="toolTip">
|
||||
<string>OK</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources.qrc">
|
||||
<normaloff>:/images/checkmark.svg</normaloff>:/images/checkmark.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="toolTip">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources.qrc">
|
||||
<normaloff>:/images/error.svg</normaloff>:/images/error.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="dialogBackground">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources.qrc">
|
||||
<normaloff>:/images/color.svg</normaloff>:/images/color.svg</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>27</width>
|
||||
<height>27</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
11
resources/raw/resources.qrc
Normal file
@@ -0,0 +1,11 @@
|
||||
<RCC>
|
||||
<qresource prefix="images">
|
||||
<file>QMPlay2.svg</file>
|
||||
<file>color.svg</file>
|
||||
<file>blank.png</file>
|
||||
<file>gray-shadow.png</file>
|
||||
<file>NotFound.png</file>
|
||||
<file>checkmark.svg</file>
|
||||
<file>error.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
157
resources/raw/settings.ui
Normal file
@@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog</class>
|
||||
<widget class="QDialog" name="Dialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1009</width>
|
||||
<height>658</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Library</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTreeView" name="treeView"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QTextBrowser" name="aboutBox">
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="openLinks">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Switches</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="refreshLibrary">
|
||||
<property name="text">
|
||||
<string>Startup: Refresh library</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="autoTags">
|
||||
<property name="text">
|
||||
<string>Generate tags from files</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="coverShadows">
|
||||
<property name="text">
|
||||
<string>Cover shadows</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="performCulling">
|
||||
<property name="toolTip">
|
||||
<string>Enabling reduces startup time and memory usage</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load covers only when needed</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="languageLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Dictionary:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="languageBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QPushButton" name="okButton">
|
||||
<property name="text">
|
||||
<string>Scan Library</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelButton">
|
||||
<property name="text">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="aboutButton">
|
||||
<property name="text">
|
||||
<string>About</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
1454
resources/resources.py
Normal file
109
resources/settingswindow.py
Normal file
@@ -0,0 +1,109 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'raw/settings.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.10.1
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
class Ui_Dialog(object):
|
||||
def setupUi(self, Dialog):
|
||||
Dialog.setObjectName("Dialog")
|
||||
Dialog.resize(1009, 658)
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout(Dialog)
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||
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.treeView = QtWidgets.QTreeView(self.groupBox_2)
|
||||
self.treeView.setObjectName("treeView")
|
||||
self.gridLayout_2.addWidget(self.treeView, 0, 0, 1, 1)
|
||||
self.aboutBox = QtWidgets.QTextBrowser(self.groupBox_2)
|
||||
self.aboutBox.setOpenExternalLinks(True)
|
||||
self.aboutBox.setOpenLinks(False)
|
||||
self.aboutBox.setObjectName("aboutBox")
|
||||
self.gridLayout_2.addWidget(self.aboutBox, 1, 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.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
self.refreshLibrary = QtWidgets.QCheckBox(self.groupBox)
|
||||
self.refreshLibrary.setObjectName("refreshLibrary")
|
||||
self.horizontalLayout_4.addWidget(self.refreshLibrary)
|
||||
self.fileRemember = QtWidgets.QCheckBox(self.groupBox)
|
||||
self.fileRemember.setObjectName("fileRemember")
|
||||
self.horizontalLayout_4.addWidget(self.fileRemember)
|
||||
self.autoTags = QtWidgets.QCheckBox(self.groupBox)
|
||||
self.autoTags.setObjectName("autoTags")
|
||||
self.horizontalLayout_4.addWidget(self.autoTags)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_4)
|
||||
self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.coverShadows = QtWidgets.QCheckBox(self.groupBox)
|
||||
self.coverShadows.setObjectName("coverShadows")
|
||||
self.horizontalLayout.addWidget(self.coverShadows)
|
||||
self.performCulling = QtWidgets.QCheckBox(self.groupBox)
|
||||
self.performCulling.setObjectName("performCulling")
|
||||
self.horizontalLayout.addWidget(self.performCulling)
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.languageLabel = QtWidgets.QLabel(self.groupBox)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.languageLabel.sizePolicy().hasHeightForWidth())
|
||||
self.languageLabel.setSizePolicy(sizePolicy)
|
||||
self.languageLabel.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
||||
self.languageLabel.setObjectName("languageLabel")
|
||||
self.horizontalLayout_3.addWidget(self.languageLabel)
|
||||
self.languageBox = QtWidgets.QComboBox(self.groupBox)
|
||||
self.languageBox.setObjectName("languageBox")
|
||||
self.horizontalLayout_3.addWidget(self.languageBox)
|
||||
self.horizontalLayout.addLayout(self.horizontalLayout_3)
|
||||
self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1)
|
||||
self.verticalLayout_2.addWidget(self.groupBox)
|
||||
self.gridLayout_3.addLayout(self.verticalLayout_2, 0, 0, 1, 1)
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.okButton = QtWidgets.QPushButton(Dialog)
|
||||
self.okButton.setObjectName("okButton")
|
||||
self.horizontalLayout_2.addWidget(self.okButton)
|
||||
self.cancelButton = QtWidgets.QPushButton(Dialog)
|
||||
self.cancelButton.setObjectName("cancelButton")
|
||||
self.horizontalLayout_2.addWidget(self.cancelButton)
|
||||
self.aboutButton = QtWidgets.QPushButton(Dialog)
|
||||
self.aboutButton.setCheckable(True)
|
||||
self.aboutButton.setObjectName("aboutButton")
|
||||
self.horizontalLayout_2.addWidget(self.aboutButton)
|
||||
self.gridLayout_3.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
|
||||
|
||||
self.retranslateUi(Dialog)
|
||||
QtCore.QMetaObject.connectSlotsByName(Dialog)
|
||||
|
||||
def retranslateUi(self, Dialog):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
Dialog.setWindowTitle(_translate("Dialog", "Settings"))
|
||||
self.groupBox_2.setTitle(_translate("Dialog", "Library"))
|
||||
self.groupBox.setTitle(_translate("Dialog", "Switches"))
|
||||
self.refreshLibrary.setText(_translate("Dialog", "Startup: Refresh library"))
|
||||
self.fileRemember.setText(_translate("Dialog", "Remember open files"))
|
||||
self.autoTags.setText(_translate("Dialog", "Generate tags from files"))
|
||||
self.coverShadows.setText(_translate("Dialog", "Cover shadows"))
|
||||
self.performCulling.setToolTip(_translate("Dialog", "Enabling reduces startup time and memory usage"))
|
||||
self.performCulling.setText(_translate("Dialog", "Load covers only when needed"))
|
||||
self.languageLabel.setText(_translate("Dialog", "Dictionary:"))
|
||||
self.okButton.setText(_translate("Dialog", "Scan Library"))
|
||||
self.cancelButton.setText(_translate("Dialog", "Close"))
|
||||
self.aboutButton.setText(_translate("Dialog", "About"))
|
||||
|