~ubuntu-branches/ubuntu/utopic/synaptic/utopic

« back to all changes in this revision

Viewing changes to gtk/rgrepositorywin.cc

  • Committer: Package Import Robot
  • Author(s): Michael Vogt
  • Date: 2013-05-08 21:11:11 UTC
  • mfrom: (19.1.8 experimental)
  • Revision ID: package-import@ubuntu.com-20130508211111-p6sq5df1u3r1de10
Tags: 0.80
update translations from launchpad

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
#include <apt-pkg/sourcelist.h>
29
29
#include <glib.h>
30
30
#include <cassert>
 
31
 
 
32
#include <gdk/gdk.h>
 
33
 
31
34
#include "rgrepositorywin.h"
32
35
#include "rguserdialog.h"
33
36
#include "rgutils.h"
68
71
   N_SOURCES_COLUMNS
69
72
};
70
73
 
71
 
 void RGRepositoryEditor::item_toggled(GtkCellRendererToggle *cell, 
 
74
enum {
 
75
   COL_NAME,
 
76
   COL_TYPE,
 
77
};
 
78
 
 
79
void RGRepositoryEditor::item_toggled(GtkCellRendererToggle *cell, 
72
80
                                       gchar *path_str, gpointer data)
73
81
{
74
82
   RGRepositoryEditor *me = (RGRepositoryEditor *)g_object_get_data(G_OBJECT(cell), "me");
123
131
 
124
132
   setTitle(_("Repositories"));
125
133
   gtk_window_set_modal(GTK_WINDOW(_win), TRUE);
126
 
   gtk_window_set_policy(GTK_WINDOW(_win), TRUE, TRUE, FALSE);
 
134
   //gtk_window_set_policy(GTK_WINDOW(_win), TRUE, TRUE, FALSE);
127
135
 
128
136
   // build gtktreeview
129
137
   _sourcesListStore = gtk_list_store_new(N_SOURCES_COLUMNS,
215
223
 
216
224
   //_cbEnabled = GTK_WIDGET(gtk_builder_get_object(_builder, "checkbutton_enabled"));
217
225
 
218
 
   _optType = GTK_WIDGET(gtk_builder_get_object(_builder, "optionmenu_type"));
219
 
   _optTypeMenu = gtk_menu_new();
220
 
 
221
 
   GtkWidget *item;
 
226
   _optType = GTK_WIDGET(gtk_builder_get_object(_builder, "combo_type"));
 
227
 
 
228
   renderer = gtk_cell_renderer_text_new();
 
229
   gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (_optType), renderer, TRUE);
 
230
   gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (_optType), renderer,
 
231
                                   "text", COL_NAME,
 
232
                                   NULL);
 
233
   _optTypeMenu = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
 
234
 
 
235
   GtkTreeIter item;
222
236
#if HAVE_RPM
223
 
   item = gtk_menu_item_new_with_label("rpm");
224
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
225
 
   gtk_widget_show(item);
226
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_RPM);
227
 
 
228
 
   item = gtk_menu_item_new_with_label("rpm-src");
229
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
230
 
   gtk_widget_show(item);
231
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_RPMSRC);
232
 
 
233
 
   item = gtk_menu_item_new_with_label("rpm-dir");
234
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
235
 
   gtk_widget_show(item);
236
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_RPMDIR);
237
 
 
238
 
   item = gtk_menu_item_new_with_label("rpm-src-dir");
239
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
240
 
   gtk_widget_show(item);
241
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_RPMSRCDIR);
242
 
 
243
 
   item = gtk_menu_item_new_with_label("repomd");
244
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
245
 
   gtk_widget_show(item);
246
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_REPOMD);
247
 
 
248
 
   item = gtk_menu_item_new_with_label("repomd-src");
249
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
250
 
   gtk_widget_show(item);
251
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_REPOMDSRC);
 
237
   gtk_list_store_append(_optTypeMenu, &item);
 
238
   gtk_list_store_set(_optTypeMenu, &item, 
 
239
                      COL_NAME, "rpm", 
 
240
                      COL_TYPE, ITEM_TYPE_RPM,
 
241
                      -1);
 
