OSDN Git Service

Merge Hiroshi's language changes into development branch.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / filters / NoteSortFilterProxyModel.java
index 9a46f94..9a49fe5 100644 (file)
@@ -23,6 +23,7 @@ import java.util.HashMap;
 import java.util.Map;\r
 \r
 import com.trolltech.qt.core.QAbstractItemModel;\r
+import com.trolltech.qt.core.QDateTime;\r
 import com.trolltech.qt.core.QModelIndex;\r
 import com.trolltech.qt.core.QObject;\r
 import com.trolltech.qt.gui.QSortFilterProxyModel;\r
@@ -31,11 +32,14 @@ import cx.fbn.nevernote.Global;
 \r
 public class NoteSortFilterProxyModel extends QSortFilterProxyModel {\r
        private final Map<String,String> guids;\r
+       private String dateFormat;\r
        \r
        public NoteSortFilterProxyModel(QObject parent) {\r
                super(parent);\r
                guids = new HashMap<String,String>();\r
+               dateFormat = Global.getDateFormat() + " " + Global.getTimeFormat();\r
                setDynamicSortFilter(true);\r
+//             logger = new ApplicationLogger("filter.log");\r
        }\r
        public void clear() {\r
                guids.clear();\r
@@ -45,6 +49,7 @@ public class NoteSortFilterProxyModel extends QSortFilterProxyModel {
                        guids.put(guid, null);\r
        }\r
        public void filter() {\r
+               dateFormat = Global.getDateFormat() + " " + Global.getTimeFormat();\r
                invalidateFilter();\r
        }\r
        @Override\r
@@ -63,14 +68,15 @@ public class NoteSortFilterProxyModel extends QSortFilterProxyModel {
        \r
        @Override\r
        protected boolean lessThan(QModelIndex left, QModelIndex right) {\r
-               \r
                Object leftData = sourceModel().data(left);\r
                Object rightData = sourceModel().data(right);\r
                \r
-               if (leftData instanceof Long && rightData instanceof Long) {\r
-                       Long leftLong = (Long)leftData;\r
-                       Long rightLong = (Long)rightData;\r
-                       return leftLong.compareTo(rightLong) < 0;\r
+               if (sortColumn() == Global.noteTableCreationPosition || \r
+                               sortColumn() == Global.noteTableChangedPosition ||\r
+                               sortColumn() == Global.noteTableSubjectDatePosition) {\r
+                       QDateTime leftDate = QDateTime.fromString(leftData.toString(), dateFormat);\r
+                       QDateTime rightDate = QDateTime.fromString(rightData.toString(), dateFormat);\r
+                       return leftDate.compareTo(rightDate) < 0;\r
                }\r
                if (leftData instanceof String && rightData instanceof String) {\r
                        String leftString = (String)leftData;\r