paperbox r206 - in trunk: . src



Author: markoa
Date: Wed Oct 15 18:41:14 2008
New Revision: 206
URL: http://svn.gnome.org/viewvc/paperbox?rev=206&view=rev

Log:
On category and tag selection, sort too

Modified:
   trunk/ChangeLog
   trunk/src/main-window.cc
   trunk/src/main-window.hh

Modified: trunk/src/main-window.cc
==============================================================================
--- trunk/src/main-window.cc	(original)
+++ trunk/src/main-window.cc	Wed Oct 15 18:41:14 2008
@@ -386,6 +386,7 @@
             }
         }
 
+        sort_documents(docs);
         render_documents(docs);
 
         return true;
@@ -512,6 +513,7 @@
     {
         vector<shared_ptr<Document> > docs;
         browser_->get_documents_for_tag(tag, docs);
+        sort_documents(docs);
 
         tile_view_->reset_selection();
         render_new_tile_set(docs);
@@ -549,18 +551,11 @@
 
         tile_view_->get_displayed_documents(docs);
 
-        if (sorting == BROWSING_ALPHABETICAL) {
-            browser_->sort_documents(docs,
-                                        DOCUMENT_SORTING_ALPHABETICAL);
-        } else if (sorting == BROWSING_BY_DATE_ASC) {
-            browser_->sort_documents(docs,
-                                        DOCUMENT_SORTING_BY_DATE_ASC);
-        } else if (sorting == BROWSING_BY_DATE_DESC) {
-            browser_->sort_documents(docs,
-                                        DOCUMENT_SORTING_BY_DATE_DESC);
-        } else if (sorting == BROWSING_DAY_BY_DAY) {
+        if (sorting == BROWSING_DAY_BY_DAY) {
             //TODO
             return;
+        } else {
+            sort_documents(docs);
         }
 
         render_documents(docs);
@@ -578,4 +573,24 @@
         sorting_hbox_.show_all();
     }
 
+    // When we retrieve a list of documents from Browser after a certain
+    // category or tag has been selected, we need to sort them based on
+    // user's current sorting/browsing preference, if any.
+    void
+    MainWindow::sort_documents(doc_vector& docs)
+    {
+        int sorting = sorting_combo_.get_active_row_number();
+
+        if (sorting == BROWSING_ALPHABETICAL) {
+            browser_->sort_documents(docs,
+                                     DOCUMENT_SORTING_ALPHABETICAL);
+        } else if (sorting == BROWSING_BY_DATE_ASC) {
+            browser_->sort_documents(docs,
+                                     DOCUMENT_SORTING_BY_DATE_ASC);
+        } else if (sorting == BROWSING_BY_DATE_DESC) {
+            browser_->sort_documents(docs,
+                                     DOCUMENT_SORTING_BY_DATE_DESC);
+        }
+    }
+
 } // namespace paperbox

Modified: trunk/src/main-window.hh
==============================================================================
--- trunk/src/main-window.hh	(original)
+++ trunk/src/main-window.hh	Wed Oct 15 18:41:14 2008
@@ -104,6 +104,8 @@
         void hide_widgets_in_retrieval();
         void show_widgets_after_retrieval();
 
+        void sort_documents(std::vector<boost::shared_ptr<Document> >& docs);
+
         /*** Members ***/
         Browser* browser_;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]