242
 
 
243
   gtk_list_store_append(_optTypeMenu, &item);
 
244
   gtk_list_store_set(_optTypeMenu, &item, 
 
245
                      COL_NAME, "rpm-src", 
 
246
                      COL_TYPE, ITEM_TYPE_RPMSRC,
 
247
                      -1);
 
248
 
 
249
   gtk_list_store_append(_optTypeMenu, &item);
 
250
   gtk_list_store_set(_optTypeMenu, &item, 
 
251
                      COL_NAME, "rpm-dir", 
 
252
                      COL_TYPE, ITEM_TYPE_RPMDIR,
 
253
                      -1);
 
254
 
 
255
   gtk_list_store_append(_optTypeMenu, &item);
 
256
   gtk_list_store_set(_optTypeMenu, &item, 
 
257
                      COL_NAME, "rpm-src-dir",
 
258
                      COL_TYPE, ITEM_TYPE_RPMSRCDIR,
 
259
                      -1);
 
260
 
 
261
   gtk_list_store_append(_optTypeMenu, &item);
 
262
   gtk_list_store_set(_optTypeMenu, &item, 
 
263
                      COL_NAME, "repomd",
 
264
                      COL_TYPE, ITEM_TYPE_REPOMD,
 
265
                      -1);
 
266
 
 
267
   gtk_list_store_append(_optTypeMenu, &item);
 
268
   gtk_list_store_set(_optTypeMenu, &item, 
 
269
                      COL_NAME, "repomd-src",
 
270
                      COL_TYPE, ITEM_TYPE_REPOMDSRC,
 
271
                      -1);
252
272
#else
253
 
   item = gtk_menu_item_new_with_label(_("Binary (deb)"));
254
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
255
 
   gtk_widget_show(item);
256
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_DEB);
 
273
   gtk_list_store_append(_optTypeMenu, &item);
 
274
   gtk_list_store_set(_optTypeMenu, &item, 
 
275
                      COL_NAME, _("Binary (deb)"),
 
276
                      COL_TYPE, ITEM_TYPE_DEB,
 
277
                      -1);
257
278
 
258
 
   item = gtk_menu_item_new_with_label(_("Source (deb-src)"));
259
 
   gtk_menu_append(GTK_MENU(_optTypeMenu), item);
260
 
   gtk_widget_show(item);
261
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) ITEM_TYPE_DEBSRC);
 
279
   gtk_list_store_append(_optTypeMenu, &item);
 
280
   gtk_list_store_set(_optTypeMenu, &item, 
 
281
                      COL_NAME, _("Source (deb-src)"),
 
282
                      COL_TYPE, ITEM_TYPE_DEBSRC,
 
283
                      -1);
262
284
#endif
263
 
   gtk_option_menu_set_menu(GTK_OPTION_MENU(_optType), _optTypeMenu);
264
 
 
 
285
   gtk_combo_box_set_model(GTK_COMBO_BOX(_optType),
 
286
                           GTK_TREE_MODEL(_optTypeMenu));
 
287
 
 
288
 
 
289
   // the (rpm) vendor menu
265
290
   _optVendor = GTK_WIDGET(gtk_builder_get_object(_builder,
266
 
                                                  "optionmenu_vendor"));
267
 
   _optVendorMenu = gtk_menu_new();
268
 
   item = gtk_menu_item_new_with_label(_("(no vendor)"));
269
 
   gtk_menu_append(GTK_MENU(_optVendorMenu), item);
270
 
   gtk_widget_show(item);
271
 
   gtk_option_menu_set_menu(GTK_OPTION_MENU(_optVendor), _optVendorMenu);
272
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) "");
 
291
                                                  "combo_vendor"));
 
292
   renderer = gtk_cell_renderer_text_new();
 
293
   gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (_optVendor), renderer, TRUE);
 
294
   gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (_optVendor), renderer,
 
295
                                   "text", 0,
 
296
                                   NULL);
 
297
   _optVendorMenu = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
 
298
 
 
299
   gtk_list_store_append(_optVendorMenu, &item);
 
