Changeset 84 for owaew-term

Show
Ignore:
Timestamp:
01/21/08 20:52:43 (1 year ago)
Author:
inz
Message:

Update some toolbar handling stuff.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • owaew-term/trunk/src/shortcuts.c

    r82 r84  
    1818#define _(x) gettext(x) 
    1919 
     20static const gchar *gconf_key_key(const gchar *key) 
     21{ 
     22        const gchar *temp = strrchr(key, '/'); 
     23         
     24        return temp ? temp : key; 
     25} 
     26 
    2027enum Responses { 
    2128        GRAPH_RESPONSE_NEW = 1, 
     
    3340} GraphApplet; 
    3441 
    35 static void ui_create_main_dialog(GraphApplet *applet, gpointer window); 
     42static void ui_create_main_dialog(GraphApplet *applet, const gchar *toolbar, gpointer window); 
    3643static void keys_dialog_response(GtkDialog *dialog, gint response, 
    3744                                 GraphApplet *applet); 
    3845static gboolean key_dialog_run(GtkWindow *parent, gchar **title, 
    3946                               gchar **key); 
    40 static void update_cmds(GtkTreeModel *model, GConfClient * gcc); 
     47static void update_cmds(GtkTreeModel *model, const gchar *toolbar, GConfClient * gcc); 
    4148static void selection_changed(GtkTreeSelection *sel, GraphApplet *applet); 
    4249static void move_up(GtkButton *button, GraphApplet *applet); 
    4350static void move_down(GtkButton *button, GraphApplet *applet); 
    4451 
    45 void update_shortcut_keys(void
     52void update_shortcut_keys(const gchar *toolbar
    4653{ 
    4754        GraphApplet applet; 
     
    5158        /* Create the main dialog and refresh the ui */ 
    5259 
    53         ui_create_main_dialog(&applet, NULL); 
     60        ui_create_main_dialog(&applet, toolbar, NULL); 
    5461 
    5562        gtk_dialog_run(GTK_DIALOG(applet.keys_dialog)); 
    5663        update_cmds(gtk_tree_view_get_model 
    57                     (GTK_TREE_VIEW(applet.keys_list)), applet.gcc); 
     64                    (GTK_TREE_VIEW(applet.keys_list)), 
     65                    toolbar, applet.gcc); 
    5866 
    5967        /* Make un-initializations */ 
     
    6169} 
    6270 
    63 static void ui_create_main_dialog(GraphApplet *applet, gpointer window) 
     71static void ui_create_main_dialog(GraphApplet *applet, const gchar *toolbar, gpointer window) 
    6472{ 
    6573        GSList *l_cmds; 
    66         GSList *l_cmd_nms; 
    67         GSList *iter, *iter_n; 
     74        GSList *iter; 
    6875 
    6976        GtkListStore *model; 
     
    7380        GtkWidget *view_vbox; 
    7481 
     82        gchar *escaped_toolbar = gconf_escape_key(toolbar, -1); 
     83        gchar *path = gconf_concat_dir_and_key(OWAEW_TERM_GCONF_TOOLBAR, 
     84                                               escaped_toolbar); 
     85        g_free(escaped_toolbar); 
     86 
    7587        applet->gcc = gconf_client_get_default(); 
    7688 
    77         l_cmds = gconf_client_get_list(applet->gcc, 
    78                                        OWAEW_TERM_GCONF_KEYS, 
    79                                        GCONF_VALUE_STRING, NULL); 
    80  
    81         l_cmd_nms = gconf_client_get_list(applet->gcc, 
    82                                           OWAEW_TERM_GCONF_KEY_LABELS, 
    83                                           GCONF_VALUE_STRING, NULL); 
     89        l_cmds = gconf_client_all_entries(applet->gcc, 
     90                                          path, 
     91                                          NULL); 
    8492 
    8593        applet->keys_dialog = 
     
    94102        model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); 
    95103 
    96         for (iter = l_cmds, iter_n = l_cmd_nms; iter && iter_n; 
    97              iter = iter->next, iter_n = iter_n->next) { 
     104        for (iter = l_cmds; iter; iter = iter->next) { 
     105               GConfEntry *entry = iter->data; 
    98106                GtkTreeIter titer; 
     107                gchar *name = gconf_unescape_key(gconf_key_key(gconf_entry_get_key(entry)), -1); 
     108                const gchar *value = gconf_value_get_string(gconf_entry_get_value(entry)); 
    99109                gtk_list_store_append(model, &titer); 
    100                 gtk_list_store_set(model, &titer, 0, iter_n->data, 
    101                                    1, iter->data, -1); 
    102         } 
     110                gtk_list_store_set(model, &titer, 0, name, 
     111                                   1, value, -1); 
     112                g_free(name); 
     113        } 
     114        g_slist_foreach(l_cmds, (GFunc)gconf_entry_unref, NULL); 
     115        g_slist_free(l_cmds); 
    103116 
    104117        applet->keys_list = 
     
    126139        g_signal_connect(applet->view_down, "clicked", 
    127140                         G_CALLBACK(move_down), applet); 
    128  
    129         g_slist_foreach(l_cmds, (GFunc)g_free, NULL); 
    130         g_slist_foreach(l_cmd_nms, (GFunc)g_free, NULL); 
    131  
    132         g_slist_free(l_cmds); 
    133         g_slist_free(l_cmd_nms); 
    134141 
    135142        gtk_box_pack_start(GTK_BOX(view_hbox), applet->keys_list, 
     
    262269} 
    263270 
    264 static void update_cmds(GtkTreeModel *model, GConfClient * gcc) 
    265 
    266         GSList *l_cmd = NULL; 
    267         GSList *l_cmd_nm = NULL; 
    268         GtkTreeIter iter; 
     271static void update_cmds(GtkTreeModel *model, const gchar *toolbar, GConfClient * gcc) 
     272
     273        GtkTreeIter iter; 
     274 
     275        gchar *escaped_toolbar = gconf_escape_key(toolbar, -1); 
     276        gchar *path = gconf_concat_dir_and_key(OWAEW_TERM_GCONF_TOOLBAR, 
     277                                               escaped_toolbar); 
     278        g_free(escaped_toolbar); 
     279 
     280        gconf_client_recursive_unset(gcc, path, 0, NULL); 
    269281 
    270282        if (gtk_tree_model_get_iter_first(model, &iter)) { 
     
    272284 
    273285                do { 
     286                        gchar *key; 
     287                        gchar *full_key;         
    274288                        gtk_tree_model_get(model, &iter, 0, &name, 1, 
    275289                                           &cmd, -1); 
    276                         l_cmd = g_slist_append(l_cmd, cmd); 
    277                         l_cmd_nm = g_slist_append(l_cmd_nm, name); 
     290                        key = gconf_escape_key(name, -1); 
     291                        full_key = gconf_concat_dir_and_key(path, key); 
     292                        g_free(key); 
     293                        gconf_client_set_string(gcc, full_key, cmd, NULL); 
     294                        g_free(full_key); 
     295                        g_free(cmd); 
     296                        g_free(name); 
    278297                } while (gtk_tree_model_iter_next(model, &iter)); 
    279298        } 
    280299 
    281         gconf_client_set_list(gcc, OWAEW_TERM_GCONF_KEY_LABELS, 
    282                               GCONF_VALUE_STRING, l_cmd_nm, NULL); 
    283         gconf_client_set_list(gcc, OWAEW_TERM_GCONF_KEYS, 
    284                               GCONF_VALUE_STRING, l_cmd, NULL); 
    285  
    286         g_slist_foreach(l_cmd, (GFunc)g_free, NULL); 
    287         g_slist_foreach(l_cmd_nm, (GFunc)g_free, NULL); 
    288         g_slist_free(l_cmd); 
    289         g_slist_free(l_cmd_nm); 
     300        g_free(path); 
    290301} 
    291302 
  • owaew-term/trunk/src/shortcuts.h

    r82 r84  
    22#define SHORTCUTS_H 
    33 
    4 void update_shortcut_keys(void); 
     4void update_shortcut_keys(const gchar *toolbar); 
    55 
    66#endif                          /* SHORTCUTS_H */ 
  • owaew-term/trunk/src/terminal-gconf.h

    r82 r84  
    5555#define OWAEW_TERM_DEFAULT_SCROLLBAR TRUE 
    5656 
    57 /* Boolean */ 
    58 #define OWAEW_TERM_GCONF_TOOLBAR   OWAEW_TERM_GCONF_PATH "/toolbar" 
    59 #define OWAEW_TERM_DEFAULT_TOOLBAR TRUE 
     57/* List */ 
     58#define OWAEW_TERM_GCONF_TOOLBARS   OWAEW_TERM_GCONF_PATH "/toolbars" 
     59 
     60#define OWAEW_TERM_GCONF_TOOLBAR  OWAEW_TERM_GCONF_PATH "/toolbar" 
    6061 
    6162/* List of strings */ 
  • owaew-term/trunk/src/terminal-manager.c

    r82 r84  
    33#define _(String) gettext(String) 
    44 
     5#ifdef HAVE_CONFIG_H 
     6#include <config.h> 
     7#endif 
     8 
     9#if HILDON == 0 
     10#include <hildon-widgets/hildon-banner.h> 
     11#elif HILDON == 1 
     12#include <hildon/hildon-banner.h> 
     13#endif 
    514#include "terminal-manager.h" 
    615#include "terminal-window.h" 
  • owaew-term/trunk/src/terminal-widget.c

    r82 r84  
    5151        PROP_ENCODING, 
    5252        PROP_TITLE, 
     53        PROP_TOOLBARS, 
    5354}; 
    5455 
     
    134135                                            GConfEntry * entry, 
    135136                                            TerminalWidget *widget); 
    136 static void terminal_widget_gconf_toolbar(GConfClient * client, 
    137                                           guint conn_id, 
    138                                           GConfEntry * entry, 
    139                                           TerminalWidget *widget); 
    140137static void terminal_widget_gconf_keys(GConfClient * client, 
    141138                                       guint conn_id, 
     
    314311        GSList *keys; 
    315312        GSList *key_labels; 
     313        GSList *toolbars; 
    316314        GConfValue *gconf_value; 
    317315 
     
    332330                                        (GConfClientNotifyFunc) 
    333331                                        terminal_widget_gconf_scrollbar, 
    334                                         widget, NULL, &err); 
    335         widget->toolbar_conid = 
    336                 gconf_client_notify_add(widget->gconf_client, 
    337                                         OWAEW_TERM_GCONF_TOOLBAR, 
    338                                         (GConfClientNotifyFunc) 
    339                                         terminal_widget_gconf_toolbar, 
    340332                                        widget, NULL, &err); 
    341333        widget->keys_conid = 
     
    523515 
    524516        /* apply current settings */ 
    525         gconf_value = gconf_client_get(widget->gconf_client, 
    526                                        OWAEW_TERM_GCONF_TOOLBAR, &err); 
     517        toolbars = gconf_client_get_list(widget->gconf_client, 
     518                                     OWAEW_TERM_GCONF_TOOLBARS, 
     519                                     GCONF_VALUE_STRING, &err); 
    527520        if (err != NULL) { 
    528521                g_printerr 
     
    531524                g_clear_error(&err); 
    532525        } 
    533         toolbar = OWAEW_TERM_DEFAULT_TOOLBAR; 
    534         if (gconf_value) { 
    535                 if (gconf_value->type == GCONF_VALUE_BOOL) 
    536                         toolbar = gconf_value_get_bool(gconf_value); 
    537                 gconf_value_free(gconf_value); 
    538         } 
     526 
     527        toolbar = FALSE; 
    539528 
    540529        keys = gconf_client_get_list(widget->gconf_client, 
     
    12241213        scrollbar = gconf_value_get_bool(value); 
    12251214        terminal_widget_update_scrolling_bar(widget, scrollbar); 
    1226 } 
    1227  
    1228 static void 
    1229 terminal_widget_gconf_toolbar(GConfClient * client, 
    1230                               guint conn_id, 
    1231                               GConfEntry * entry, TerminalWidget *widget) 
    1232 { 
    1233         GConfValue *value; 
    1234         gboolean toolbar; 
    1235  
    1236         value = gconf_entry_get_value(entry); 
    1237         toolbar = gconf_value_get_bool(value); 
    1238         terminal_widget_update_tool_bar(widget, toolbar); 
    12391215} 
    12401216 
  • owaew-term/trunk/src/terminal-window.c

    r82 r84  
    6363#include "terminal-settings.h" 
    6464#include "terminal-tab-header.h" 
    65 #include "terminal-app.h" 
     65#include "terminal-window.h" 
    6666#include "shortcuts.h" 
    6767 
     
    260260        gtk_action_set_accel_group(action, accelgroup); 
    261261        menuitem = gtk_action_create_menu_item(action); 
    262         gtk_menu_shell_windowend(GTK_MENU_SHELL(parent), menuitem); 
     262        gtk_menu_shell_append(GTK_MENU_SHELL(parent), menuitem); 
    263263        menu = gtk_menu_new(); 
    264264        gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); 
     
    277277        gtk_action_set_accel_group(action, accelgroup); 
    278278        menuitem = gtk_action_create_menu_item(action); 
    279         gtk_menu_shell_windowend(GTK_MENU_SHELL(parent), menuitem); 
     279        gtk_menu_shell_append(GTK_MENU_SHELL(parent), menuitem); 
    280280} 
    281281 
     
    306306        attach_item(parent, actiongroup, accelgroup, "toolbar"); 
    307307        attach_item(parent, actiongroup, accelgroup, "fullscreen"); 
    308         gtk_menu_shell_windowend(GTK_MENU_SHELL(parent), 
     308        gtk_menu_shell_append(GTK_MENU_SHELL(parent), 
    309309                                 gtk_separator_menu_item_new()); 
    310310        parent = attach_menu(parent, actiongroup, accelgroup, "font-menu"); 
     
    448448        gchar *role; 
    449449        gint font_size; 
    450         gboolean scrollbar, toolbar, reverse; 
     450        gboolean scrollbar, reverse; 
    451451        GConfClient *gconf_client; 
    452452        GConfValue *gconf_value; 
     
    488488                if (gconf_value->type == GCONF_VALUE_BOOL) 
    489489                        scrollbar = gconf_value_get_bool(gconf_value); 
    490                 gconf_value_free(gconf_value); 
    491         } 
    492  
    493         gconf_value = gconf_client_get(gconf_client, 
    494                                        OWAEW_TERM_GCONF_TOOLBAR, &error); 
    495  
    496         if (error != NULL) { 
    497                 g_printerr 
    498                         ("Unable to get toolbar setting from gconf: %s\n", 
    499                          error->message); 
    500                 g_error_free(error); 
    501                 error = NULL; 
    502         } 
    503         toolbar = OWAEW_TERM_DEFAULT_TOOLBAR; 
    504         if (gconf_value) { 
    505                 if (gconf_value->type == GCONF_VALUE_BOOL) 
    506                         toolbar = gconf_value_get_bool(gconf_value); 
    507490                gconf_value_free(gconf_value); 
    508491        } 
     
    553536 
    554537        action = gtk_action_group_get_action(app->action_group, "toolbar"); 
    555         gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), toolbar); 
     538        gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE); 
    556539 
    557540        action = gtk_action_group_get_action(app->action_group, "reverse"); 
     
    908891        (void)app; 
    909892 
    910         update_shortcut_keys(); 
     893        update_shortcut_keys("default"); 
    911894} 
    912895 
     
    12001183        gtk_widget_show(header); 
    12011184 
    1202         page = gtk_notebook_windowend_page(GTK_NOTEBOOK(app->notebook), 
     1185        page = gtk_notebook_append_page(GTK_NOTEBOOK(app->notebook), 
    12031186                                           GTK_WIDGET(widget), header); 
    12041187        gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(app->notebook),