public HashMap<String, String> wordMap;\r
public TagSignal tagSignal;\r
public NotebookSignal notebookSignal;\r
+ public boolean refreshCounters; // Used to control when to recount lists\r
private int trashCount;\r
public SaveRunner saveRunner; // Thread used to save content. Used because the xml conversion is slowwwww\r
QThread saveThread;\r
trashCounterRunner.trashSignal.countChanged.connect(this, "trashSignalReceiver(Integer)");\r
trashThread = new QThread(trashCounterRunner, "Trash Counter Thread");\r
trashThread.start();\r
- reloadTrashCount();\r
+// reloadTrashCount();\r
\r
wordMap = new HashMap<String, String>();\r
tagSignal = new TagSignal();\r
\r
linkedNotebookIndex = conn.getLinkedNotebookTable().getAll();\r
loadNoteTitleColors();\r
+ refreshCounters = true;\r
+ refreshCounters();\r
\r
}\r
\r
}\r
\r
public void reloadTagIndex() {\r
- conn.getTagTable().cleanupTags();\r
+// conn.getTagTable().cleanupTags();\r
setTagIndex(conn.getTagTable().getAll()); \r
}\r
public void reloadIndexes() {\r
return false;\r
}\r
\r
- // Load the note index based upon what the user wants.\r
- public void loadNotesIndex() {\r
- logger.log(logger.EXTREME, "Entering ListManager.loadNotesIndex()");\r
+ // Trigger a recount of counters\r
+ public void refreshCounters() {\r
+// refreshCounters= false;\r
+ if (!refreshCounters)\r
+ return;\r
+ refreshCounters = false;\r
tagCounterRunner.abortCount = true;\r
notebookCounterRunner.abortCount = true;\r
trashCounterRunner.abortCount = true;\r
+ countNotebookResults(getNoteIndex());\r
+ countTagResults(getNoteIndex());\r
+ reloadTrashCount();\r
+\r
+ }\r
+ // Load the note index based upon what the user wants.\r
+ public void loadNotesIndex() {\r
+ logger.log(logger.EXTREME, "Entering ListManager.loadNotesIndex()");\r
\r
List<Note> matches;\r
if (enSearchChanged || getMasterNoteIndex() == null)\r
if (filterRecord(matches.get(i)))\r
getNoteIndex().add(matches.get(i));\r
}\r
- countNotebookResults(getNoteIndex());\r
- countTagResults(getNoteIndex());\r
+ refreshCounters = true;\r
enSearchChanged = false;\r
- reloadTrashCount();\r
logger.log(logger.EXTREME, "Leaving ListManager.loadNotesIndex()");\r
}\r
public void countNotebookResults(List<Note> index) {\r
logger.log(logger.EXTREME, "Entering ListManager.countNotebookResults()");\r
- if (!Global.mimicEvernoteInterface) {\r
+ notebookCounterRunner.abortCount = true;\r
+ if (!Global.mimicEvernoteInterface) \r
notebookCounterRunner.setNoteIndex(index);\r
- notebookCounterRunner.release(CounterRunner.NOTEBOOK);\r
- } else {\r
+ else \r
notebookCounterRunner.setNoteIndex(getMasterNoteIndex());\r
- notebookCounterRunner.release(CounterRunner.NOTEBOOK_ALL);\r
- }\r
+ notebookCounterRunner.release(CounterRunner.NOTEBOOK);\r
logger.log(logger.EXTREME, "Leaving ListManager.countNotebookResults()");\r
}\r
public void countTagResults(List<Note> index) {\r
logger.log(logger.EXTREME, "Entering ListManager.countTagResults");\r
- if (!Global.tagBehavior().equalsIgnoreCase("DoNothing")) {\r
+ trashCounterRunner.abortCount = true;\r
+ if (!Global.tagBehavior().equalsIgnoreCase("DoNothing")) \r
tagCounterRunner.setNoteIndex(index);\r
- tagCounterRunner.release(CounterRunner.TAG);\r
- } else {\r
- tagCounterRunner.setNoteIndex(null);\r
- tagCounterRunner.release(CounterRunner.TAG_ALL);\r
- }\r
+ else\r
+ tagCounterRunner.setNoteIndex(getMasterNoteIndex());\r
+ tagCounterRunner.release(CounterRunner.TAG);\r
logger.log(logger.EXTREME, "Leaving ListManager.countTagResults()");\r
}\r
// Update the count of items in the trash\r
public void reloadTrashCount() {\r
logger.log(logger.EXTREME, "Entering ListManager.reloadTrashCount");\r
+ trashCounterRunner.abortCount = true;\r
trashCounterRunner.setNoteIndex(getNoteIndex());\r
trashCounterRunner.release(CounterRunner.TRASH);\r
logger.log(logger.EXTREME, "Leaving ListManager.reloadTrashCount");\r
if (selectedTags.size() == 0) \r
return true;\r
\r
- for (int i=0; i<selectedTags.size(); i++) {\r
- String selectedGuid = selectedTags.get(i);\r
- if (noteTags.contains(selectedGuid))\r
- return true;\r
+ if (!Global.anyTagSelectionMatch()) {\r
+ for (int i=0; i<selectedTags.size(); i++) {\r
+ String selectedGuid = selectedTags.get(i);\r
+ if (!noteTags.contains(selectedGuid))\r
+ return false;\r
+ }\r
+ return true;\r
+ } else {\r
+ for (int i=0; i<selectedTags.size(); i++) {\r
+ String selectedGuid = selectedTags.get(i);\r
+ if (noteTags.contains(selectedGuid))\r
+ return true;\r
+ }\r
+ return false;\r
}\r
- return false;\r
}\r
\r
public void setNoteSynchronized(String guid, boolean value) {\r