OSDN Git Service

Performance improvements when switching notebooks or selecting tags by removing the...
authorRandy Baumgarte <randy@fbn.cx>
Wed, 18 Aug 2010 12:36:04 +0000 (08:36 -0400)
committerRandy Baumgarte <randy@fbn.cx>
Sun, 22 Aug 2010 22:47:51 +0000 (18:47 -0400)
src/cx/fbn/nevernote/NeverNote.java
src/cx/fbn/nevernote/gui/ContainsAttributeFilterTable.java
src/cx/fbn/nevernote/gui/DateAttributeFilterTable.java
src/cx/fbn/nevernote/gui/TableView.java
src/cx/fbn/nevernote/sql/NoteTable.java
src/cx/fbn/nevernote/utilities/ListManager.java

index 1f3ca33..4e01def 100644 (file)
@@ -393,7 +393,6 @@ public class NeverNote extends QMainWindow{
                        saveTimer.start();
                }
                
-//             Global.trace();
                logger.log(logger.EXTREME, "Starting external file monitor timer");
                externalFileSaveTimer = new QTimer();
                externalFileSaveTimer.timeout.connect(this, "externalFileEditedSaver()");
@@ -957,7 +956,6 @@ public class NeverNote extends QMainWindow{
                        clearTagFilter();
                        searchField.clear();
                }
-               
                menuBar.noteRestoreAction.setVisible(false);            
        menuBar.notebookEditAction.setEnabled(true);
        menuBar.notebookDeleteAction.setEnabled(true);
index f6e443e..ade50e2 100644 (file)
@@ -62,6 +62,14 @@ public class ContainsAttributeFilterTable {
                return table.size();\r
        }\r
        \r
+       public boolean hasSelection() {\r
+               for (int i=0; i<table.size(); i++) {\r
+                       if (table.get(i).isSet() == true)\r
+                               return true;\r
+               }\r
+               return false;\r
+       }\r
+       \r
        public boolean check(NoteTable sqlTable, Note n) {\r
                boolean result = true;\r
                \r
index 57bfdf5..3580541 100644 (file)
@@ -67,6 +67,14 @@ public class DateAttributeFilterTable {
                        table.get(i).set(false);\r
        }\r
        \r
+       public boolean hasSelection() {\r
+               for (int i=0; i<table.size(); i++) {\r
+                       if (table.get(i).isSet() == true)\r
+                               return true;\r
+               }\r
+               return false;\r
+       }\r
+       \r
        public void select(String name) {\r
                for (int i=0; i<table.size(); i++) \r
                        if (table.get(i).getName().equals(name))\r
index 25c43cf..2a88ad0 100644 (file)
@@ -140,6 +140,8 @@ public class TableView extends QTableView {
        public void load(boolean reload) {\r
                proxyModel.clear();\r
                setSortingEnabled(false);\r
+               QFontMetrics f = QApplication.fontMetrics();\r
+               verticalHeader().setDefaultSectionSize(f.height());\r
                for (int i=0; i<runner.getNoteIndex().size(); i++) {\r
                        if (Global.showDeleted == true && !runner.getNoteIndex().get(i).isActive())\r
                                proxyModel.addGuid(runner.getNoteIndex().get(i).getGuid());\r
@@ -151,13 +153,6 @@ public class TableView extends QTableView {
                        logger.log(logger.EXTREME, "TableView.load() reload starting.");\r
                        proxyModel.filter();\r
                        logger.log(logger.EXTREME, "TableView.load() leaving reload.");\r
-                       QFontMetrics f = QApplication.fontMetrics();\r
-                       fontHeight = f.height();\r
-                       for (int i=0; i<runner.getNoteTableModel().rowCount(); i++)\r
-                               setRowHeight(i, fontHeight);\r
-                       proxyModel.invalidate();\r
-                       setSortingEnabled(true);\r
-                       resetViewport.emit();\r
                        return;\r
                }\r
                logger.log(logger.EXTREME, "TableView.load() Filling table data from scratch");\r
@@ -229,11 +224,6 @@ public class TableView extends QTableView {
 \r
                proxyModel.filter();\r
                \r
-               QFontMetrics f = QApplication.fontMetrics();\r
-               fontHeight = f.height();\r
-               for (int i=0; i<runner.getNoteTableModel().rowCount(); i++)\r
-                       setRowHeight(i, fontHeight);\r
-               \r
                setSortingEnabled(true);\r
                resetViewport.emit();\r
        }\r
@@ -445,5 +435,4 @@ public class TableView extends QTableView {
         return verticalScrollBar().value();\r
     }\r
 */\r
-       \r
 }\r
index 3ab759d..6ee42cb 100644 (file)
@@ -499,7 +499,7 @@ public class NoteTable {
                }\r
        }\r
 \r
-       \r
+/*     \r
        // Check a note to see if it passes the attribute selection criteria\r
        public boolean checkAttributeSelection(Note n) {\r
                if (Global.createdSinceFilter.check(n) &&\r
@@ -511,6 +511,7 @@ public class NoteTable {
                \r
                return false;\r
        }\r
+*/\r
        // Delete a note\r
        public void deleteNote(String guid) {\r
         NSqlQuery query = new NSqlQuery(db.getConnection());\r
index ed8d88a..e580d5c 100644 (file)
@@ -824,7 +824,6 @@ public class ListManager  {
                        Note n = matches.get(i);\r
                        boolean goodNotebook = false;\r
                        boolean goodTag = false;\r
-                       boolean goodAttribute = false;\r
                        boolean goodStatus = false;\r
                        \r
                        // Check note status\r
@@ -838,10 +837,41 @@ public class ListManager  {
                                        goodNotebook = filterByNotebook(n.getNotebookGuid());\r
                                if (goodNotebook) \r
                                        goodTag = filterByTag(n.getTagGuids());\r
-                               if (goodTag)\r
-                                       goodAttribute = conn.getNoteTable().checkAttributeSelection(n);\r
-                               if (goodAttribute)\r
-                                       index.add(n);\r
+                               if (goodTag) {\r
+                                       boolean goodCreatedBefore = false;\r
+                                       boolean goodCreatedSince = false;\r
+                                       boolean goodChangedBefore = false;\r
+                                       boolean goodChangedSince = false;\r
+                                       boolean goodContains = false;\r
+                                       \r
+                                       if (!Global.createdBeforeFilter.hasSelection())\r
+                                               goodCreatedBefore = true;\r
+                                       else\r
+                                               goodCreatedBefore = Global.createdBeforeFilter.check(n);\r
+                                       \r
+                                       if (!Global.createdSinceFilter.hasSelection())\r
+                                               goodCreatedSince = true;\r
+                                       else\r
+                                               goodCreatedSince = Global.createdSinceFilter.check(n);\r
+                                       \r
+                                       if (!Global.changedBeforeFilter.hasSelection())\r
+                                               goodChangedBefore = true;\r
+                                       else\r
+                                               goodChangedBefore = Global.changedBeforeFilter.check(n);\r
+\r
+                                       if (!Global.changedSinceFilter.hasSelection())\r
+                                               goodChangedSince = true;\r
+                                       else\r
+                                               goodChangedSince = Global.changedSinceFilter.check(n);\r
+\r
+                                       if (!Global.containsFilter.hasSelection())\r
+                                               goodContains = true;\r
+                                       else\r
+                                               goodContains = Global.containsFilter.check(conn.getNoteTable(), n);\r
+                                       \r
+                                       if (goodCreatedSince && goodCreatedBefore && goodChangedSince && goodChangedBefore && goodContains)\r
+                                               index.add(n);\r
+                               }\r
                        }\r
 \r
                }       \r