300
   gtk_list_store_set(_optVendorMenu, &item, 
 
301
                      0, _("(no vendor)"),
 
302
                      1, "",
 
303
                      -1);
 
304
 
 
305
   gtk_combo_box_set_model(GTK_COMBO_BOX(_optVendor),
 
306
                           GTK_TREE_MODEL(_optVendorMenu));
273
307
 
274
308
#ifndef HAVE_RPM
275
309
   // debian can't use the vendors menu, so we hide it
371
405
      return false;
372
406
   }
373
407
 
374
 
   GdkColormap *cmap = gdk_colormap_get_system();
 
408
   // FIXME: is this good enough?
375
409
   _gray.red = _gray.green = _gray.blue = 0xAA00;
376
 
   gdk_color_alloc(cmap, &_gray);
377
410
 
378
411
   GtkTreeIter iter;
379
412
   for (SourcesListIter it = _lst.SourceRecords.begin();
410
443
 
411
444
void RGRepositoryEditor::UpdateVendorMenu()
412
445
{
413
 
   gtk_option_menu_remove_menu(GTK_OPTION_MENU(_optVendor));
414
 
   _optVendorMenu = gtk_menu_new();
415
 
   GtkWidget *item = gtk_menu_item_new_with_label(_("(no vendor)"));
416
 
   gtk_menu_append(GTK_MENU(_optVendorMenu), item);
417
 
   gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer) "");
418
 
   gtk_widget_show(item);
 
446
   GtkTreeIter item;
 
447
   gtk_list_store_clear(_optVendorMenu);
 
448
 
 
449
   gtk_list_store_append(_optVendorMenu, &item);
 
450
   gtk_list_store_set(_optVendorMenu, &item, 
 
451
                      0, _("(no vendor)"),
 
452
                      1, "",
 
453
                      -1);
 
454
 
419
455
   for (VendorsListIter it = _lst.VendorRecords.begin();
420
456
        it != _lst.VendorRecords.end(); it++) {
421
 
      item = gtk_menu_item_new_with_label((*it)->VendorID.c_str());
422
 
      gtk_menu_append(GTK_MENU(_optVendorMenu), item);
423
 
      gtk_widget_show(item);
424
 
      gtk_object_set_data(GTK_OBJECT(item), "id",
425
 
                          (gpointer) (*it)->VendorID.c_str());
 
457
      gtk_list_store_append(_optVendorMenu, &item);
 
458
      gtk_list_store_set(_optVendorMenu, &item, 
 
459
                         0, (*it)->VendorID.c_str(),
 
460
                         1, (*it)->VendorID.c_str(),
 
461
                         -1);
426
462
   }
427
 
   gtk_option_menu_set_menu(GTK_OPTION_MENU(_optVendor), _optVendorMenu);
428
463
}
429
464
 
430
465
int RGRepositoryEditor::VendorMenuIndex(string VendorID)
444
479
   RGRepositoryEditor *me = (RGRepositoryEditor *) data;
445
480
   //cout << "RGRepositoryEditor::DoClear(GtkWidget *, gpointer data)"<<endl;
446
481
 
447
 
   gtk_option_menu_set_history(GTK_OPTION_MENU(me->_optType), 0);
448
 
   gtk_option_menu_set_history(GTK_OPTION_MENU(me->_optVendor), 0);
 
482
   gtk_combo_box_set_active(GTK_COMBO_BOX(me->_optType), 0);
 
483
   gtk_combo_box_set_active(GTK_COMBO_BOX(me->_optVendor), 0);
449
484
   gtk_entry_set_text(GTK_ENTRY(me->_entryURI), "");
450
485
   gtk_entry_set_text(GTK_ENTRY(me->_entryDist), "");
451
486
   gtk_entry_set_text(GTK_ENTRY(me->_entrySect), "");
512
547
   if (!status)
513
548
      rec->Type |= SourcesList::Disabled;
514
549
 
515
 
   GtkWidget *menuitem = gtk_menu_get_active(GTK_MENU(_optTypeMenu));
