[mednaffe] 05/99: Improve performance when filling list. Filters have been disabled temporarily.

Stephen Kitt skitt at moszumanska.debian.org
Tue Aug 2 20:59:59 UTC 2016


This is an automated email from the git hooks/post-receive script.

skitt pushed a commit to branch master
in repository mednaffe.

commit 128a25e6967a4980250f0f57e3cbd0eb7945ec70
Author: amatcoder <amatcoder at 44025b82-9115-564b-7d03-7f3fc60b4744>
Date:   Thu Sep 5 14:22:13 2013 +0000

    Improve performance when filling list. Filters have been disabled temporarily.
---
 src/common.h         |   6 ---
 src/list.c           | 123 ++++++++++-----------------------------------------
 src/mednaffe.c       |  29 +-----------
 src/mednaffe_glade.h |  98 ++++++++++++++++++++--------------------
 4 files changed, 74 insertions(+), 182 deletions(-)

diff --git a/src/common.h b/src/common.h
index 8c43ef9..bf75915 100644
--- a/src/common.h
+++ b/src/common.h
@@ -37,14 +37,8 @@ typedef struct
    GtkWidget *globalist;
    GtkBuilder *specific;
    GtkBuilder *builder;
-   GtkTreeModelSort *modelsort;
-   GtkTreeModelSort *zipmodelsort;
-   GtkTreeModelFilter *zipfilter;
-   GtkTreeModelSort *cuemodelsort;
-   GtkTreeModelFilter *cuefilter;
    GtkTreeViewColumn *column;
    GtkListStore *store;
-   gint filtermode;
    gboolean recursive;
    gchar *binpath;
    gchar *fullpath;
diff --git a/src/list.c b/src/list.c
index dd31560..57367a0 100644
--- a/src/list.c
+++ b/src/list.c
@@ -28,30 +28,8 @@ void change_list (guidata *gui)
   gchar *buff, *total;
   gint n_roms = 0;
 
-  gtk_tree_view_column_set_sort_indicator(gui->column, TRUE);
-  gtk_tree_view_column_set_sort_order(gui->column,GTK_SORT_ASCENDING);
-
-  if (gui->filtermode == 0)
-  {
-    n_roms = 
-      gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gui->modelsort), NULL);
-      
-    gtk_tree_view_column_set_title(gui->column, "Games");
-  }
-  else if (gui->filtermode == 1)
-  {
-    n_roms = 
-      gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gui->zipmodelsort), NULL);
-      
-    gtk_tree_view_column_set_title(gui->column, "Games (zip)");
-  }
-  else if (gui->filtermode == 2)
-  {
-    n_roms = 
-      gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gui->cuemodelsort), NULL);
-      
-    gtk_tree_view_column_set_title(gui->column, "Games (cue/toc/m3u)");
-  }
+  n_roms = 
+    gtk_tree_model_iter_n_children(GTK_TREE_MODEL(gui->store), NULL);
 
   buff=g_strdup_printf("%i", n_roms);
   total = g_strconcat(" Games in list: ", buff, NULL);
@@ -60,6 +38,9 @@ void change_list (guidata *gui)
   g_free(total);
   g_free(buff);
 
+  gtk_tree_view_set_model(GTK_TREE_VIEW(gui->gamelist), 
+                          GTK_TREE_MODEL(gui->store));
+
   adjustament = 
     gtk_scrolled_window_get_vadjustment(
                                 GTK_SCROLLED_WINDOW(gui->scrollwindow));
@@ -74,15 +55,7 @@ G_MODULE_EXPORT
 #endif
 void on_radiomenuall_activate(GtkMenuItem *menuitem, guidata *gui)
 {
-  if (gui->filtermode != 0)
-  {
-    gtk_tree_view_set_model(
-      GTK_TREE_VIEW(gui->gamelist), GTK_TREE_MODEL(gui->modelsort));
-      
-    gtk_tree_view_column_set_sort_indicator(gui->column, TRUE);
-    gui->filtermode = 0;
-    change_list(gui);
-  }
+
 }
 
 #ifdef G_OS_WIN32
