Reorganize resources
This commit is contained in:
0
resources/__init__.py
Normal file
0
resources/__init__.py
Normal file
67
resources/mainwindow.py
Normal file
67
resources/mainwindow.py
Normal file
@@ -0,0 +1,67 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'resources/main.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.9.1
|
||||
#
|
||||
# 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(1064, 724)
|
||||
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.verticalLayout = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.listView = QtWidgets.QListView(self.tab)
|
||||
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.verticalLayout.addWidget(self.listView)
|
||||
self.gridLayout_2.addLayout(self.verticalLayout, 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"))
|
||||
|
94
resources/pie_chart.py
Normal file
94
resources/pie_chart.py
Normal file
@@ -0,0 +1,94 @@
|
||||
# Modified from: http://drumcoder.co.uk/blog/2010/nov/16/python-code-generate-svg-pie-chart/
|
||||
|
||||
import os
|
||||
import math
|
||||
|
||||
class GeneratePie():
|
||||
def __init__(self, progress_percent, temp_dir=None):
|
||||
self.progress_percent = int(progress_percent)
|
||||
self.temp_dir = temp_dir
|
||||
|
||||
def generate(self):
|
||||
lSlices = (self.progress_percent, 100 - self.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 self.temp_dir:
|
||||
svg_path = os.path.join(self.temp_dir, 'lector_progress.svg')
|
||||
lFile = open(svg_path, 'w')
|
||||
lFile.write(lSvg)
|
||||
lFile.close()
|
||||
else:
|
||||
return lSvg
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 341 B After Width: | Height: | Size: 341 B |
Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 438 B |
1230
resources/resources.py
Normal file
1230
resources/resources.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user