示例#1
0
void ISFSetupWin::isf_setup_save_callback (GtkWidget *softkey, gpointer user_data)
{
    if (_display_selected_items == 0) {
        GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW (_main_window),
                                                    GTK_DIALOG_MODAL,
                                                    GTK_MESSAGE_INFO,
                                                    GTK_BUTTONS_OK,
                                                    _("At least select one ISE!\n"));
        gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
        gtk_dialog_run (GTK_DIALOG (dialog));
        gtk_widget_destroy (dialog);
        return;
    }

    for (size_t i = 0; i < _isf_app_list.size (); i++) {
        String app = _isf_app_list[i];
        _disabled_ise_map_bak[app].clear ();
        if (_disabled_ise_map[app].size ()) {
            for (size_t j = 0; j < _disabled_ise_map[app].size (); j++) {
                _disabled_ise_map_bak[app].push_back (_disabled_ise_map[app][j]);
            }
        }
    }

    if (_setup_enable_changed) {
        for (size_t i = 0; i < _isf_app_list.size (); i++) {
            String app = _isf_app_list[i];
            scim_global_config_write (String (SCIM_GLOBAL_CONFIG_DISABLED_IMENGINE_FACTORIES
                                              "/") + _isf_app_list[i], _disabled_ise_map[app]);
        }
        scim_global_config_flush ();
    }
    gtk_widget_hide (_main_window);
    gtk_main_quit ();
}
示例#2
0
void
SetupUI::run ()
{
    SCIM_DEBUG_MAIN(1) << "SetupUI::run ()\n";

    if (m_main_window) {
        gtk_widget_show (m_main_window);

        gtk_main ();
    }

    if (m_changes_applied) {
        // Flush the global config before sending reload config event.
        scim_global_config_flush ();
        m_helper_agent.reload_config ();
    }

    SCIM_DEBUG_MAIN(1) << "exit SetupUI::run ()\n";
}