@@ -90,56 +63,15 @@ G_MODULE_EXPORT
 #endif
 void on_radiomenuzip_activate(GtkMenuItem *menuitem, guidata *gui)
 {
-  if (gui->filtermode != 1)
-  {
-    gtk_tree_view_set_model(
-      GTK_TREE_VIEW(gui->gamelist),GTK_TREE_MODEL(gui->zipmodelsort));
-      
-    gtk_tree_view_column_set_sort_indicator(gui->column, TRUE);
-    gui->filtermode = 1;
-    change_list(gui);
-  }
-}
 
-#ifdef G_OS_WIN32
-G_MODULE_EXPORT
-#endif
-void on_radiomenucue_activate(GtkMenuItem *menuitem, guidata *gui)
-{
-  if (gui->filtermode != 2)
-  {
-    gtk_tree_view_set_model(
-      GTK_TREE_VIEW(gui->gamelist), GTK_TREE_MODEL(gui->cuemodelsort));
-    
-    gtk_tree_view_column_set_sort_indicator(gui->column, TRUE);
-    gui->filtermode = 2;
-    change_list(gui);
-  }
 }
 
 #ifdef G_OS_WIN32
 G_MODULE_EXPORT
 #endif
-void header_clicked(GtkTreeViewColumn *treeviewcolumn, guidata *gui)
+void on_radiomenucue_activate(GtkMenuItem *menuitem, guidata *gui)
 {
-  GtkTreeModel *sorteable;
-
-  sorteable = gtk_tree_view_get_model(GTK_TREE_VIEW(gui->gamelist));
 
-  if (gtk_tree_view_column_get_sort_order(gui->column) == GTK_SORT_ASCENDING)
-  {
-    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sorteable), 
-                                                 0,GTK_SORT_DESCENDING);
-                                         
-    gtk_tree_view_column_set_sort_order(gui->column, GTK_SORT_DESCENDING);
-  }
-  else
-  {
-    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(sorteable), 
-                                                  0,GTK_SORT_ASCENDING);
-                                                  
-    gtk_tree_view_column_set_sort_order(gui->column, GTK_SORT_ASCENDING);
-  }
 }
 
 #ifdef G_OS_WIN32
@@ -239,13 +171,11 @@ void scan_dir(gchar *romdir, guidata *gui)
                      g_str_has_suffix(file, ".TOC") || 
                      g_str_has_suffix(file, ".M3U"));
                          
-        gtk_list_store_append(gui->store, &iter);
-        gtk_list_store_set(gui->store, &iter, 
+        gtk_list_store_insert_with_values(gui->store, &iter, -1,  
                            0, file, 
                            1, filterzip, 
                            2, filtercue, 
-                           3, testdir, -1);
-                                        
+                           3, testdir, -1);                               
       }
       else
       {
@@ -265,8 +195,15 @@ void fill_list(GtkComboBox *combobox, guidata *gui)
 {
   GtkTreeModel *model;
   GtkTreeIter iter;
+  clock_t       start, end;
 
+  start = clock();
+    
   model=gtk_combo_box_get_model(GTK_COMBO_BOX(gui->cbpath));
+  gtk_tree_view_set_model(GTK_TREE_VIEW(gui->gamelist), NULL);
+  gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(gui->store), 
+    GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
+
   gtk_list_store_clear(gui->store);
   
   if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(gui->cbpath), &iter))
@@ -274,38 +211,24 @@ void fill_list(GtkComboBox *combobox, guidata *gui)
     g_free(gui->rompath);
     gtk_tree_model_get(model, &iter, 0 ,&gui->rompath, -1);
 
-    gtk_tree_sortable_set_sort_column_id(
-      GTK_TREE_SORTABLE(gui->modelsort), -1, GTK_SORT_ASCENDING);
-      
-    gtk_tree_sortable_set_sort_column_id(
-      GTK_TREE_SORTABLE(gui->zipmodelsort), -1, GTK_SORT_ASCENDING);
-      
-    gtk_tree_sortable_set_sort_column_id(
-      GTK_TREE_SORTABLE(gui->cuemodelsort), -1, GTK_SORT_ASCENDING);
 
     if (gui->rompath!=NULL)
