X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=src%2Fcx%2Ffbn%2Fnevernote%2Futilities%2FListManager.java;h=3ed00399f4328435613cd9155d5df52d05144d57;hb=d3224704f464d7b6bc601565d276184ee8e722bc;hp=90c3fcc08d814ae73ae5a764abaf5969089f2ac6;hpb=449cdb375dd2d2be9669717bfeab24f82850651a;p=neighbornote%2FNeighborNote.git diff --git a/src/cx/fbn/nevernote/utilities/ListManager.java b/src/cx/fbn/nevernote/utilities/ListManager.java index 90c3fcc..3ed0039 100644 --- a/src/cx/fbn/nevernote/utilities/ListManager.java +++ b/src/cx/fbn/nevernote/utilities/ListManager.java @@ -28,12 +28,15 @@ import java.util.HashMap; import java.util.List; import java.util.Vector; +import com.evernote.edam.type.LinkedNotebook; import com.evernote.edam.type.Note; import com.evernote.edam.type.Notebook; import com.evernote.edam.type.SavedSearch; import com.evernote.edam.type.Tag; import com.trolltech.qt.QThread; import com.trolltech.qt.core.QDateTime; +import com.trolltech.qt.gui.QImage; +import com.trolltech.qt.gui.QPixmap; import com.trolltech.qt.sql.QSqlQuery; import com.trolltech.qt.xml.QDomAttr; import com.trolltech.qt.xml.QDomDocument; @@ -67,6 +70,8 @@ public class ListManager { private List notebookIndex; private List archiveNotebookIndex; private List localNotebookIndex; + + private List linkedNotebookIndex; private List searchIndex; @@ -95,15 +100,19 @@ public class ListManager { public HashMap wordMap; public TagSignal tagSignal; public NotebookSignal notebookSignal; + public boolean refreshCounters; // Used to control when to recount lists private int trashCount; public SaveRunner saveRunner; // Thread used to save content. Used because the xml conversion is slowwwww - QThread saveThread; + QThread saveThread; +// private final HashMap thumbnailList; + // Constructor public ListManager(DatabaseConnection d, ApplicationLogger l) { conn = d; logger = l; - + + conn.getTagTable().cleanupTags(); status = new StatusSignal(); signals = new ThreadSignal(); @@ -121,35 +130,49 @@ public class ListManager { reloadIndexes(); notebookSignal = new NotebookSignal(); - notebookCounterRunner = new CounterRunner("notebook_counter.log", CounterRunner.NOTEBOOK, Global.getDatabaseUrl(), Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); + notebookCounterRunner = new CounterRunner("notebook_counter.log", CounterRunner.NOTEBOOK, + Global.getDatabaseUrl(), Global.getIndexDatabaseUrl(), Global.getResourceDatabaseUrl(), + Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); notebookCounterRunner.setNoteIndex(getNoteIndex()); notebookCounterRunner.notebookSignal.countsChanged.connect(this, "setNotebookCounter(List)"); notebookThread = new QThread(notebookCounterRunner, "Notebook Counter Thread"); notebookThread.start(); tagSignal = new TagSignal(); - tagCounterRunner = new CounterRunner("tag_counter.log", CounterRunner.TAG, Global.getDatabaseUrl(), Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); + tagCounterRunner = new CounterRunner("tag_counter.log", CounterRunner.TAG, + Global.getDatabaseUrl(), Global.getIndexDatabaseUrl(), Global.getResourceDatabaseUrl(), + Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); tagCounterRunner.setNoteIndex(getNoteIndex()); tagCounterRunner.tagSignal.countsChanged.connect(this, "setTagCounter(List)"); tagThread = new QThread(tagCounterRunner, "Tag Counter Thread"); tagThread.start(); trashSignal = new TrashSignal(); - trashCounterRunner = new CounterRunner("trash_counter.log", CounterRunner.TRASH, Global.getDatabaseUrl(), Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); + trashCounterRunner = new CounterRunner("trash_counter.log", CounterRunner.TRASH, + Global.getDatabaseUrl(), Global.getIndexDatabaseUrl(), Global.getResourceDatabaseUrl(), + Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); trashCounterRunner.trashSignal.countChanged.connect(this, "trashSignalReceiver(Integer)"); trashThread = new QThread(trashCounterRunner, "Trash Counter Thread"); trashThread.start(); - reloadTrashCount(); +// reloadTrashCount(); wordMap = new HashMap(); tagSignal = new TagSignal(); logger.log(logger.EXTREME, "Setting save thread"); - saveRunner = new SaveRunner("saveRunner.log", Global.getDatabaseUrl(), Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); + saveRunner = new SaveRunner("saveRunner.log", + Global.getDatabaseUrl(), Global.getIndexDatabaseUrl(), Global.getResourceDatabaseUrl(), + Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword); saveThread = new QThread(saveRunner, "Save Runner Thread"); saveThread.start(); - + +// thumbnailList = conn.getNoteTable().getThumbnails(); +// thumbnailList = new HashMap(); + + linkedNotebookIndex = conn.getLinkedNotebookTable().getAll(); loadNoteTitleColors(); + refreshCounters = true; + refreshCounters(); } @@ -188,7 +211,6 @@ public class ListManager { e.printStackTrace(); } - } //*************************************************************** @@ -233,9 +255,14 @@ public class ListManager { setUnsynchronizedNotes(conn.getNoteTable().getUnsynchronizedGUIDs()); + linkedNotebookIndex = conn.getLinkedNotebookTable().getAll(); + enSearchChanged = true; } + public void reloadTagIndex() { + setTagIndex(conn.getTagTable().getAll()); + } public void reloadIndexes() { setUnsynchronizedNotes(conn.getNoteTable().getUnsynchronizedGUIDs()); @@ -244,8 +271,7 @@ public class ListManager { for (int i=0; i getSelectedNotebooks() { return selectedNotebooks; } @@ -334,6 +360,9 @@ public class ListManager { return notebookIndex; } + public List getLinkedNotebookIndex() { + return linkedNotebookIndex; + } public List getArchiveNotebookIndex() { return archiveNotebookIndex; } @@ -382,14 +411,39 @@ public class ListManager { public List getMasterNoteIndex() { return noteModel.getMasterNoteIndex(); } - + // Thumbnails +// public HashMap getThumbnails() { +// return thumbnailList; +// } + public QImage getThumbnail(String guid) { +// if (getThumbnails().containsKey(guid)) +// return getThumbnails().get(guid); + + QImage img = new QImage(); + img = QImage.fromData(conn.getNoteTable().getThumbnail(guid)); + if (img == null || img.isNull()) + return null; + //getThumbnails().put(guid, img); + return img; + } + public QPixmap getThumbnailPixmap(String guid) { +// if (getThumbnails().containsKey(guid)) +// return getThumbnails().get(guid); + + QPixmap img = new QPixmap(); + img.loadFromData(conn.getNoteTable().getThumbnail(guid)); + if (img == null || img.isNull()) + return null; + //getThumbnails().put(guid, img); + return img; + } //*************************************************************** //*************************************************************** //** These functions deal with setting & retrieving filters //*************************************************************** //*************************************************************** public void setEnSearch(String t) { - enSearch = new EnSearch(conn,logger, t, getTagIndex(), Global.getMinimumWordLength(), Global.getRecognitionWeight()); + enSearch = new EnSearch(conn,logger, t, getTagIndex(), Global.getRecognitionWeight()); enSearchChanged = true; } // Save search tags @@ -765,6 +819,15 @@ public class ListManager { } conn.getNotebookTable().expungeNotebook(guid, true); } + // Rename a stack + public void renameStack(String oldName, String newName) { + for (int i=0; i matches; if (enSearchChanged || getMasterNoteIndex() == null) @@ -905,38 +994,35 @@ public class ListManager { if (filterRecord(matches.get(i))) getNoteIndex().add(matches.get(i)); } - countNotebookResults(getNoteIndex()); - countTagResults(getNoteIndex()); + refreshCounters = true; enSearchChanged = false; - reloadTrashCount(); logger.log(logger.EXTREME, "Leaving ListManager.loadNotesIndex()"); } public void countNotebookResults(List index) { logger.log(logger.EXTREME, "Entering ListManager.countNotebookResults()"); - if (!Global.mimicEvernoteInterface) { + notebookCounterRunner.abortCount = true; + if (!Global.mimicEvernoteInterface) notebookCounterRunner.setNoteIndex(index); - notebookCounterRunner.release(CounterRunner.NOTEBOOK); - } else { + else notebookCounterRunner.setNoteIndex(getMasterNoteIndex()); - notebookCounterRunner.release(CounterRunner.NOTEBOOK_ALL); - } + notebookCounterRunner.release(CounterRunner.NOTEBOOK); logger.log(logger.EXTREME, "Leaving ListManager.countNotebookResults()"); } public void countTagResults(List index) { logger.log(logger.EXTREME, "Entering ListManager.countTagResults"); - if (!Global.tagBehavior().equalsIgnoreCase("DoNothing")) { + trashCounterRunner.abortCount = true; + if (!Global.tagBehavior().equalsIgnoreCase("DoNothing")) tagCounterRunner.setNoteIndex(index); - tagCounterRunner.release(CounterRunner.TAG); - } else { - tagCounterRunner.setNoteIndex(null); - tagCounterRunner.release(CounterRunner.TAG_ALL); - } + else + tagCounterRunner.setNoteIndex(getMasterNoteIndex()); + tagCounterRunner.release(CounterRunner.TAG); logger.log(logger.EXTREME, "Leaving ListManager.countTagResults()"); } // Update the count of items in the trash public void reloadTrashCount() { logger.log(logger.EXTREME, "Entering ListManager.reloadTrashCount"); - trashCounterRunner.setNoteIndex(getNoteIndex()); + trashCounterRunner.abortCount = true; + trashCounterRunner.setNoteIndex(getMasterNoteIndex()); trashCounterRunner.release(CounterRunner.TRASH); logger.log(logger.EXTREME, "Leaving ListManager.reloadTrashCount"); } @@ -963,15 +1049,26 @@ public class ListManager { if (selectedTags.size() == 0) return true; - for (int i=0; i