* check whether folder_view actually exists before calling it;
authorDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Tue, 28 Aug 2007 06:25:27 +0000 (06:25 +0000)
committerDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Tue, 28 Aug 2007 06:25:27 +0000 (06:25 +0000)
  this fixes some GLib-Criticals.

pmo-trunk-r3100

src/maemo/modest-main-window.c
src/modest-ui-actions.c
src/modest-ui-dimming-rules.c

index 283cdce..346975d 100644 (file)
@@ -1888,20 +1888,22 @@ modest_main_window_set_contents_style (ModestMainWindow *self,
                break;
        case MODEST_MAIN_WINDOW_CONTENTS_STYLE_DETAILS:
        {
-               TnyFolderStore *selected_folderstore = 
-                       modest_folder_view_get_selected (priv->folder_view);
-               if (TNY_IS_ACCOUNT (selected_folderstore)) {    
-                 priv->details_widget = create_details_widget (GTK_WIDGET (self),
+               /* if we're started without main win, there may not be a folder
+                * view. this fixes a GLib-Critical */
+               if (priv->folder_view) {
+                       TnyFolderStore *selected_folderstore = 
+                               modest_folder_view_get_selected (priv->folder_view);
+                       if (TNY_IS_ACCOUNT (selected_folderstore)) {    
+                               priv->details_widget = create_details_widget (GTK_WIDGET (self),
                                                                TNY_ACCOUNT (selected_folderstore));
-
-                       wrap_in_scrolled_window (priv->contents_widget, 
-                                        priv->details_widget);
+                               
+                               wrap_in_scrolled_window (priv->contents_widget, 
+                                                        priv->details_widget);
+                       }
+                       g_object_unref (selected_folderstore);
+                       modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->contents_widget),
+                                                             FALSE);
                }
-               g_object_unref (selected_folderstore);
-               modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->contents_widget),
-                                                     FALSE);
-
-               
                break;
        }
        case MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY:
@@ -1937,7 +1939,7 @@ on_configuration_key_changed (ModestConf* conf,
                              ModestMainWindow *self)
 {
        ModestMainWindowPrivate *priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
-       TnyAccount *account;
+       TnyAccount *account = NULL;
 
        if (!key || 
            priv->notification_id != id ||
@@ -1946,10 +1948,10 @@ on_configuration_key_changed (ModestConf* conf,
 
        if (priv->contents_style != MODEST_MAIN_WINDOW_CONTENTS_STYLE_DETAILS)
                return;
-
-       account = (TnyAccount *) modest_folder_view_get_selected (priv->folder_view);
-       if (TNY_IS_ACCOUNT (account) &&
-           !strcmp (tny_account_get_id (account), MODEST_LOCAL_FOLDERS_ACCOUNT_ID)) {
+       if (priv->folder_view) 
+               account = (TnyAccount *) modest_folder_view_get_selected (priv->folder_view);
+       if (account && TNY_IS_ACCOUNT (account) &&
+           strcmp (tny_account_get_id (account), MODEST_LOCAL_FOLDERS_ACCOUNT_ID) == 0) {
                GList *children;
                GtkLabel *label;
                const gchar *device_name;
index f9da90a..066368d 100644 (file)
@@ -1647,6 +1647,8 @@ modest_do_refresh_current_folder(ModestWindow *win)
                folder_view = 
                        modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win), 
                                                             MODEST_WIDGET_TYPE_FOLDER_VIEW);
+               if (!folder_view)
+                       return;
 
                folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view));
 
index a6f30ea..33380e5 100644 (file)
@@ -1544,6 +1544,9 @@ _selected_folder_is_MMC_or_POP_root (ModestMainWindow *win)
 
        folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
                                                           MODEST_WIDGET_TYPE_FOLDER_VIEW);
+       if (!folder_view)
+               return FALSE;
+
        /* Get selected folder as parent of new folder to create */
        parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
        if (!parent_folder)
@@ -1646,8 +1649,8 @@ _folder_view_has_focus (ModestWindow *win)
                                                           MODEST_WIDGET_TYPE_FOLDER_VIEW);
        if (!folder_view)
                return FALSE;
-
-       if(gtk_widget_is_focus(folder_view))
+       
+       if (gtk_widget_is_focus(folder_view))
                return TRUE;
 
        return FALSE;