-    {
       scan_dir(gui->rompath, gui);
       
-      gtk_tree_sortable_set_sort_column_id(
-        GTK_TREE_SORTABLE(gui->modelsort), 0, GTK_SORT_ASCENDING);
-        
-      gtk_tree_sortable_set_sort_column_id(
-        GTK_TREE_SORTABLE(gui->zipmodelsort), 0, GTK_SORT_ASCENDING);
-        
-      gtk_tree_sortable_set_sort_column_id(
-        GTK_TREE_SORTABLE(gui->cuemodelsort), 0, GTK_SORT_ASCENDING);
-        
-    }
-
+    gtk_tree_view_column_set_sort_column_id(gui->column, 0); 
+    change_list(gui);
+    
     if (gtk_tree_model_get_iter_first(gtk_tree_view_get_model(
                                   GTK_TREE_VIEW(gui->gamelist)), &iter))
     {  
       gtk_tree_selection_select_iter(gtk_tree_view_get_selection(
                                   GTK_TREE_VIEW(gui->gamelist)), &iter);
     }
-    change_list(gui);
   }
+  end = clock();
+
+  printf( "CPU time taken to populate list: %f\n", 
+          ( (gdouble)( end - start ) ) / CLOCKS_PER_SEC );
 }
 
 #ifdef G_OS_WIN32
diff --git a/src/mednaffe.c b/src/mednaffe.c
index daaf87d..8b9efc5 100644
--- a/src/mednaffe.c
+++ b/src/mednaffe.c
@@ -515,39 +515,12 @@ int main(int argc, char **argv)
                           G_TYPE_BOOLEAN, 
                           G_TYPE_STRING);
 
-  gui.modelsort = 
-    GTK_TREE_MODEL_SORT
-      (gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(gui.store)));
-      
-  gui.zipfilter = 
-    GTK_TREE_MODEL_FILTER
-      ((gtk_tree_model_filter_new(GTK_TREE_MODEL( gui.store ), NULL )));
-      
-  gui.zipmodelsort = 
-    GTK_TREE_MODEL_SORT
-      (gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(gui.zipfilter)));
-      
-  gtk_tree_model_filter_set_visible_column
-    (GTK_TREE_MODEL_FILTER(gui.zipfilter ), 1);
-    
-  gui.cuefilter = 
-    GTK_TREE_MODEL_FILTER
-      ((gtk_tree_model_filter_new(GTK_TREE_MODEL( gui.store ), NULL )));
-      
-  gui.cuemodelsort = 
-    GTK_TREE_MODEL_SORT
-      (gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(gui.cuefilter)));
-      
-  gtk_tree_model_filter_set_visible_column(
-    GTK_TREE_MODEL_FILTER(gui.cuefilter ), 2);
-
   gtk_tree_view_set_model(
-    GTK_TREE_VIEW(gui.gamelist), GTK_TREE_MODEL(gui.modelsort));
+    GTK_TREE_VIEW(gui.gamelist), GTK_TREE_MODEL(gui.store));
 
   gui.column = gtk_tree_view_get_column(GTK_TREE_VIEW(gui.gamelist), 0);
 
   /* Set initial values */
-  gui.filtermode = 0;
   gui.recursive = FALSE;
   gui.state = 0;
   gui.executing = FALSE;
diff --git a/src/mednaffe_glade.h b/src/mednaffe_glade.h
index 0232294..b621bd0 100644
--- a/src/mednaffe_glade.h
+++ b/src/mednaffe_glade.h
@@ -26,37 +26,26 @@
 static const char *mednaffe_glade =
 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
 "<interface>\n"
-"<requires lib=\"gtk+\" version=\"2.16\"/>\n"
+"<requires lib=\"gtk+\" version=\"2.18\"/>\n"
 "<!-- interface-naming-policy toplevel-contextual -->\n"
