Changeset 4e250df417f3de29fc2cf826a93cb136ee515780
- Timestamp:
- 11/07/09 17:04:47 (4 years ago)
- git-author:
- Gabríel A. Pétursson <gabrielp@simnet.is> / 2009-11-07T17:04:47Z+0100
- Parents:
- aeee99c57e344cc454862664af4e14e70059fa24
- Children:
- 1c0f9eaecee4addf07208e81f777f28e409cbfe7
- git-committer:
- Armin Burgmeier <armin@arbur.net> / 2009-11-07T17:04:47Z+0100
- Files:
-
- 4 modified
-
ChangeLog (modified) (1 diff)
-
code/commands/file-commands.cpp (modified) (2 diffs)
-
code/core/browser.cpp (modified) (8 diffs)
-
code/core/browser.hpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ChangeLog
raeee99c r4e250df 1 2009-11-07 GabrÃel A. Pétursson <gabrielp@simnet.is> 2 3 * code/commands/file-commands.cpp: 4 * code/core/browser.hpp: 5 * code/core/browser.cpp: Alphabetical sorting of directory and file 6 names. 7 1 8 2009-11-06 Armin Burgmeier <armin@arbur.net> 2 9 -
code/commands/file-commands.cpp
rb24d6e3 r4e250df 127 127 sigc::mem_fun(*this, &FileCommands::on_document_changed)); 128 128 129 InfGtkBrowser Store* store = browser.get_store();129 InfGtkBrowserModelSort* store = browser.get_store(); 130 130 m_row_inserted_handler = 131 131 g_signal_connect(G_OBJECT(store), "row-inserted", … … 140 140 Gobby::FileCommands::~FileCommands() 141 141 { 142 InfGtkBrowser Store* store = m_browser.get_store();142 InfGtkBrowserModelSort* store = m_browser.get_store(); 143 143 g_signal_handler_disconnect(G_OBJECT(store), m_row_inserted_handler); 144 144 g_signal_handler_disconnect(G_OBJECT(store), m_row_deleted_handler); -
code/core/browser.cpp
r6cbb77d r4e250df 31 31 #endif 32 32 33 gint compare_func(GtkTreeModel* model, GtkTreeIter* first, GtkTreeIter* second, gpointer user_data) 34 { 35 gint result = 0; 36 InfcBrowser* br_one; 37 InfcBrowser* br_two; 38 InfcBrowserIter* bri_one; 39 InfcBrowserIter* bri_two; 40 GtkTreeIter parent; 41 42 /* Don't sort top level */ 43 if(!gtk_tree_model_iter_parent(model, &parent, first)) 44 { 45 g_assert(!gtk_tree_model_iter_parent(model, &parent, second)); 46 return 0; 47 } 48 49 gtk_tree_model_get(model, first, INF_GTK_BROWSER_MODEL_COL_BROWSER, &br_one, INF_GTK_BROWSER_MODEL_COL_NODE, &bri_one, -1); 50 gtk_tree_model_get(model, second, INF_GTK_BROWSER_MODEL_COL_BROWSER, &br_two, INF_GTK_BROWSER_MODEL_COL_NODE, &bri_two, -1); 51 52 if (infc_browser_iter_is_subdirectory(br_one, bri_one) && !infc_browser_iter_is_subdirectory(br_two, bri_two)) 53 result = -1; 54 else if (!infc_browser_iter_is_subdirectory(br_one, bri_one) && infc_browser_iter_is_subdirectory(br_two, bri_two)) 55 result = 1; 56 else 57 { 58 gchar* name_one; 59 gchar* name_two; 60 61 gtk_tree_model_get(model, first, INF_GTK_BROWSER_MODEL_COL_NAME, &name_one, -1); 62 gtk_tree_model_get(model, second, INF_GTK_BROWSER_MODEL_COL_NAME, &name_two, -1); 63 64 gchar* one = g_utf8_casefold(name_one, -1); 65 gchar* two = g_utf8_casefold(name_two, -1); 66 67 result = g_utf8_collate(one, two); 68 69 g_free(name_one); 70 g_free(name_two); 71 g_free(one); 72 g_free(two); 73 } 74 75 g_object_unref(br_one); 76 g_object_unref(br_two); 77 infc_browser_iter_free(bri_one); 78 infc_browser_iter_free(bri_two); 79 80 return result; 81 } 82 33 83 Gobby::Browser::Browser(Gtk::Window& parent, 34 84 const InfcNotePlugin* text_plugin, … … 65 115 communication_manager); 66 116 g_object_unref(communication_manager); 117 118 m_sort_model = inf_gtk_browser_model_sort_new(INF_GTK_BROWSER_MODEL(m_browser_store)); 119 gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(m_sort_model), compare_func, NULL, NULL); 67 120 68 121 m_xmpp_manager = inf_xmpp_manager_new(); … … 87 140 INF_GTK_BROWSER_VIEW( 88 141 inf_gtk_browser_view_new_with_model( 89 INF_GTK_BROWSER_MODEL(m_ browser_store)));142 INF_GTK_BROWSER_MODEL(m_sort_model))); 90 143 91 144 gtk_widget_show(GTK_WIDGET(m_browser_view)); … … 132 185 133 186 g_object_unref(m_browser_store); 187 g_object_unref(m_sort_model); 134 188 g_object_unref(m_cert_manager); 135 189 g_object_unref(m_xmpp_manager); … … 169 223 InfcBrowserIter* browser_iter; 170 224 171 gtk_tree_model_get(GTK_TREE_MODEL(m_ browser_store), iter,225 gtk_tree_model_get(GTK_TREE_MODEL(m_sort_model), iter, 172 226 INF_GTK_BROWSER_MODEL_COL_BROWSER, &browser, 173 227 INF_GTK_BROWSER_MODEL_COL_NODE, &browser_iter, … … 281 335 282 336 gtk_tree_model_get( 283 GTK_TREE_MODEL(m_ browser_store), &tree_iter,337 GTK_TREE_MODEL(m_sort_model), &tree_iter, 284 338 INF_GTK_BROWSER_MODEL_COL_BROWSER, &tmp_browser, 285 339 -1); … … 289 343 290 344 gtk_tree_model_get( 291 GTK_TREE_MODEL(m_ browser_store), &tree_iter,345 GTK_TREE_MODEL(m_sort_model), &tree_iter, 292 346 INF_GTK_BROWSER_MODEL_COL_NODE, &tmp_iter, 293 347 -1); … … 307 361 308 362 gboolean has_iter = inf_gtk_browser_model_browser_iter_to_tree_iter( 309 INF_GTK_BROWSER_MODEL(m_ browser_store),363 INF_GTK_BROWSER_MODEL(m_sort_model), 310 364 browser, iter, &tree_iter); 311 365 g_assert(has_iter == TRUE); -
code/core/browser.hpp
r6cbb77d r4e250df 33 33 #include <libinfinity/common/inf-xmpp-manager.h> 34 34 #include <libinfinity/inf-config.h> 35 #include <libinfgtk/inf-gtk-browser-model.h> 36 #include <libinfgtk/inf-gtk-browser-model-sort.h> 35 37 36 38 #include <gtkmm/window.h> … … 65 67 ~Browser(); 66 68 67 InfGtkBrowser Store* get_store() { return m_browser_store; }68 const InfGtkBrowser Store* get_store() const {69 return m_ browser_store;69 InfGtkBrowserModelSort* get_store() { return m_sort_model; } 70 const InfGtkBrowserModelSort* get_store() const { 71 return m_sort_model; 70 72 } 71 73 … … 137 139 ResolvMap m_resolv_map; 138 140 SignalActivate m_signal_activate; 141 142 InfGtkBrowserModelSort* m_sort_model; 139 143 }; 140 144
