Skip to content

Commit b6b2610

Browse files
committed
add skip info into progress window.
1 parent e576d24 commit b6b2610

File tree

3 files changed

+37
-25
lines changed

3 files changed

+37
-25
lines changed

src/fastwq/lang.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
['FORCE_UPDATE', u'强制更新字段', u'Force Update Fields'],
5959
['IGNORE_ACCENTS', u'忽略声调', u'Ignore Accents'],
6060
['SKIP_VALUED', u'跳过有值项', u'Skip Valued'],
61+
['SKIPED', u'略过', 'Skip'],
6162
['SETTINGS', u'参数', u'Settings'],
6263
['THREAD_NUMBER', u'线程数', u'Thread Number'],
6364
['INITLIZING_DICT', u'初始化词典...', u'Initlizing Dictionary...'],

src/fastwq/progress.py

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,27 @@
2121
import time
2222
from collections import defaultdict
2323

24-
from aqt.qt import *
24+
from PyQt4 import QtCore, QtGui
2525
from .lang import _
2626

2727

28+
INFO_TEMPLATE = u''.join([
29+
_('QUERIED') + u'<br>' + 45 * u'-' + u'<br>',
30+
_('SUCCESS') + u' {} ' + _('WORDS') + u'<br>',
31+
_('SKIPED') + u' {} ' + _('WORDS') + u'<br>',
32+
_('UPDATE') + u' {} ' + _('FIELDS') + u'<br>',
33+
_('FAILURE') + u' {} ' + _('WORDS') + u'<br>'
34+
])
35+
36+
2837
class ProgressWindow(object):
2938
"""
3039
Query progress window
3140
"""
3241

3342
def __init__(self, mw):
3443
self.mw = mw
35-
self.app = QApplication.instance()
44+
self.app = QtGui.QApplication.instance()
3645
self._win = None
3746
self._msg_count = defaultdict(int)
3847

@@ -45,22 +54,20 @@ def update_labels(self, data):
4554
else:
4655
return
4756

48-
number_info = ''
49-
words_number, fields_number, fails_number = (
50-
self._msg_count['words_number'],
51-
self._msg_count['fields_number'],
52-
self._msg_count['fails_number']
57+
words_number, fields_number, fails_number, skips_number = (
58+
self._msg_count.get('words_number', 0),
59+
self._msg_count.get('fields_number', 0),
60+
self._msg_count.get('fails_number', 0),
61+
self._msg_count.get('skips_number', 0)
5362
)
54-
if words_number or fields_number:
55-
number_info += _('QUERIED') + u'<br>' + 45 * u'-'
56-
number_info += u'<br>{0}: {1} {2}'.format(
57-
_('SUCCESS'), words_number, _('WORDS'))
58-
number_info += u'<br>{0}: {1} {2}'.format(
59-
_('UPDATE'), fields_number, _('FIELDS'))
60-
number_info += u'<br>{0}: {1} {2}'.format(
61-
_('FAILURE'), fails_number, _('WORDS'))
62-
63-
self._update(label=number_info, value=words_number)
63+
number_info = INFO_TEMPLATE.format(
64+
words_number,
65+
skips_number,
66+
fields_number,
67+
fails_number
68+
)
69+
70+
self._update(label=number_info, value=words_number+skips_number+fails_number)
6471
self._win.adjustSize()
6572

6673
def update_title(self, title):
@@ -73,8 +80,8 @@ def start(self, max=0, min=0, label=None, parent=None):
7380
# setup window
7481
label = label or _("Processing...")
7582
parent = parent or self.app.activeWindow() or self.mw
76-
self._win = QProgressDialog(label, '', min, max, parent)
77-
self._win.setWindowModality(Qt.ApplicationModal)
83+
self._win = QtGui.QProgressDialog(label, '', min, max, parent)
84+
self._win.setWindowModality(QtCore.Qt.ApplicationModal)
7885
self._win.setCancelButton(None)
7986
self._win.canceled.connect(self.finish)
8087
self._win.setWindowTitle("Querying...")
@@ -107,12 +114,12 @@ def _update(self, label=None, value=None, process=True, maybeShow=True):
107114
self._counter = value or (self._counter + 1)
108115
self._win.setValue(self._counter)
109116
if process and elapsed >= 0.2:
110-
self.app.processEvents(QEventLoop.ExcludeUserInputEvents)
117+
self.app.processEvents(QtCore.QEventLoop.ExcludeUserInputEvents)
111118
self._lastUpdate = time.time()
112119

113120
def _setBusy(self):
114121
self._disabled = True
115-
self.mw.app.setOverrideCursor(QCursor(Qt.WaitCursor))
122+
self.mw.app.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))
116123

117124
def _unsetBusy(self):
118125
self._disabled = False

src/fastwq/query.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def __init__(self):
118118
self.counter = 0
119119
self.fails = 0
120120
self.fields = 0
121+
self.skips = 0
121122
self.missed_css = list()
122123

123124
def get_worker(self):
@@ -143,8 +144,10 @@ def update(self, note, results, success_num, missed_css):
143144
self.mutex.lock()
144145
if success_num > 0:
145146
self.counter += 1
146-
else:
147+
elif success_num == 0:
147148
self.fails += 1
149+
else:
150+
self.skips += 1
148151
val = update_note_fields(note, results)
149152
self.fields += val
150153
self.missed_css += missed_css
@@ -165,6 +168,7 @@ def join(self):
165168
self.progress.update_labels(MapDict(
166169
type='count',
167170
words_number = self.counter,
171+
skips_number = self.skips,
168172
fails_number = self.fails,
169173
fields_number = self.fields))
170174
mw.app.processEvents()
@@ -370,7 +374,7 @@ def query_all_flds(note):
370374
continue
371375
#skip valued
372376
skip = each.get('skip_valued', False)
373-
if skip and not note.fields[i]:
377+
if skip and len(note.fields[i]) != 0:
374378
continue
375379
#normal
376380
dict_name = each.get('dict', '').strip()
@@ -397,7 +401,7 @@ def query_all_flds(note):
397401
#except:
398402
# showInfo(_("NO_QUERY_WORD"))
399403
# pass
400-
404+
401405
missed_css = list()
402406
for service in services.values():
403407
if isinstance(service, LocalService):
@@ -409,4 +413,4 @@ def query_all_flds(note):
409413
})
410414
service_pool.put(service)
411415

412-
return result, success_num, missed_css
416+
return result, -1 if len(tasks) == 0 else success_num, missed_css

0 commit comments

Comments
 (0)