-"<object class=\"GtkAdjustment\" id=\"adjustbuffsize\">\n"
-"<property name=\"lower\">1</property>\n"
-"<property name=\"upper\">999</property>\n"
-"<property name=\"value\">32</property>\n"
-"<property name=\"step_increment\">1</property>\n"
-"<property name=\"page_increment\">10</property>\n"
-"</object>\n"
-"<object class=\"GtkAdjustment\" id=\"adjustplayrate\">\n"
-"<property name=\"lower\">22050</property>\n"
-"<property name=\"upper\">1048576</property>\n"
-"<property name=\"value\">48000</property>\n"
-"<property name=\"step_increment\">1</property>\n"
-"<property name=\"page_increment\">10</property>\n"
-"</object>\n"
-"<object class=\"GtkAdjustment\" id=\"adjustvolume\">\n"
-"<property name=\"upper\">150</property>\n"
-"<property name=\"value\">100</property>\n"
-"<property name=\"step_increment\">1</property>\n"
-"<property name=\"page_increment\">10</property>\n"
+"<object class=\"GtkAdjustment\" id=\"adjyscale\">\n"
+"<property name=\"lower\">0.01</property>\n"
+"<property name=\"upper\">256</property>\n"
+"<property name=\"value\">0.0099999997764825821</property>\n"
+"<property name=\"step_increment\">0.01</property>\n"
+"<property name=\"page_increment\">1</property>\n"
 "</object>\n"
-"<object class=\"GtkAdjustment\" id=\"adjxres\">\n"
-"<property name=\"upper\">65536</property>\n"
-"<property name=\"step_increment\">1</property>\n"
-"<property name=\"page_increment\">160</property>\n"
+"<object class=\"GtkAdjustment\" id=\"adjyscalefs\">\n"
+"<property name=\"lower\">0.01</property>\n"
+"<property name=\"upper\">256</property>\n"
+"<property name=\"value\">1</property>\n"
+"<property name=\"step_increment\">0.01</property>\n"
+"<property name=\"page_increment\">1</property>\n"
 "</object>\n"
-"<object class=\"GtkAdjustment\" id=\"adyres\">\n"
-"<property name=\"upper\">65536</property>\n"
-"<property name=\"step_increment\">1</property>\n"
-"<property name=\"page_increment\">160</property>\n"
+"<object class=\"GtkImage\" id=\"add_image\">\n"
+"<property name=\"visible\">True</property>\n"
+"<property name=\"can_focus\">False</property>\n"
+"<property name=\"stock\">gtk-add</property>\n"
 "</object>\n"
 "<object class=\"GtkAdjustment\" id=\"adjautofire\">\n"
 "<property name=\"upper\">1000</property>\n"
@@ -197,6 +186,31 @@ static const char *mednaffe_glade =
 "<property name=\"step_increment\">1</property>\n"
 "<property name=\"page_increment\">10</property>\n"
 "</object>\n"
+"<object class=\"GtkAdjustment\" id=\"adjustbuffsize\">\n"
+"<property name=\"lower\">1</property>\n"
+"<property name=\"upper\">999</property>\n"
+"<property name=\"value\">32</property>\n"
+"<property name=\"step_increment\">1</property>\n"
+"<property name=\"page_increment\">10</property>\n"
+"</object>\n"
+"<object class=\"GtkAdjustment\" id=\"adjustplayrate\">\n"
+"<property name=\"lower\">22050</property>\n"
+"<property name=\"upper\">1048576</property>\n"
+"<property name=\"value\">48000</property>\n"
+"<property name=\"step_increment\">1</property>\n"
+"<property name=\"page_increment\">10</property>\n"
+"</object>\n"
+"<object class=\"GtkAdjustment\" id=\"adjustvolume\">\n"
+"<property name=\"upper\">150</property>\n"
+"<property name=\"value\">100</property>\n"
+"<property name=\"step_increment\">1</property>\n"
+"<property name=\"page_increment\">10</property>\n"
+"</object>\n"
+"<object class=\"GtkAdjustment\" id=\"adjxres\">\n"
+"<property name=\"upper\">65536</property>\n"
+"<property name=\"step_increment\">1</property>\n"
+"<property name=\"page_increment\">160</property>\n"
+"</object>\n"
 "<object class=\"GtkAdjustment\" id=\"adjxscale\">\n"
 "<property name=\"lower\">0.01</property>\n"
 "<property name=\"upper\">256</property>\n"
@@ -211,24 +225,10 @@ static const char *mednaffe_glade =
 "<property name=\"step_increment\">0.01</property>\n"
 "<property name=\"page_increment\">1</property>\n"
 "</object>\n"
