[easytag/wip/discid: 1/2] Unref GtkListStores and a GtkTreeStore
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [easytag/wip/discid: 1/2] Unref GtkListStores and a GtkTreeStore
- Date: Wed, 12 Jun 2013 16:52:34 +0000 (UTC)
commit 48df5ca2652f3ddef9037b377d471ddd1e425797
Author: David King <amigadave amigadave com>
Date: Tue Jun 11 19:02:54 2013 +0100
Unref GtkListStores and a GtkTreeStore
GtkListStore and GtkTreeStore inherit from GObject and not
GInitiallyUnowned, and so start with a reference count of 1 and no
floating reference. Therefore, they must be unreffed after adding to a
view in order to be finalized when the view is destroyed.
The remaining list stores are difficult to disentangle from the
surrounding code, so have been left unchanged.
src/browser.c | 11 +++++++----
src/cddb.c | 19 +++++++++++--------
src/easytag.c | 1 +
src/log.c | 1 +
src/misc.c | 3 +++
src/picture.c | 1 +
src/scan.c | 2 ++
7 files changed, 26 insertions(+), 12 deletions(-)
---
diff --git a/src/browser.c b/src/browser.c
index d5c7486..a8cde06 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -3061,12 +3061,11 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
/*
* The entry box for displaying path
*/
- if (BrowserEntryModel != NULL)
- gtk_list_store_clear(BrowserEntryModel);
- else
- BrowserEntryModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
+ g_assert (BrowserEntryModel == NULL);
+ BrowserEntryModel = gtk_list_store_new (MISC_COMBO_COUNT, G_TYPE_STRING);
BrowserEntryCombo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(BrowserEntryModel));
+ g_object_unref (BrowserEntryModel);
gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(BrowserEntryCombo), MISC_COMBO_TEXT);
/* History list */
Load_Path_Entry_List(BrowserEntryModel, MISC_COMBO_TEXT);
@@ -3121,6 +3120,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
/* The tree view */
BrowserTree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(directoryTreeModel));
+ g_object_unref (directoryTreeModel);
gtk_container_add(GTK_CONTAINER(ScrollWindowDirectoryTree),BrowserTree);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserTree), TRUE);
@@ -3185,6 +3185,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
GDK_TYPE_COLOR);
BrowserArtistList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(artistListModel));
+ g_object_unref (artistListModel);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserArtistList), TRUE);
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(BrowserArtistList)),GTK_SELECTION_SINGLE);
@@ -3265,6 +3266,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
GDK_TYPE_COLOR);
BrowserAlbumList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(albumListModel));
+ g_object_unref (albumListModel);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserAlbumList), TRUE);
gtk_tree_view_set_reorderable(GTK_TREE_VIEW(BrowserAlbumList), FALSE);
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(BrowserAlbumList)),
GTK_SELECTION_SINGLE);
@@ -3353,6 +3355,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
GDK_TYPE_COLOR); /* Row foreground. */
BrowserList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(fileListModel));
+ g_object_unref (fileListModel);
gtk_container_add(GTK_CONTAINER(ScrollWindowFileList), BrowserList);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserList), TRUE);
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(BrowserList), FALSE);
diff --git a/src/cddb.c b/src/cddb.c
index 0ae4aed..5c0b813 100644
--- a/src/cddb.c
+++ b/src/cddb.c
@@ -330,12 +330,12 @@ void Open_Cddb_Window (void)
gtk_misc_set_alignment(GTK_MISC(Label),1.0,0.5);
gtk_box_pack_start(GTK_BOX(hbox),Label,FALSE,FALSE,0);
- if(CddbSearchStringModel == NULL)
- CddbSearchStringModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
- else
- gtk_list_store_clear(CddbSearchStringModel);
+ g_assert (CddbSearchStringModel == NULL);
+ CddbSearchStringModel = gtk_list_store_new (MISC_COMBO_COUNT,
+ G_TYPE_STRING);
CddbSearchStringCombo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(CddbSearchStringModel));
+ g_object_unref (CddbSearchStringModel);
gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(CddbSearchStringCombo),MISC_COMBO_TEXT);
gtk_widget_set_size_request(GTK_WIDGET(CddbSearchStringCombo),220,-1);
gtk_box_pack_start(GTK_BOX(hbox),CddbSearchStringCombo,FALSE,TRUE,0);
@@ -520,12 +520,12 @@ void Open_Cddb_Window (void)
gtk_misc_set_alignment(GTK_MISC(Label),1.0,0.5);
gtk_box_pack_start(GTK_BOX(hbox),Label,FALSE,FALSE,0);
- if(CddbSearchStringInResultModel == NULL)
- CddbSearchStringInResultModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
- else
- gtk_list_store_clear(CddbSearchStringInResultModel);
+ g_assert (CddbSearchStringInResultModel == NULL);
+ CddbSearchStringInResultModel = gtk_list_store_new (MISC_COMBO_COUNT,
+ G_TYPE_STRING);
CddbSearchStringInResultCombo =
gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(CddbSearchStringInResultModel));
+ g_object_unref (CddbSearchStringInResultModel);
gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(CddbSearchStringInResultCombo),MISC_COMBO_TEXT);
gtk_box_pack_start(GTK_BOX(hbox),CddbSearchStringInResultCombo,FALSE,FALSE,0);
g_signal_connect_swapped(G_OBJECT(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(CddbSearchStringInResultCombo)))),"activate",
@@ -605,6 +605,7 @@ void Open_Cddb_Window (void)
G_TYPE_INT,
GDK_TYPE_COLOR);
CddbAlbumListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(CddbAlbumListModel));
+ g_object_unref (CddbAlbumListModel);
renderer = gtk_cell_renderer_pixbuf_new();
column = gtk_tree_view_column_new_with_attributes(_(CddbAlbumList_Titles[0]), renderer,
@@ -663,6 +664,7 @@ void Open_Cddb_Window (void)
G_TYPE_POINTER,
G_TYPE_POINTER);
CddbTrackListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(CddbTrackListModel));
+ g_object_unref (CddbTrackListModel);
renderer = gtk_cell_renderer_text_new();
g_object_set(G_OBJECT(renderer), "xalign", 1.0, NULL); // Align to the right
column = gtk_tree_view_column_new_with_attributes(_(CddbTrackList_Titles[0]), renderer,
@@ -829,6 +831,7 @@ Cddb_Destroy_Window (GtkWidget *widget, GdkEvent *event, gpointer data)
CddbWindow = NULL;
CddbSearchStringCombo = NULL;
CddbSearchStringModel = NULL;
+ CddbSearchStringInResultModel = NULL;
CddbAlbumListView = NULL;
CddbAlbumListModel = NULL;
CddbTrackListView = NULL;
diff --git a/src/easytag.c b/src/easytag.c
index 83c7e73..ba6aed9 100644
--- a/src/easytag.c
+++ b/src/easytag.c
@@ -1155,6 +1155,7 @@ Create_Tag_Area (void)
G_TYPE_STRING,
G_TYPE_POINTER);
PictureEntryView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(PictureEntryModel));
+ g_object_unref (PictureEntryModel);
//gtk_tree_view_set_reorderable(GTK_TREE_VIEW(PictureEntryView),TRUE);
gtk_container_add(GTK_CONTAINER(PictureScrollWindow), PictureEntryView);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(PictureEntryView), FALSE);
diff --git a/src/log.c b/src/log.c
index 7f6f10a..14ef135 100644
--- a/src/log.c
+++ b/src/log.c
@@ -117,6 +117,7 @@ GtkWidget *Create_Log_Area (void)
GDK_TYPE_COLOR);
LogList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(logListModel));
+ g_object_unref (logListModel);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(LogList), FALSE);
gtk_container_add(GTK_CONTAINER(ScrollWindowLogList), LogList);
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(LogList), FALSE);
diff --git a/src/misc.c b/src/misc.c
index f666cf4..ebe0887 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -2060,6 +2060,7 @@ void Open_Search_File_Window (void)
G_TYPE_POINTER);
SearchResultList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(SearchResultListModel));
+ g_object_unref (SearchResultListModel);
renderer = gtk_cell_renderer_text_new(); /* Filename */
column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[0]), renderer,
@@ -2759,6 +2760,7 @@ void Open_Load_Filename_Window (void)
gtk_box_pack_start(GTK_BOX(loadedvbox), ScrollWindow, TRUE, TRUE, 0);
LoadFileContentListModel = gtk_list_store_new(LOAD_FILE_CONTENT_COUNT, G_TYPE_STRING);
LoadFileContentList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(LoadFileContentListModel));
+ g_object_unref (LoadFileContentListModel);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes (_("Content of Text File"),
@@ -2852,6 +2854,7 @@ void Open_Load_Filename_Window (void)
gtk_box_pack_start(GTK_BOX(filelistvbox), ScrollWindow, TRUE, TRUE, 0);
LoadFileNameListModel = gtk_list_store_new(LOAD_FILE_NAME_COUNT, G_TYPE_STRING,G_TYPE_POINTER);
LoadFileNameList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(LoadFileNameListModel));
+ g_object_unref (LoadFileNameListModel);
renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("List of Files"),
diff --git a/src/picture.c b/src/picture.c
index 57d41e0..5d75675 100644
--- a/src/picture.c
+++ b/src/picture.c
@@ -482,6 +482,7 @@ void Picture_Properties_Button_Clicked (GObject *object)
GTK_POLICY_AUTOMATIC);
store = gtk_list_store_new(PICTURE_TYPE_COLUMN_COUNT, G_TYPE_STRING, G_TYPE_INT);
type = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+ g_object_unref (store);
gtk_container_add(GTK_CONTAINER(ScrollWindowPictureTypes), type);
renderer = gtk_cell_renderer_text_new();
diff --git a/src/scan.c b/src/scan.c
index 29a59ea..0113c69 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -2440,6 +2440,7 @@ void Open_ScannerWindow (gint scanner_type)
// The combo box to select the mask to apply
ScanTagMaskCombo = gtk_combo_box_new_with_entry();
gtk_combo_box_set_model(GTK_COMBO_BOX(ScanTagMaskCombo), GTK_TREE_MODEL(ScanTagListModel));
+ g_object_unref (ScanTagListModel);
gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(ScanTagMaskCombo), MASK_EDITOR_TEXT);
gtk_box_pack_start(GTK_BOX(HBox2),ScanTagMaskCombo,TRUE,TRUE,2);
@@ -2506,6 +2507,7 @@ void Open_ScannerWindow (gint scanner_type)
// The combo box to select the mask to apply
RenameFileMaskCombo = gtk_combo_box_new_with_entry();
gtk_combo_box_set_model(GTK_COMBO_BOX(RenameFileMaskCombo), GTK_TREE_MODEL(RenameFileListModel));
+ g_object_unref (RenameFileListModel);
gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(RenameFileMaskCombo), MASK_EDITOR_TEXT);
gtk_box_pack_start(GTK_BOX(HBox4),RenameFileMaskCombo,TRUE,TRUE,2);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]