kindle manager
This commit is contained in:
148
kmanapp.py
148
kmanapp.py
@@ -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_()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user