static gboolean went_offline_nm;
#endif
-#if !defined(NM_CHECK_VERSION)
-#define NM_CHECK_VERSION(x,y,z) 0
-#endif
#ifdef HAVE_DBUS_GLIB
static DBusGProxy *awn_proxy = NULL;
G_CALLBACK(chk_update_val), &backup);
if (alertpanel_full(_("Migration of configuration"), message,
- GTK_STOCK_NO, "+" GTK_STOCK_YES, NULL, FALSE,
- keep_backup_chk, ALERT_QUESTION, G_ALERTDEFAULT) != G_ALERTALTERNATE) {
+ GTK_STOCK_NO, GTK_STOCK_YES, NULL, ALERTFOCUS_SECOND, FALSE,
+ keep_backup_chk, ALERT_QUESTION) != G_ALERTALTERNATE) {
return FALSE;
}
}
#ifdef HAVE_DBUS_GLIB
-static guint dbus_item_hook_id = -1;
-static guint dbus_folder_hook_id = -1;
+static gulong dbus_item_hook_id = HOOK_NONE;
+static gulong dbus_folder_hook_id = HOOK_NONE;
static void uninstall_dbus_status_handler(void)
{
if(awn_proxy)
g_object_unref(awn_proxy);
awn_proxy = NULL;
- if (dbus_item_hook_id != -1)
+ if (dbus_item_hook_id != HOOK_NONE)
hooks_unregister_hook(FOLDER_ITEM_UPDATE_HOOKLIST, dbus_item_hook_id);
- if (dbus_folder_hook_id != -1)
+ if (dbus_folder_hook_id != HOOK_NONE)
hooks_unregister_hook(FOLDER_UPDATE_HOOKLIST, dbus_folder_hook_id);
}
"/com/google/code/Awn",
"com.google.code.Awn");
dbus_item_hook_id = hooks_register_hook (FOLDER_ITEM_UPDATE_HOOKLIST, dbus_status_update_item_hook, NULL);
- if (dbus_item_hook_id == -1) {
+ if (dbus_item_hook_id == HOOK_NONE) {
g_warning("Failed to register folder item update hook");
uninstall_dbus_status_handler();
return;
}
dbus_folder_hook_id = hooks_register_hook (FOLDER_UPDATE_HOOKLIST, dbus_status_update_folder_hook, NULL);
- if (dbus_folder_hook_id == -1) {
+ if (dbus_folder_hook_id == HOOK_NONE) {
g_warning("Failed to register folder update hook");
uninstall_dbus_status_handler();
return;
FolderView *folderview;
GdkPixbuf *icon;
gboolean crash_file_present = FALSE;
- gint num_folder_class = 0;
+ guint num_folder_class = 0;
gboolean asked_for_migration = FALSE;
gboolean start_done = TRUE;
GSList *plug_list = NULL;
gboolean never_ran = FALSE;
gboolean mainwin_shown = FALSE;
+ gint ret;
START_TIMING("startup");
"/org/freedesktop/NetworkManager",
"org.freedesktop.NetworkManager");
if (nm_proxy) {
-#if NM_CHECK_VERSION(0,8,992)
dbus_g_proxy_add_signal(nm_proxy, "StateChanged", G_TYPE_UINT, G_TYPE_INVALID);
dbus_g_proxy_connect_signal(nm_proxy, "StateChanged",
G_CALLBACK(networkmanager_state_change_cb),
NULL,NULL);
-#else
- dbus_g_proxy_add_signal(nm_proxy, "StateChange", G_TYPE_UINT, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(nm_proxy, "StateChange",
- G_CALLBACK(networkmanager_state_change_cb),
- NULL,NULL);
-#endif
}
#endif
install_dbus_status_handler();
folderview_freeze(mainwin->folderview);
folder_item_update_freeze();
- passwd_store_read_config();
-
- if (prefs_update_config_version_password_store() < 0) {
- debug_print("Password store configuration file version upgrade failed, exiting\n");
+ if ((ret = passwd_store_read_config()) < 0) {
+ debug_print("Password store configuration file version upgrade failed (%d), exiting\n", ret);
#ifdef G_OS_WIN32
win32_close_log();
#endif
#endif
/* If we can't read a folder list or don't have accounts,
* it means the configuration's not done. Either this is
- * a brand new install, either a failed/refused migration.
- * So we'll start the wizard.
+ * a brand new install, a failed/refused migration,
+ * or a failed config_version upgrade.
*/
- if (folder_read_list() < 0) {
+ if ((ret = folder_read_list()) < 0) {
+ debug_print("Folderlist read failed (%d)\n", ret);
prefs_destroy_cache();
+ if (ret == -2) {
+ /* config_version update failed in folder_read_list(). We
+ * do not want to run the wizard, just exit. */
+ debug_print("Folderlist version upgrade failed, exiting\n");
+#ifdef G_OS_WIN32
+ win32_close_log();
+#endif
+ exit(203);
+ }
+
/* if run_wizard returns FALSE it's because it's
* been cancelled. We can't do much but exit.
* however, if the user was asked for a migration,
: _("top level folder"));
g_free(buf);
-
- if (item->prefs->enable_processing) {
+ if (folder_item_parent(item) != NULL && item->prefs->enable_processing) {
item->processing_pending = TRUE;
folder_item_apply_processing(item);
item->processing_pending = FALSE;
if (prefs_common.warn_queued_on_exit && procmsg_have_queued_mails_fast()) {
if (alertpanel(_("Queued messages"),
_("Some unsent messages are queued. Exit now?"),
- GTK_STOCK_CANCEL, GTK_STOCK_OK, NULL)
+ GTK_STOCK_CANCEL, GTK_STOCK_OK, NULL, ALERTFOCUS_FIRST)
!= G_ALERTALTERNATE) {
main_window_popup(mainwin);
sc_exiting = FALSE;
g_propagate_error(error, tmp_error);
return TRUE;
}
-#if NM_CHECK_VERSION(0,8,992)
return (state == NM_STATE_CONNECTED_LOCAL ||
state == NM_STATE_CONNECTED_SITE ||
state == NM_STATE_CONNECTED_GLOBAL ||
state == NM_STATE_UNKNOWN);
-#else
- return (state == NM_STATE_CONNECTED ||
- state == NM_STATE_UNKNOWN);
-#endif
}
#endif