516
 
   switch ((long)(gtk_object_get_data(GTK_OBJECT(menuitem), "id"))) {
 
550
   GtkTreeIter item;
 
551
   int type;
 
552
   gtk_combo_box_get_active_iter(GTK_COMBO_BOX(_optType), &item);
 
553
   gtk_tree_model_get(GTK_TREE_MODEL(_optTypeMenu), &item,
 
554
                      1, &type,
 
555
                      -1);
 
556
 
 
557
   switch (type) {
517
558
      case ITEM_TYPE_DEB:
518
559
         rec->Type |= SourcesList::Deb;
519
560
         break;
543
584
         return;
544
585
   }
545
586
 
546
 
   menuitem = gtk_menu_get_active(GTK_MENU(_optVendorMenu));
547
 
   rec->VendorID = (char *)gtk_object_get_data(GTK_OBJECT(menuitem), "id");
548
 
 
 
587
   gtk_combo_box_get_active_iter(GTK_COMBO_BOX(_optVendor), &item);
 
588
   gtk_tree_model_get(GTK_TREE_MODEL(_optVendorMenu), &item,
 
589
                      1, &type,
 
590
                      -1);
 
591
   rec->VendorID = type;
549
592
   rec->URI = gtk_entry_get_text(GTK_ENTRY(_entryURI));
550
593
   rec->Dist = gtk_entry_get_text(GTK_ENTRY(_entryDist));
551
594
 
672
715
         id = ITEM_TYPE_REPOMD;
673
716
      else if (rec->Type & SourcesList::RepomdSrc)
674
717
         id = ITEM_TYPE_REPOMDSRC;
675
 
      gtk_option_menu_set_history(GTK_OPTION_MENU(me->_optType), id);
 
718
      gtk_combo_box_set_active(GTK_COMBO_BOX(me->_optType), id);
676
719
 
677
 
      gtk_option_menu_set_history(GTK_OPTION_MENU(me->_optVendor),
 
720
      gtk_combo_box_set_active(GTK_COMBO_BOX(me->_optVendor),
678
721
                                  me->VendorMenuIndex(rec->VendorID));
679
722
 
680
723
      gtk_entry_set_text(GTK_ENTRY(me->_entryURI), utf8(rec->URI.c_str()));
682
725
      gtk_entry_set_text(GTK_ENTRY(me->_entrySect), "");
683
726
 
684
727
      for (unsigned int I = 0; I < rec->NumSections; I++) {
685
 
         gtk_entry_append_text(GTK_ENTRY(me->_entrySect),
686
 
                               utf8(rec->Sections[I].c_str()));
687
 
         gtk_entry_append_text(GTK_ENTRY(me->_entrySect), " ");
 
728
         int pos = -1; // FIXME: is this insert at end?
 
729
         gtk_editable_insert_text(GTK_EDITABLE(me->_entrySect),
 
730
                                  utf8(rec->Sections[I].c_str()),
 
731
                                  -1,
 
732
                                  &pos);
 
733
         gtk_editable_insert_text(GTK_EDITABLE(me->_entrySect), " ", -1, &pos);
688
734
      }
689
735
   } else {
690
736
      //cout << "no selection" << endl;
698
744
 
699
745
void RGRepositoryEditor::VendorsWindow(GtkWidget *, void *data)
700
746
{
 
747
#if 0 // PORTME
701
748
   RGRepositoryEditor *me = (RGRepositoryEditor *) data;
702
749
   RGVendorsEditor w(me, me->_lst);
703
750
   w.Run();
704
751
   GtkWidget *menuitem = gtk_menu_get_active(GTK_MENU(me->_optVendorMenu));
705
 
   string VendorID = (char *)gtk_object_get_data(GTK_OBJECT(menuitem), "id");
 
752
   string VendorID = (char *)g_object_get_data(G_OBJECT(menuitem), "id");
706
753
   me->UpdateVendorMenu();
707
754
   gtk_option_menu_set_history(GTK_OPTION_MENU(me->_optVendor),
708
755
                               me->VendorMenuIndex(VendorID));
 
756
#endif
709
757
}
710
758
 
711
759
void RGRepositoryEditor::DoUpDown(GtkWidget *self, gpointer data)