From d62b9098491fa99dee3a91c5f9e928be6a61c49b Mon Sep 17 00:00:00 2001 From: gavin Date: Fri, 5 Jun 2020 12:36:28 +0800 Subject: [PATCH] kindle manager --- .DS_Store | Bin 8196 -> 8196 bytes cui | 2 +- icons/book.png | Bin 0 -> 4479 bytes icons/booksicon.png | Bin 0 -> 4190 bytes kmanrc.py => kman.rcc | 244 ++++++++++++++++++++-------------------- kmanapp.py | 63 +++++++++-- mainwindow.py | 2 + mainwindow.ui | 12 +- mainwindow.ui.autosave | 249 +++++++++++++++++++++++++++++++++++++++++ searchtitle.md | 6 - xx | 1 - 11 files changed, 443 insertions(+), 136 deletions(-) create mode 100644 icons/book.png create mode 100644 icons/booksicon.png rename kmanrc.py => kman.rcc (99%) create mode 100644 mainwindow.ui.autosave delete mode 100644 searchtitle.md delete mode 100644 xx diff --git a/.DS_Store b/.DS_Store index 32026cae4a907392b250d38e199d630d7098c859..277a1c6e4551358e1a8cf2edd1d1a6947e309120 100644 GIT binary patch literal 8196 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 diff --git a/cui b/cui index 97ce566..41d4b93 100755 --- a/cui +++ b/cui @@ -1,2 +1,2 @@ pyuic mainwindow.ui -o mainwindow.py -pyside2-rcc kman.qrc -o kmanrc.py +pyside2-rcc -binary kman.qrc -o kman.rcc diff --git a/icons/book.png b/icons/book.png new file mode 100644 index 0000000000000000000000000000000000000000..11b55a5d6079c1db69dad9b3fc304a9f55ef86f5 GIT binary patch literal 4479 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 JS*v6n`9Fm8x{?3@ literal 0 HcmV?d00001 diff --git a/icons/booksicon.png b/icons/booksicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c171b8b8d30a4c87f335c9089b790ca43776542f GIT binary patch literal 4190 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 AJOBUy literal 0 HcmV?d00001 diff --git a/kmanrc.py b/kman.rcc similarity index 99% rename from kmanrc.py rename to kman.rcc index b0b1728..4d014b0 100644 --- a/kmanrc.py +++ b/kman.rcc @@ -6,86 +6,92 @@ from PySide2 import QtCore qt_resource_data = b"\ -\x00\x00\x04\xd5\ +\x00\x00\x05:\ \x00\ -\x00\x1a{x\x9c\xb5X\xdf\x93\x9b6\x10~\xbf\xbfB\ -\xe3\xf7\x1a\xfb\xe6Zw22\x99^'mf\x9a\x9b\ -\xb9\xcc\xb9\xc9cG\x06\xd9\xa8\x07\x88\x08\x11\xdb\xf9\xeb\ -\xb3H\x02$\xc0\xd89]\xde\xd8\x1f|Z}\xda]\ --\xe0\xb7\xc7,E_\xa9(\x19\xcf\xd7\xb3\xe5|1\ -C4\x8fx\xcc\xf2\xfdz\xf6\xef\xe6\xaf_~\x9f\xbd\ -\x0dop\xc5:\xa7;p\x0ao\x10\x8eRR\x96\xe1\ -\x03a\xf9g\x96\xc7\xfc\x80\x03\xad\x01\xd3\x81\xc5{*\ -\x91\x92\xd7\xb3\x8f\x9d\xcf\x0c\xe5$\xa3\xeb\x99\xa5\x01\x7f\ -\x84\x0b\xc1\x0b*\xe4\xc9\x98\xf7\x94gT\x8a\x932\x22\ -,h$\xd5\x13\xc2\xc7p\x81\x83\xa3\x11N\xb5p2\ -\x02\xac)\x93p\xb5\xba\xc3\x81~\xd4\xea\x84\xb2}\x22\ -\xc3\xbb%\xb8\x9ag\x85\x194\xa08h\x16\x1f\x8b\xe4\ -\xa0\x82\xdc0\x99R\x13L)\x05\x90\x13\xfe\x03\x86\x94\ -\xa2\x07\x92\x93=\xcdh.q`,C\xcc\x1e\x1d\x9f\ -\x95\xd8P\x11\xc1\xbb\x82\xa4\xda\xc7\xac\x91\x92\x13\xaf\xba\ -\x17\xfe\x16,\xfe\xa0T\xcdK\xfbNc\xf6\xc9$\xcd\ -\x90\xe0\x87\xf5\x0c\x8e0\xe2i\x95\xe5\xf5\xa3\xb6\x0e\x10\ -\xdf\xdf\xf3\xa3\x8b\x98p\xc1\xbe\xf1\x5c\x92\xd4\xc15\xc8\ -\x8d0\xd8\xcb\x07\xb2\xa5i\x83QR\x22\xa2D\xab\xda\ -7\x06\x94Jz\x94\x96\xb9e\xf4I\xbdm\xd3h\xec\ -\x0e\x99F\xa5\xc3hc\x0c\xec /D\xccr\xfa.\ -f\xb2\x17t\xa3\x0d^\x82\xf9'\xcf\xb6\x1c(u1\ -[\xed\x8b07\x9c\xa7\xf7\x95\x94\xf2\x94E';9jm\xa1\ -\xb4(\xa9\x9f\xe5\xa9\x00\xdfGAwT\x08\x1a\xcf\xd0\ -\xd7N\xfb\xeeX\x90\xbcn\xff\xceiCw\x80\xac\xa1\ -2J\xea\x96kI\x96O}At>\x96d\x1dj\ -\x17\x89u\xac\xc3\x93\xee\xed*#G\x96U\xd9\x13\xbc\ -\xdc\xdf\x96\x1d\x80n\xfbw\x8b\x85s\x03\x98\x0d\xe8\xd6\ -\xbf\xfcm\xb5Z\xdd.\x7fu\xee\x02+\xb6\x89\xa8\x06\ -\xe9we\xe2\x9c?\xac\xd1\xbc\xb1\x12\xe7\x13\xf8\xb2\xa8\ -\x9f6\xa3\x84\xf5\x13\x87lS7sZ\xc5\xf9\x12\x1f\ -\xcd\x9ds\xc9\xf3\xa0\x8f\xe4r\xea\x5c\x95;\xd7$\xcf\ -x\xf6\x5c\xd3(\x86\xf4@w\xb4\xaf\x00\xd9\xc8?\x91\ -\x9c\xae\xda\xbc\xc8Y\xfa\x92seq\x0d\xaa\xab)\xaf\ -\xae\x82\xfa5\xd6\xcdZ\x8b\xc5\xb0\xbe\xfa\x05v]\x87\ -wdW\xb4z\xbc\xdd\xfcm\xa7A\x89B\xb1U\xe5\ -=\xe9jT)\xb6\xa0\x08\xc6\xfc\x1f\xa0\xee,\xef\xcc\ -\x88z\xcd\xc9\x91\xd5\x9eY\xdd\xa1\xd5\x9dZ\xcf\x8d\xad\ --\x97\xb7\xb7.\x95\xdd\xdc\xda\x1f2'\xf6\xadF\x86\ -n\x1f\xd2\x88\xa3\xfb\x18\x0c\xbc\xed\xec`^s\xe6\x87\ -\xde!b\x22\xc1\xb6\xad$u\x97\xfaCP\xd2\xa0\xa9\ -^\xb6\xe1\xc5\xa63Y\x0d\x0e\x07-\xc4$\xe2=\xbc\ -\xf6\xdc@nA\x17\xeeHZR\x1c\xa8\xe7q\xa48\ -&Q\xddl\x0d\x92\x16XVp!\x9f\xd54o\x06\ -\xb5I\xcf\x94CG>\xe7X\xd2\x82\x08\x22\xb9\x98F\ -:p\x11\x97\xd3.uf\xb2\x12\xda\xbf\xe7R0W\ -\xed\xd8\xde\x13$\x81\xd4.\xe03g\xda\x8bl\xeb\xcf\ -\x06\xbf\x95viU&\xa6\x18\xed\x84\xbep\x1c\xa3\x99\ -l\x8d\xac\xbdiu0\xa8B\xc6\xe7b^\xe4#c\ -\xaae\xb2A\xfa\x89\x7f~\xfen\xca\xc7\x8aw\xb2\x84\ -\xfaH\x90\xcf\x1bV\x8c\x82A\x81\xb3\xa2\x00\x19\xed\x18\ -|\x8b\xee\x04\xcf\x90Z\xc05L,\x07E\xa2\xc8\x9c\ -&\xd9T\xc7k\xb0|\x9e\xe4\xd7\xe3X\x87\xfb3I\ -\xbe\xb8\xc2%^MY\xfa2\xaaa\xc69\xb5m~\ -\xacj$\x7f>5N%\xd4\xc4\xebA\x9en\x12\xbe\ -\xdc\xc1<&h\x99\x8c\x93\xe7\x18\xfd\xd83P\xfe\xf4\ -\x19 d\xd2\xb2\xce\xc6\xe0K\xc5\xa2\xe7V\xf3*\xa9\ -\xa9/'_v\xe1\x1a~.\xc7\xb9\xb5L~\xcc\xaa\ -H\xfdy\xbd\x04s\x89\xb0\xee\xaa\xf6%\xadE:\xc3\ -\x5c\xdf\xeeG_\x8b\xe6Oa\x17\x18\x82\xb9\xac\xfe\x04\ -D\x09\xd9n\x99\xf4\xa0\xb5\x1d:|Y\xad\x81\xc6\xf9\ -\xec,~L6\xa1\xbeF\x8d\xc7\xac\x1e\xf0\x91\xe4(\ -\x83o\xca\xcb\xc0\x97h\xd4S\x99/\x87_*Z\xd6\ -h\xe3<\xbaV?.U\xbc\xfeD\x82K\x8e\x14\x16\ -\x8a\x19\xc4:u}],p\xf5\xa7\xd2\x9b\xc3Gv\ -$1=\x8eS\xe8\x18=\xebz\xf8\x1f\xfdeE\xad\ -pP\xce\xe5\x95\xf9gM\xec\xf0\xf9[\xf2JD\xb4\ -\xacgy\x0c\xfb\xc9\xa9\xe6\x12d\x1cT,\xbc\xf9\x0e\ -\xb1\xe8et\ +\x00\x1bkx\x9c\xb5Y\xbd\x8e\xdc6\x10\xee\xef)\x88\ +\xed\xb3\xda=\x5cr\x81\xa1\x93\x91\x0b\x9c\x18\x88\x0f\xb0\ +q\x1b\xbb\x0c\xb8\x12w\xc5\x9c$\xca\x14\xe5\xdbue\ +\x17\x0e\x10 A\x5c\xa4t\x95\x22U\xe0\xa4H\xe3\x22\ +O\x13\x9f\xed\xc7\xc8\x88\xa4$\xeaw\xd7\xe1]\xa7\xf9\ +\xd1\xc7\xe1\xc7\x99\xe1h\xd7\xbd\xbd\x89#\xf4\x84\xf0\x8c\ +\xb2\xe4d2\x9f\xce&\x88$>\x0bh\xb2>\x99|\ +\xbb\xf8\xea\x93\xcf'\xb7\xbd\x037\xa7\xb5\xd3\x118y\ +\x07\xc8\xf5#\x9ce\xde\x19\xa6\xc9#\x9a\x04\xec\xd2u\ +\x94\x06L\x974X\x13\x81\xa4|2yP\xfbLP\ +\x82cr214\xe0\x8f\xdc\x94\xb3\x94p\xb1\xd5\xe6\ +5a1\x11|+\x8d\xc8\xe5\xc4\x17\xf2\x09\xb9\x1bo\ +\xe6:\x1b-l\x0ba\xab\x05XS\x84\xde\xf1\xf1\x91\ +\xeb\xa8G\xa5\x0e\x09]\x87\xc2;\x9a\x83\xab~\x96\x98\ +N\x09\xea:\xe5\xe2}\x91\x5c\xca \x17TDD\x07\ +\x93\x09\x0e\xe4x\xdf\x80!\x22\xe8\x0c'xMb\x92\ +\x08\xd7\xd1\x96.f\x8b\x8eGR,\xa9\xf0\xe1]\x8e\ +#\xe5\xa3\xd7\x88\xf0\x96\xe5\xf5\x0b_s\x1a\xdc\x93\xaa\ +\xf2\xa5u\xad\xd1\xfb\xa4\x82\xc4\x88\xb3\xcb\x93\x09\x1c\xa1\ +\xcf\xa2{\xfe\xf6\x9f\ +W\x1f\x9e\xbd\x80\x87\xab\x1f^\x5c\xbd~\xf3\xee\xe5\xab\ +\xf7\x7f\xff\xf6\xfe\x8f_?\xbc\xfe\xeb\xc6\xb7\xf9%\x8b\ +\x97\x0cN\xb9\xb9\xcdJ;\xbcM?\xe7\x1cRr`\ +\x8b\xce\x8d\x05\xbc`,:\xcd\x85`I3dC\xff\ +\xf195\x9dN\xf7b\xba\x03H\xfd\xc6z\x10;(\ +\xb2zgR\x970\x1e\xe3\x88\xadV\x9e\xb4:*\xe0\ +\xe9\xf7)Y\xbb\xce\xa8\xb1\x83\xf6\xb1d\xba\x8e\xaah\ +]\xfd\x86\xc9\xe8\x04\xf3\xbeN\xd0\xa2\xfd<\x8d\xa8\x10\ +\x84W\xa4k\xf9\xbb\xc3\xba\x03\xb4\xb8\x81N\x01\x09\x82\ +\x055)rI\x92\xc7\xde\x03q\xeb\xd6\xdd\xaa\x93\xb8\ +\x8eT\x1e\x0cm\xb1\x93\x02\x9c\x90\x87\x94T\xb7\x84(\ +\xe5z\x95V(\x19}J\xee\xb3\x88\xfa[39\x0a\ +m*\xb5(,\x9e\xc56\x05\xdf\xfb\x9c\xac\x08\xe4v\ +0AOj\xed\x9dM\x8a\x93\xe2\xbak\x9c6tC\ +\xc8\x1a\x22\xfc\xb0\xb8b\x0c\xc9\xf0).\xc4\xda\xc7\x90\ +\x8cC\xad#1\x8e\xb5{\xd2\xad]\xc5xC\xe3<\ +>\x87\x97\xdb\xdb2\x03P\xd7\xdc\xd1l\xd6\xb8\xf1\xf4\ +\x06\xd4U7\xff\xec\xf8\xf8\xf8p\xfei\xe3\xee3b\ +\x1b\x89\xaa\x93~{&\xce\xf0a\xf5\xe6\x8d\x918\x0f\ +\xc1\x97\xfa\xed\xb4\xe9%\xac\x9d8x\x1953\xa7R\ +\x0c\x97xo\xee\x0c%\xcf\x99:\x92\xdd\xa9\xb3W\xee\ +\xec\x93<\xfd\xd9\xb3O\xa3\xe8\xd2\x03\xdd\xd1\xbc\xf2D\ +)\xdf 9u\xb5Y\x913\xb7%g\xcf\xe2\xeaT\ +WY^u\x05\xb5k\xac\x9e-g\xb3n}\xb5\x0b\ +l\xbf\x0e\xdf\x90\x9b\xa2\xd1\xe3\xcd\xe6o:uJ\x14\ +\x8a-\xcfNq]\xa3R\xb1\x04\x85\xd3\xe7\x7f\x06u\ +gx\xc7ZTk\x8e\x8e\xe8\xe6\x8c\xde\x1c\xd2\x9bS\ +\xfa\xd0\x98^qyx\xd8\xa4\xb2\x9e\xd3\xdbC\xf5\xc8\ +\xbe\xe5\xc8P\xefCh\xb1w\x1f\x9d\x01\xbf\x9a\x1d\xf4\ +k\x8d\xf9\xa1u\x88.\x16`[\xe6\x824\x97\xfa\x82\ +\x13\x5c\xa2\xc9^\xb6`\xe9\xa26\x19\x0d\xceu*\x88\ +Q\xc4Sx\xed\xa2\x84\x5c\x82\xce[\xe1(#\xae#\ +\x9f\xfb\x91\x82\x00\xfbE\xb3\xd5HJ\xa0q\xca\xb8\xb8\ +\x90_/*\x0b\xc6=#\x06\x1dy\xc81#)\xe6\ +X0>\x8et\xc9x\x90\x8d\xbb\x14\x99I3h\xff\ +\x96K\xc1\x5c\xb5\xa2kK\x90\x10R;\x85\xcf\xbaq\ +/\xbc,>\x93\xecVZEy\x16\xeab4\x13z\ +\xc7q\xf4f\xb21\xb2\xb6\xa6\xd5\xce\xa0\x0a\x19\x9f\xf0\ +i\x9a\xf4\x8c\xa9\x86\xc9\x04i'\xfe\xf0\xfc]\x96\x8f\ +\x11\xefh\x09\xb5\x91 \x9f\x174\xed\x05\x83\x02\xa7i\ +\x0a2ZQ\xf8\xf6^q\x16#\xb9@\xd30\xb2\x1c\ +\x14\x89$s\x9cd]\x1d\xd7\xc1\xf20\xc9\xd7\xc7\xb1\ +\x0a\xf7&I\xde\xb9\xc2.^uY\xda2\xaa`\xfa\ +95mv\xac*${>\x15N\xce\xe5\xc4kA\ +\x9ej\x12\xb6\xdc\xc1<\xc6I\x16\xf6\x93\xd70\xda\xb1\ +\xa7\xa1\xec\xe9\xd3@H\xa7e\x91\x8d\xce\xe3\x9c\xfa\x17\ +\x95\xe6ZRS]N\xb6\xec\xc25|\x91\xf5sk\ +\x98\xec\x98\x95\x91\xda\xf3\xba\x0bf\x17a\xf5UmK\ +Z\x854\xc0\x5c\xdbnG_\x85fOa\x1d\x18\x82\ +\xb9\xac\xf8\x04D!^.\xa9\xb0\xa0\xb5\x1a:lY\ +-\x80\xfa\xf9\xac-vL\x96\xa1^G\x8d\x07\xb4\x18\ +\xf0\x91`(\x86o\xca\xdd\xc0\xbbhTS\x99-\x87\ +\x8fs\x92\x15h\xfd<6\xadv\x5c\xcax\xed\x89\x04\ +\x97\x04I,\x14P\x88u\xec\xfa\xdaY\xe0\xf2\x97J\ +k\x0e\xef\xd3\x0d\x0e\xc8\xa6\x9f\xc2\x86\xd1\xb2\xae\xbb\xff\ +\x1b\xfc\xbf\xa2\x968(ab\xcf\xfc3&v\xf8\xfc\ +\xcdX\xce}\x92\x15\xb3\xbc\x0b\xfbI\x88\xe2\x12d\xd7\ +\xc9\xa9w\xf0\x1f+\x9c\xbaL\ \x00\x00\x1cx\ \x89\ PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ @@ -45618,84 +45624,84 @@ qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00'\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01r|\xf92\x84\ -\x00\x00\x02\xaa\x00\x00\x00\x00\x00\x01\x00\x08\x03\xab\ +\x00\x00\x01r\x82%;p\ +\x00\x00\x02\xaa\x00\x00\x00\x00\x00\x01\x00\x08\x04\x10\ \x00\x00\x01ro \xc0+\ -\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x01l\xa1\ +\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x01m\x06\ \x00\x00\x01rybF\xf5\ -\x00\x00\x03\x5c\x00\x00\x00\x00\x00\x01\x00\x09\xab\xc0\ +\x00\x00\x03\x5c\x00\x00\x00\x00\x00\x01\x00\x09\xac%\ \x00\x00\x01ro-O\xd6\ -\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00!U\ +\x00\x00\x00R\x00\x00\x00\x00\x00\x01\x00\x00!\xba\ \x00\x00\x01ryefk\ -\x00\x00\x02d\x00\x00\x00\x00\x00\x01\x00\x07\x05\x06\ +\x00\x00\x02d\x00\x00\x00\x00\x00\x01\x00\x07\x05k\ \x00\x00\x01ro!\xbci\ -\x00\x00\x03\x92\x00\x00\x00\x00\x00\x01\x00\x09\xe1P\ +\x00\x00\x03\x92\x00\x00\x00\x00\x00\x01\x00\x09\xe1\xb5\ \x00\x00\x01ro \x94\xf5\ -\x00\x00\x01\x08\x00\x00\x00\x00\x00\x01\x00\x03(\xe6\ +\x00\x00\x01\x08\x00\x00\x00\x00\x00\x01\x00\x03)K\ \x00\x00\x01rn\x81\xa0K\ -\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x02\xbe\xb5\ +\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x02\xbf\x1a\ \x00\x00\x01rn\x7f\x9a\xa2\ -\x00\x00\x01\xfe\x00\x00\x00\x00\x00\x01\x00\x05\xfam\ +\x00\x00\x01\xfe\x00\x00\x00\x00\x00\x01\x00\x05\xfa\xd2\ \x00\x00\x01rx\xd0\xef\xa4\ -\x00\x00\x01R\x00\x00\x00\x00\x00\x01\x00\x03\xe4\x93\ +\x00\x00\x01R\x00\x00\x00\x00\x00\x01\x00\x03\xe4\xf8\ \x00\x00\x01ro&U\x86\ -\x00\x00\x02\xc0\x00\x00\x00\x00\x00\x01\x00\x08s\xa8\ +\x00\x00\x02\xc0\x00\x00\x00\x00\x00\x01\x00\x08t\x0d\ \x00\x00\x01ro'\x5c\xdd\ -\x00\x00\x03\xe0\x00\x00\x00\x00\x00\x01\x00\x0a\xdbQ\ +\x00\x00\x03\xe0\x00\x00\x00\x00\x00\x01\x00\x0a\xdb\xb6\ \x00\x00\x01rxL\xc3L\ -\x00\x00\x01\xd0\x00\x00\x00\x00\x00\x01\x00\x05G\xb3\ +\x00\x00\x01\xd0\x00\x00\x00\x00\x00\x01\x00\x05H\x18\ \x00\x00\x01rn\x80a\x98\ -\x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x07\x1c\xd3\ +\x00\x00\x02\x82\x00\x00\x00\x00\x00\x01\x00\x07\x1d8\ \x00\x00\x01ro!\x10\x8b\ -\x00\x00\x00z\x00\x00\x00\x00\x00\x01\x00\x01 z\ +\x00\x00\x00z\x00\x00\x00\x00\x00\x01\x00\x01 \xdf\ \x00\x00\x01ro6\xcc\x14\ -\x00\x00\x02\x94\x00\x00\x00\x00\x00\x01\x00\x07\x8fb\ +\x00\x00\x02\x94\x00\x00\x00\x00\x00\x01\x00\x07\x8f\xc7\ \x00\x00\x01ryf\xd9E\ -\x00\x00\x020\x00\x00\x00\x00\x00\x01\x00\x06Q\xe7\ +\x00\x00\x020\x00\x00\x00\x00\x00\x01\x00\x06RL\ \x00\x00\x01rn\x83W\xb2\ -\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x04\xaa\xac\ +\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x04\xab\x11\ \x00\x00\x01rn\x80\x8e_\ -\x00\x00\x018\x00\x00\x00\x00\x00\x01\x00\x03\xb0D\ +\x00\x00\x018\x00\x00\x00\x00\x00\x01\x00\x03\xb0\xa9\ \x00\x00\x01ro'\xd9\xb1\ -\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x05\x95\xc1\ +\x00\x00\x01\xe6\x00\x00\x00\x00\x00\x01\x00\x05\x96&\ \x00\x00\x01ro!\x80\x9f\ -\x00\x00\x03p\x00\x00\x00\x00\x00\x01\x00\x09\xc2\x9a\ +\x00\x00\x03p\x00\x00\x00\x00\x00\x01\x00\x09\xc2\xff\ \x00\x00\x01ro*{\xa5\ -\x00\x00\x03\xc4\x00\x00\x00\x00\x00\x01\x00\x0a\xa2>\ +\x00\x00\x03\xc4\x00\x00\x00\x00\x00\x01\x00\x0a\xa2\xa3\ \x00\x00\x01rxA\xa0\xe6\ -\x00\x00\x02\x14\x00\x00\x00\x00\x00\x01\x00\x06.)\ +\x00\x00\x02\x14\x00\x00\x00\x00\x00\x01\x00\x06.\x8e\ \x00\x00\x01ro'\xf7\xd9\ -\x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x04KX\ +\x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x04K\xbd\ \x00\x00\x01ro+U:\ -\x00\x00\x000\x00\x00\x00\x00\x00\x01\x00\x00\x04\xd9\ +\x00\x00\x000\x00\x00\x00\x00\x00\x01\x00\x00\x05>\ \x00\x00\x01ro\x22L\x9b\ -\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x02+w\ +\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x02+\xdc\ \x00\x00\x01rn\x80\xbaA\ -\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x02w%\ +\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x02w\x8a\ \x00\x00\x01ro\x14<\x9f\ -\x00\x00\x02\xdc\x00\x00\x00\x00\x00\x01\x00\x08\x94W\ +\x00\x00\x02\xdc\x00\x00\x00\x00\x00\x01\x00\x08\x94\xbc\ \x00\x00\x01ro\x14\xa8\xb6\ -\x00\x00\x00f\x00\x00\x00\x00\x00\x01\x00\x00\x9a\xa1\ +\x00\x00\x00f\x00\x00\x00\x00\x00\x01\x00\x00\x9b\x06\ \x00\x00\x01ro\x1e\xc7F\ -\x00\x00\x03,\x00\x00\x00\x00\x00\x01\x00\x09_\xb2\ +\x00\x00\x03,\x00\x00\x00\x00\x00\x01\x00\x09`\x17\ \x00\x00\x01rxK\x8a\x1d\ -\x00\x00\x01\xbc\x00\x00\x00\x00\x00\x01\x00\x04\xf5\xa2\ +\x00\x00\x01\xbc\x00\x00\x00\x00\x00\x01\x00\x04\xf6\x07\ \x00\x00\x01ro!G\x15\ -\x00\x00\x01 \x00\x00\x00\x00\x00\x01\x00\x03\x90'\ +\x00\x00\x01 \x00\x00\x00\x00\x00\x01\x00\x03\x90\x8c\ \x00\x00\x01ro*\xb4%\ -\x00\x00\x02\xf6\x00\x00\x00\x00\x00\x01\x00\x08\x9d\xf1\ +\x00\x00\x02\xf6\x00\x00\x00\x00\x00\x01\x00\x08\x9eV\ \x00\x00\x01ryaf\xee\ -\x00\x00\x02J\x00\x00\x00\x00\x00\x01\x00\x06\x9f\xaf\ +\x00\x00\x02J\x00\x00\x00\x00\x00\x01\x00\x06\xa0\x14\ \x00\x00\x01ryg+\xf0\ -\x00\x00\x03\xaa\x00\x00\x00\x00\x00\x01\x00\x0a?f\ +\x00\x00\x03\xaa\x00\x00\x00\x00\x00\x01\x00\x0a?\xcb\ \x00\x00\x01rx\xcbU\xa4\ -\x00\x00\x03H\x00\x00\x00\x00\x00\x01\x00\x09\x84/\ +\x00\x00\x03H\x00\x00\x00\x00\x00\x01\x00\x09\x84\x94\ \x00\x00\x01rx\xcc\xdf'\ -\x00\x00\x01h\x00\x00\x00\x00\x00\x01\x00\x04\x00\x84\ +\x00\x00\x01h\x00\x00\x00\x00\x00\x01\x00\x04\x00\xe9\ \x00\x00\x01rn\x80\xf2c\ -\x00\x00\x03\x10\x00\x00\x00\x00\x00\x01\x00\x08\xf4`\ +\x00\x00\x03\x10\x00\x00\x00\x00\x00\x01\x00\x08\xf4\xc5\ \x00\x00\x01ro!-\x86\ -\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x01\x00\x01\xbd\xc0\ +\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x01\x00\x01\xbe%\ \x00\x00\x01rn\x7f\xe8!\ " diff --git a/kmanapp.py b/kmanapp.py index 245399b..ed69455 100644 --- a/kmanapp.py +++ b/kmanapp.py @@ -2,6 +2,9 @@ import sys from PySide2.QtWidgets import QApplication from PySide2.QtWidgets import QMainWindow +from PySide2.QtGui import QStandardItemModel +from PySide2.QtGui import QStandardItem + from mainwindow import Ui_MainWindow from kman import * @@ -10,20 +13,22 @@ class kmanWindow(QMainWindow): def __init__(self, *args, **kwargs): super(kmanWindow, self).__init__(*args, **kwargs) """ - def __init__(self, parent=None): super(kmanWindow, self).__init__(parent) + self.stat_str = 'status information' + self.search_str = '' + # create ui and initial it ui = Ui_MainWindow() ui.setupUi(self) self.ui = ui - books = import_clips() + self.books = import_clips() - # connect action to slot functions - ui.actionimportkindle.triggered.connect(lambda: self.importkindle(books)) - ui.actionimportlocal.triggered.connect(lambda: self.importlocal()) + # connect action/toolbutton to slot functions + ui.actionimportkindle.triggered.connect(lambda: self.import_kindle(self.books)) + ui.actionimportlocal.triggered.connect(lambda: self.import_local()) ui.actionconfig.triggered.connect(lambda: self.config()) ui.actionwords.triggered.connect(lambda: self.words()) ui.actionstatistic.triggered.connect(lambda: self.statistic()) @@ -31,13 +36,56 @@ class kmanWindow(QMainWindow): ui.actionabout.triggered.connect(lambda: self.about()) ui.actionflush.triggered.connect(lambda: self.flush()) + ui.searchComboBox.currentIndexChanged.connect(self.search_scope_change) + ui.searchToolButton.clicked.connect(self.search_button_clicked) + ui.treeView.activated.connect(self.activated_items) + + self.add_ui_component() + #add_ui_component() ###! can not found this function + + def add_ui_component(self): + self.ui.searchComboBox.addItems(['ALL','bookname','content','author']) + + #inert test data xxxxxxxx + model = QStandardItemModel() + rootItem = model.invisibleRootItem() + for i in range(4): + item = QStandardItem('item {}'.format(i)) + rootItem.appendRow(item) + if i==0: + parentItem = item + parentItem.appendRows([QStandardItem('append rows {}'.format(i+10)) for i in range(5)]) + if i==3: + parentItem = item + for i in range(5): + item = QStandardItem('another item {}'.format(i+4)) + #item.setEnabled(False) + item.setEditable(False) + parentItem.appendRow(item) + + self.ui.treeView.setModel(model) + + + def activated_items(self): + print( 'call activated_items()' ) + + def search_button_clicked(self): + print( 'call search_button_clicked()' ) + + def search_scope_change(self,t): + p = {0:'ALL',1:'TITLE',2:'AUTHOR',3:'CONTENT'} + s = self.ui.searchLineEdit.text() + #print(self.books) + #print(search_clip(self.books,s,'ALL',p[t])) + print('call search_scope_change()') + # define slot functions - def importkindle(self,bks): + def import_kindle(self,bks): print("call slot importkindle()") print(bks) pass - def importlocal(self): + def import_local(self): print("call slot importlocal()") pass @@ -78,3 +126,4 @@ if __name__ == "__main__": kmw.resize(900, 600) kmw.show() app.exec_() + diff --git a/mainwindow.py b/mainwindow.py index 0d302b3..c7bfd2a 100644 --- a/mainwindow.py +++ b/mainwindow.py @@ -203,6 +203,8 @@ class Ui_MainWindow(object): self.actionsearch.setToolTip(QCoreApplication.translate("MainWindow", u"search note", None)) #endif // QT_CONFIG(tooltip) self.searchLabel.setText(QCoreApplication.translate("MainWindow", u"Search", None)) + self.searchLineEdit.setPlaceholderText(QCoreApplication.translate("MainWindow", u"\u53ef\u6309\u4e66\u540d\u3001\u4f5c\u8005\u3001\u5185\u5bb9\u641c\u7d22\u7b14\u8bb0", None)) + self.searchComboBox.setCurrentText("") self.searchToolButton.setText(QCoreApplication.translate("MainWindow", u"...", None)) self.toolBar.setWindowTitle(QCoreApplication.translate("MainWindow", u"toolBar", None)) # retranslateUi diff --git a/mainwindow.ui b/mainwindow.ui index d5466fe..981b461 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -25,10 +25,18 @@ - + + + 可按书名、作者、内容搜索笔记 + + - + + + + + diff --git a/mainwindow.ui.autosave b/mainwindow.ui.autosave new file mode 100644 index 0000000..981b461 --- /dev/null +++ b/mainwindow.ui.autosave @@ -0,0 +1,249 @@ + + + MainWindow + + + + 0 + 0 + 774 + 410 + + + + Kindle Management + + + + + + + + + Search + + + + + + + 可按书名、作者、内容搜索笔记 + + + + + + + + + + + + + + ... + + + + icons/search.jpegicons/search.jpeg + + + + + + + + + Qt::Horizontal + + + + + 0 + 0 + + + + + 400 + 16777215 + + + + + + Qt::Vertical + + + + + 0 + 0 + + + + + + + 0 + 1 + + + + + 16777215 + 400 + + + + + + + + + + + + + 0 + 0 + 774 + 22 + + + + + + toolBar + + + TopToolBarArea + + + false + + + + + + + + + + + + + + + + + + icons/downr.pngicons/downr.png + + + importlocal + + + import clipping file from local clipping file + + + + + + icons/down.pngicons/down.png + + + importkindle + + + import clipping file from kindle + + + + + + icons/config.pngicons/config.png + + + config + + + configuration + + + + + + icons/refresh.pngicons/refresh.png + + + refresh + + + refresh import file/quick import from kindle + + + + + + icons/books.pngicons/books.png + + + words + + + words + + + + + + icons/statistics.pngicons/statistics.png + + + statistic + + + statistics reading habbit + + + + + + icons/home.pngicons/home.png + + + homepage + + + redirect to my homepage + + + + + + icons/question.pngicons/question.png + + + about + + + open about dialog + + + + + + icons/Pixadex.pngicons/Pixadex.png + + + search + + + search note + + + + + + diff --git a/searchtitle.md b/searchtitle.md deleted file mode 100644 index 3727ac9..0000000 --- a/searchtitle.md +++ /dev/null @@ -1,6 +0,0 @@ -TYPE|BOOKNAME|AUTHOR|MARKTIME|CONTENT ---|--|--|--|-- -HL|薛兆丰经济学讲义 |薛兆丰|2020/1/13 8:11:05|么到底什么叫边际?边际就是“新增”带来的“新增”。 例如,边际成本就是每新增一个单位产品所需要付出的新增成本;边际收入是每多卖一个产品能够带来的新增收入;边际产量是每新增一份投入所带来的新增产量;边际效用是每消耗一个单位的商品所能带来的新增享受。 -HL|薛兆丰经济学讲义 |薛兆丰|2020/1/30 10:23:58|一个国家很大,贫富有差距,并非每个学校和家长都能负担得起这样标准的校车。标准太高,就会逼着很多学校,尤其是农村的学校放弃提供校车,家长们就只能使用安全性能更低的交通工具,比如自己骑自行车或雇用黑车等,结果是孩子们享受到的安全保障反而降低了。 -NT|薛兆丰经济学讲义 |薛兆丰|2020/1/30 10:26:31|山寨 假货 问题 -HL|薛兆丰经济学讲义 |薛兆丰|2020/1/30 10:29:41|为了克服信息不对称,建立互信,人类社会构想出了各种各样有趣的解决方案,从重复交易到第三方背书,从质保、延保,再到收益共享。此外,还有三种非常接近的建立信任的办法:付出沉没成本、给出人质或者给出抵押。 diff --git a/xx b/xx deleted file mode 100644 index 925c5fd..0000000 --- a/xx +++ /dev/null @@ -1 +0,0 @@ -{"\u859b\u5146\u4e30\u7ecf\u6d4e\u5b66\u8bb2\u4e49 ": {"author": "\u859b\u5146\u4e30", "1": {"type": "HL", "position": "1408-1410", "day": "2020\u5e741\u670813\u65e5", "week": "\u661f\u671f\u4e00", "meridiem": "\u4e0a\u5348", "time": "8:11:05", "content": "\u4e48\u5230\u5e95\u4ec0\u4e48\u53eb\u8fb9\u9645\uff1f\u8fb9\u9645\u5c31\u662f\u201c\u65b0\u589e\u201d\u5e26\u6765\u7684\u201c\u65b0\u589e\u201d\u3002 \u4f8b\u5982\uff0c\u8fb9\u9645\u6210\u672c\u5c31\u662f\u6bcf\u65b0\u589e\u4e00\u4e2a\u5355\u4f4d\u4ea7\u54c1\u6240\u9700\u8981\u4ed8\u51fa\u7684\u65b0\u589e\u6210\u672c\uff1b\u8fb9\u9645\u6536\u5165\u662f\u6bcf\u591a\u5356\u4e00\u4e2a\u4ea7\u54c1\u80fd\u591f\u5e26\u6765\u7684\u65b0\u589e\u6536\u5165\uff1b\u8fb9\u9645\u4ea7\u91cf\u662f\u6bcf\u65b0\u589e\u4e00\u4efd\u6295\u5165\u6240\u5e26\u6765\u7684\u65b0\u589e\u4ea7\u91cf\uff1b\u8fb9\u9645\u6548\u7528\u662f\u6bcf\u6d88\u8017\u4e00\u4e2a\u5355\u4f4d\u7684\u5546\u54c1\u6240\u80fd\u5e26\u6765\u7684\u65b0\u589e\u4eab\u53d7\u3002"}, "2": {"type": "HL", "position": "4284-4286", "day": "2020\u5e741\u670830\u65e5", "week": "\u661f\u671f\u56db", "meridiem": "\u4e0a\u5348", "time": "10:23:58", "content": "\u4e00\u4e2a\u56fd\u5bb6\u5f88\u5927\uff0c\u8d2b\u5bcc\u6709\u5dee\u8ddd\uff0c\u5e76\u975e\u6bcf\u4e2a\u5b66\u6821\u548c\u5bb6\u957f\u90fd\u80fd\u8d1f\u62c5\u5f97\u8d77\u8fd9\u6837\u6807\u51c6\u7684\u6821\u8f66\u3002\u6807\u51c6\u592a\u9ad8\uff0c\u5c31\u4f1a\u903c\u7740\u5f88\u591a\u5b66\u6821\uff0c\u5c24\u5176\u662f\u519c\u6751\u7684\u5b66\u6821\u653e\u5f03\u63d0\u4f9b\u6821\u8f66\uff0c\u5bb6\u957f\u4eec\u5c31\u53ea\u80fd\u4f7f\u7528\u5b89\u5168\u6027\u80fd\u66f4\u4f4e\u7684\u4ea4\u901a\u5de5\u5177\uff0c\u6bd4\u5982\u81ea\u5df1\u9a91\u81ea\u884c\u8f66\u6216\u96c7\u7528\u9ed1\u8f66\u7b49\uff0c\u7ed3\u679c\u662f\u5b69\u5b50\u4eec\u4eab\u53d7\u5230\u7684\u5b89\u5168\u4fdd\u969c\u53cd\u800c\u964d\u4f4e\u4e86\u3002--CG\u6ce8:\u5c71\u5be8 \u5047\u8d27 \u95ee\u9898"}, "4": {"type": "HL", "position": "4382-4384", "day": "2020\u5e741\u670830\u65e5", "week": "\u661f\u671f\u56db", "meridiem": "\u4e0a\u5348", "time": "10:29:41", "content": "\u4e3a\u4e86\u514b\u670d\u4fe1\u606f\u4e0d\u5bf9\u79f0\uff0c\u5efa\u7acb\u4e92\u4fe1\uff0c\u4eba\u7c7b\u793e\u4f1a\u6784\u60f3\u51fa\u4e86\u5404\u79cd\u5404\u6837\u6709\u8da3\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u4ece\u91cd\u590d\u4ea4\u6613\u5230\u7b2c\u4e09\u65b9\u80cc\u4e66\uff0c\u4ece\u8d28\u4fdd\u3001\u5ef6\u4fdd\uff0c\u518d\u5230\u6536\u76ca\u5171\u4eab\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u4e09\u79cd\u975e\u5e38\u63a5\u8fd1\u7684\u5efa\u7acb\u4fe1\u4efb\u7684\u529e\u6cd5\uff1a\u4ed8\u51fa\u6c89\u6ca1\u6210\u672c\u3001\u7ed9\u51fa\u4eba\u8d28\u6216\u8005\u7ed9\u51fa\u62b5\u62bc\u3002"}, "lines": 4}} \ No newline at end of file