~ubuntu-branches/ubuntu/utopic/anjuta/utopic-proposed

« back to all changes in this revision

Viewing changes to plugins/git/git-branches-pane.c

  • Committer: Package Import Robot
  • Author(s): Andreas Henriksson, Jackson Doak
  • Date: 2014-07-12 15:17:39 UTC
  • mfrom: (1.4.14)
  • Revision ID: package-import@ubuntu.com-20140712151739-p9xy0ntlgbpm2nxq
Tags: 2:3.12.0-1
* Team upload.

[ Jackson Doak ]
* New upstream release
* Drop 03_valac_0.22.patch, fixed upstream\
* debian/control:
  - Bump b-dep version on libgtk-3-dev (>= 3.6.0), libglib2.0-dev (>= 2.34.0)
  - Bump stardards-version to 3.9.5. No changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
264
264
}
265
265
 
266
266
static void
 
267
on_branches_view_row_activated (GtkTreeView *branches_view, GtkTreePath *path,
 
268
                                GtkTreeViewColumn *column, GitBranchesPane *self)
 
269
{
 
270
        GtkTreeModel *model;
 
271
        GtkTreeIter iter;
 
272
        gchar *branch;
 
273
        Git *plugin;
 
274
        GitBranchCheckoutCommand *checkout_command;
 
275
        
 
276
        model = gtk_tree_view_get_model (branches_view);
 
277
        gtk_tree_model_get_iter (model, &iter, path);
 
278
 
 
279
        gtk_tree_model_get (model, &iter, COL_NAME, &branch, -1);
 
280
 
 
281
        plugin = ANJUTA_PLUGIN_GIT (anjuta_dock_pane_get_plugin (ANJUTA_DOCK_PANE (self)));
 
282
        checkout_command = git_branch_checkout_command_new (plugin->project_root_directory,
 
283
                                                            branch);
 
284
 
 
285
        g_signal_connect (G_OBJECT (checkout_command), "command-finished",
 
286
                          G_CALLBACK (git_pane_report_errors),
 
287
                          plugin);
 
288
 
 
289
        g_signal_connect (G_OBJECT (checkout_command), "command-finished",
 
290
                          G_CALLBACK (g_object_unref), 
 
291
                          NULL);
 
292
 
 
293
        g_free (branch);
 
294
 
 
295
        anjuta_command_start (ANJUTA_COMMAND (checkout_command));
 
296
}
 
297
 
 
298
static gboolean
 
299
on_branches_view_button_press_event (GtkWidget *branches_view, 
 
300
                                     GdkEventButton *event,
 
301
                                     GitBranchesPane *self)
 
302
{
 
303
        GtkTreeSelection *selection;
 
304
        AnjutaPlugin *plugin;
 
305
        AnjutaUI *ui;
 
306
        GtkMenu *menu;
 
307
 
 
308
        if (event->type == GDK_BUTTON_PRESS && event->button == 3)
 
309
        {
 
310
                selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (branches_view));
 
311
 
 
312
                if (gtk_tree_selection_count_selected_rows (selection) > 0)
 
313
                {
 
314
                        plugin = anjuta_dock_pane_get_plugin (ANJUTA_DOCK_PANE (self));
 
315
                        ui = anjuta_shell_get_ui (plugin->shell, NULL);
 
316
                        menu = GTK_MENU (gtk_ui_manager_get_widget (GTK_UI_MANAGER (ui),
 
317
                                                                    "/GitBranchPopup"));
 
318
 
 
319
                        gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button, 
 
320
                                        event->time);
 
321
                }
 
322
        }
 
323
 
 
324
        return FALSE;
 
325
}
 
326
 
 
327
static void
267
328
git_branches_pane_init (GitBranchesPane *self)
268
329
{
269
330
        gchar *objects[] = {"branches_pane",
333
394
        g_signal_connect (G_OBJECT (branch_selected_renderer), "toggled",
334
395
                          G_CALLBACK (on_branch_selected_renderer_toggled),
335
396
                          self);
 
397
 
 
398
        /* Switch branches on double-click */
 
399
        g_signal_connect (G_OBJECT (branches_view), "row-activated",
 
400
                          G_CALLBACK (on_branches_view_row_activated),
 
401
                          self);
 
402
 
 
403
        /* Pop-up menu */
 
404
        g_signal_connect (G_OBJECT (branches_view), "button-press-event",
 
405
                          G_CALLBACK (on_branches_view_button_press_event),
 
406
                          self);
336
407
}
337
408
 
338
409
static void
470
541
        return selected_branch;
471
542
}
472
543
 
 
544
gboolean
 
545
git_branches_pane_is_selected_branch_remote (GitBranchesPane *self)
 
546
{
 
547
        gboolean is_remote;
 
548
        GtkTreeView *branches_view;
 
549
        GtkTreeSelection *selection;
 
550
        GtkTreeModel *branches_list_model;
 
551
        GtkTreeIter iter;
 
552
 
 
553
        is_remote = FALSE;
 
554
        branches_view = GTK_TREE_VIEW (gtk_builder_get_object (self->priv->builder,
 
555
                                                               "branches_view"));
 
556
        selection = gtk_tree_view_get_selection (branches_view);
 
557
 
 
558
        if (gtk_tree_selection_count_selected_rows (selection) > 0)
 
559
        {
 
560
                gtk_tree_selection_get_selected (selection, &branches_list_model,
 
561
                                                 &iter);
 
562
 
 
563
                gtk_tree_model_get (branches_list_model, &iter, COL_REMOTE, 
 
564
                                    &is_remote, -1);
 
565
        }
 
566
 
 
567
        return is_remote;
 
568
}
 
569
 
473
570
static gboolean
474
571
clear_branch_selections (GtkTreeModel *model, GtkTreePath *path, 
475
572
                         GtkTreeIter *iter, gpointer data)