[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