-"<object class=\"GtkAdjustment\" id=\"adjyscale\">\n"
-"<property name=\"lower\">0.01</property>\n"
-"<property name=\"upper\">256</property>\n"
-"<property name=\"value\">0.0099999997764825821</property>\n"
-"<property name=\"step_increment\">0.01</property>\n"
-"<property name=\"page_increment\">1</property>\n"
-"</object>\n"
-"<object class=\"GtkAdjustment\" id=\"adjyscalefs\">\n"
-"<property name=\"lower\">0.01</property>\n"
-"<property name=\"upper\">256</property>\n"
-"<property name=\"value\">1</property>\n"
-"<property name=\"step_increment\">0.01</property>\n"
-"<property name=\"page_increment\">1</property>\n"
-"</object>\n"
-"<object class=\"GtkImage\" id=\"add_image\">\n"
-"<property name=\"visible\">True</property>\n"
-"<property name=\"can_focus\">False</property>\n"
-"<property name=\"stock\">gtk-add</property>\n"
+"<object class=\"GtkAdjustment\" id=\"adyres\">\n"
+"<property name=\"upper\">65536</property>\n"
+"<property name=\"step_increment\">1</property>\n"
+"<property name=\"page_increment\">160</property>\n"
 "</object>\n"
 "<object class=\"GtkListStore\" id=\"cbpathstore\">\n"
 "<columns>\n"
@@ -729,7 +729,7 @@ static const char *mednaffe_glade =
 "<property name=\"label\" translatable=\"yes\">Recursive</property>\n"
 "<property name=\"use_underline\">True</property>\n"
 "<accelerator key=\"r\" signal=\"activate\" modifiers=\"GDK_SHIFT_MASK\"/>\n"
-"<signal name=\"toggled\" handler=\"on_recursivemenuitem_toggled\" swapped=\"no\"/>\n"
+"<signal name=\"activate\" handler=\"on_recursivemenuitem_toggled\" swapped=\"no\"/>\n"
 "</object>\n"
 "</child>\n"
 "<child>\n"
@@ -754,6 +754,7 @@ static const char *mednaffe_glade =
 "<object class=\"GtkRadioMenuItem\" id=\"radiomenuall\">\n"
 "<property name=\"use_action_appearance\">False</property>\n"
 "<property name=\"visible\">True</property>\n"
+"<property name=\"sensitive\">False</property>\n"
 "<property name=\"can_focus\">False</property>\n"
 "<property name=\"label\" translatable=\"yes\">All Files</property>\n"
 "<property name=\"use_underline\">True</property>\n"
@@ -767,6 +768,7 @@ static const char *mednaffe_glade =
 "<object class=\"GtkRadioMenuItem\" id=\"radiomenuzip\">\n"
 "<property name=\"use_action_appearance\">False</property>\n"
 "<property name=\"visible\">True</property>\n"
+"<property name=\"sensitive\">False</property>\n"
 "<property name=\"can_focus\">False</property>\n"
 "<property name=\"label\" translatable=\"yes\">Only Zips</property>\n"
 "<property name=\"use_underline\">True</property>\n"
@@ -780,6 +782,7 @@ static const char *mednaffe_glade =
 "<object class=\"GtkRadioMenuItem\" id=\"radiomenucue\">\n"
 "<property name=\"use_action_appearance\">False</property>\n"
 "<property name=\"visible\">True</property>\n"
+"<property name=\"sensitive\">False</property>\n"
 "<property name=\"can_focus\">False</property>\n"
 "<property name=\"label\" translatable=\"yes\">Only Cue/Toc/M3u</property>\n"
 "<property name=\"use_underline\">True</property>\n"
@@ -903,7 +906,6 @@ static const char *mednaffe_glade =
 "<child>\n"
 "<object class=\"GtkTreeViewColumn\" id=\"treeviewcolumn1\">\n"
 "<property name=\"clickable\">True</property>\n"
-"<signal name=\"clicked\" handler=\"header_clicked\" swapped=\"no\"/>\n"
 "<child>\n"
 "<object class=\"GtkCellRendererText\" id=\"cellrenderertext12\"/>\n"
 "<attributes>\n"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mednaffe.git



More information about the Pkg-games-commits mailing list