kindle manager

This commit is contained in:
gavin
2020-06-06 08:43:34 +08:00
parent c0bfa52fc3
commit 722757dadd
8 changed files with 498 additions and 358 deletions

View File

@@ -1,5 +1,10 @@
import sys
from time import sleep
from threading import Thread
import _thread
import threading
from PySide2.QtWidgets import QApplication
from PySide2.QtWidgets import QMainWindow
@@ -16,6 +21,8 @@ from kman import *
# import binary resource file(kmanapp_rc.py)
import kmanapp_rc
ONLY_TEST = 0
class kmanWindow(QMainWindow):
"""
def __init__(self, *args, **kwargs):
@@ -26,13 +33,26 @@ class kmanWindow(QMainWindow):
self.stat_str = 'status information'
self.search_str = ''
self.local_fn = CLIPPATH
# create ui and initial it
ui = Ui_MainWindow()
ui.setupUi(self)
self.ui = ui
self.books = import_clips()
self.km = kMan()
self.books = self.km.import_clips('local')
# loop check kindle is connected or not
# to be implement
"""
try:
#_thread.start_new_thread(self.check_kindle_status)
t1 = threading.Thread(target=check_kindle_status)
t1.start()
except:
print ("Error: can not start thread")
"""
# connect action/toolbutton to slot functions
ui.actionimportkindle.triggered.connect(lambda: self.import_kindle(self.books))
@@ -54,49 +74,48 @@ class kmanWindow(QMainWindow):
def add_ui_component(self):
self.ui.searchComboBox.addItems(['ALL','bookname','content','author'])
#inert test data xxxxxxxx
model = QStandardItemModel()
rootItem = model.invisibleRootItem()
idx = 0
for i in range(4):
idx += 1
item = QStandardItem('item {}'.format(idx))
rootItem.appendRow(item)
icon = QIcon()
icon.addFile(u":/icons/book_open_bookmark.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
if i==0:
parentItem = item
if not ONLY_TEST: # XXXXXXXXXXXXX
model = QStandardItemModel()
rootItem = model.invisibleRootItem()
idx = 0
for i in range(4):
idx += 1
item = QStandardItem('item {}'.format(idx))
rootItem.appendRow(item)
icon = QIcon()
icon.addFile(u":/icons/emblem_library.png", QSize(), QIcon.Normal, QIcon.Off)
icon.addFile(u":/icons/book_open_bookmark.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRows([QStandardItem('append rows {}'.format(i+idx)) for i in range(5)])
if i==1:
parentItem = item
for i in range(5):
idx += 1
item = QStandardItem('type item {}'.format(i+idx))
#item.setEnabled(False)
item.setEditable(False)
if i==0:
parentItem = item
icon = QIcon()
icon.addFile(u":/icons/register.png", QSize(), QIcon.Normal, QIcon.Off)
icon.addFile(u":/icons/emblem_library.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRow(item)
if i==3:
parentItem = item
for i in range(5):
idx += 1
item = QStandardItem('another item {}'.format(i+idx))
#item.setEnabled(False)
item.setEditable(False)
icon = QIcon()
icon.addFile(u":/icons/book_open.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRow(item)
parentItem.appendRows([QStandardItem('append rows {}'.format(i+idx)) for i in range(5)])
if i==1:
parentItem = item
for i in range(5):
idx += 1
item = QStandardItem('type item {}'.format(i+idx))
#item.setEnabled(False)
item.setEditable(False)
icon = QIcon()
icon.addFile(u":/icons/register.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRow(item)
if i==3:
parentItem = item
for i in range(5):
idx += 1
item = QStandardItem('another item {}'.format(i+idx))
#item.setEnabled(False)
item.setEditable(False)
icon = QIcon()
icon.addFile(u":/icons/book_open.png", QSize(), QIcon.Normal, QIcon.Off)
item.setIcon(icon)
parentItem.appendRow(item)
self.ui.treeView.setModel(model)
def clicked_items(self):
print( 'call clicked_items()' )
@@ -110,15 +129,46 @@ class kmanWindow(QMainWindow):
#print(search_clip(self.books,s,'ALL',p[t]))
print('call search_scope_change()')
def check_kindle_status(self):
while True:
self.show_status_info()
sleep(1)
def show_status_info(self):
""" show status information on statusbar
Args:
conn: 1 if kindle is connected else 0
Return:
conn
"""
status = self.km.status_info()
self.ui.statusbar.showMessage(status[0],0)
clabel = QLabel(status[1])
if not self.km.status:
pe = QPalette()
pe.setColor(QPalette.WindowText,Qt.red)
#clabel.setAutoFillBackground(True)
clabel.setPalette(pe)
self.ui.statusbar.addPermanentWidget(clabel, stretch=0)
# define slot functions
def import_kindle(self,bks):
print("call slot importkindle()")
status = self.km.status_info()
self.show_status_info()
print(bks)
pass
def import_local(self):
print("call slot importlocal()")
pass
fn, ft = QFileDialog.getOpenFileName(self,
"choose file to import",
'./', # 起始路径
"All Files (*);;Text Files (*.txt)") # 设置文件扩展名过滤,用双分号间隔
self.fn = fn
#print('filename ', fn, 'filetype ', ft)
if fn == "": return False
def config(self):
print("call slot config()")
@@ -137,6 +187,12 @@ class kmanWindow(QMainWindow):
pass
def about(self):
self.messagebox('\n'+ \
' kindle management tool \n\n' + \
' v1.0.4\n\n' + \
' Author: chengan\n\n' + \
' douboer@gmail.com')
print("call slot about()")
pass
@@ -144,8 +200,15 @@ class kmanWindow(QMainWindow):
print("call slot flush()")
pass
def messageBox(self, showInfo):
box = QMessageBox.about(self, 'Kindle Management', showInfo)
# unify messagebox
def messagebox(self, showinfo):
msgBox = QMessageBox()
msgBox.setText(showinfo)
msgBox.setInformativeText("")
msgBox.setIcon(QMessageBox.Information)
msgBox.setStandardButtons(QMessageBox.Cancel | QMessageBox.Ok)
msgBox.setBaseSize(QSize(600, 300))
r = msgBox.exec()
if __name__ == "__main__":
import sys
@@ -157,3 +220,4 @@ if __name__ == "__main__":
kmw.show()
app.exec_()