source: projects/synaptic/trunk/gtk/rgchangeswindow.cc @ 280

Revision 280, 6.8 KB checked in by yasumichi, 15 years ago (diff)

first import

Line 
1/* rgchangeswindow.cc
2 *
3 * Copyright (c) 2000, 2001 Conectiva S/A
4 *               2002 Michael Vogt <mvo@debian.org>
5 *
6 * Author: Alfredo K. Kojima <kojima@conectiva.com.br>
7 *         Michael Vogt <mvo@debian.org>
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22 * USA
23 */
24
25#include "config.h"
26
27#include <X11/keysym.h>
28
29#include <apt-pkg/configuration.h>
30#include <apt-pkg/strutl.h>
31
32#include "rpackagelister.h"
33
34#include <stdio.h>
35#include <string>
36#include <cassert>
37
38#include "rgchangeswindow.h"
39
40#include "i18n.h"
41
42
43RGChangesWindow::RGChangesWindow(RGWindow *wwin)
44: RGGladeWindow(wwin, "changes")
45{
46   // new tree store
47   _treeStore = gtk_tree_store_new(N_COLUMNS, G_TYPE_STRING);
48   _tree = glade_xml_get_widget(_gladeXML, "tree");
49   gtk_tree_view_set_model(GTK_TREE_VIEW(_tree), GTK_TREE_MODEL(_treeStore));
50
51   GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
52   GtkTreeViewColumn *column;
53   column = gtk_tree_view_column_new_with_attributes(_("Package changes"),
54                                                     renderer,
55                                                     "markup", PKG_COLUMN, NULL);
56   /* Add the column to the view. */
57   gtk_tree_view_append_column(GTK_TREE_VIEW(_tree), column);
58   gtk_widget_show(_tree);
59}
60
61
62
63void RGChangesWindow::confirm(RPackageLister *lister,
64                              vector<RPackage *> &kept,
65                              vector<RPackage *> &toInstall,
66                              vector<RPackage *> &toReInstall,
67                              vector<RPackage *> &toUpgrade,
68                              vector<RPackage *> &toRemove,
69                              vector<RPackage *> &toDowngrade,
70                              vector<RPackage *> &notAuthenticated)
71{
72   GtkTreeIter iter, iter_child;
73   GtkWidget *label;
74
75   if(!(toInstall.size() || toReInstall.size() || toUpgrade.size() ||
76        toRemove.size() || toDowngrade.size())) {
77      // we have no changes other than authentication warnings
78      label = glade_xml_get_widget(_gladeXML, "label_changes_header");
79      gtk_widget_hide(label);
80      label = glade_xml_get_widget(_gladeXML, "label_secondary");
81      gtk_widget_hide(label);
82   }
83
84  if (notAuthenticated.size() > 0) {
85      label = glade_xml_get_widget(_gladeXML, "label_auth_warning");
86      assert(label);
87      // FIXME: make this a message from a trust class (and remeber to
88      // change the text in rgsummarywindow then too)
89      gchar *msg = g_strdup_printf("<span weight=\"bold\" size=\"larger\">%s"
90                                   "</span>\n\n%s",
91                                   _("Warning"), 
92                                   _("You are about to install software that "
93                                     "<b>can't be authenticated</b>! Doing "
94                                     "this could allow a malicious individual "
95                                     "to damage or take control of your "
96                                     "system."));
97      gtk_label_set_markup(GTK_LABEL(label), msg);
98      gtk_widget_show(label);
99      g_free(msg);
100
101      gtk_tree_store_append(_treeStore, &iter, NULL);
102      gtk_tree_store_set(_treeStore, &iter,
103                         PKG_COLUMN, _("NOT AUTHENTICATED"), -1);
104      for (vector<RPackage *>::const_iterator p = notAuthenticated.begin();
105           p != notAuthenticated.end(); p++) {
106         gtk_tree_store_append(_treeStore, &iter_child, &iter);
107         gtk_tree_store_set(_treeStore, &iter_child,
108                            PKG_COLUMN, (*p)->name(), -1);
109      }
110   }
111
112   if (toRemove.size() > 0) {
113      /* removed */
114      gchar *str = g_strdup_printf("<b>%s</b>", _("To be removed"));
115      gtk_tree_store_append(_treeStore, &iter, NULL);
116      gtk_tree_store_set(_treeStore, &iter,
117                         PKG_COLUMN, str, -1);
118      for (vector<RPackage *>::const_iterator p = toRemove.begin();
119           p != toRemove.end(); p++) {
120         gtk_tree_store_append(_treeStore, &iter_child, &iter);
121         gtk_tree_store_set(_treeStore, &iter_child,
122                            PKG_COLUMN, (*p)->name(), -1);
123      }
124      g_free(str);
125   }
126
127   if (toDowngrade.size() > 0) {
128      /* downgrade */
129      gtk_tree_store_append(_treeStore, &iter, NULL);
130      gtk_tree_store_set(_treeStore, &iter,
131                         PKG_COLUMN, _("To be downgraded"), -1);
132      for (vector<RPackage *>::const_iterator p = toDowngrade.begin();
133           p != toDowngrade.end(); p++) {
134         gtk_tree_store_append(_treeStore, &iter_child, &iter);
135         gtk_tree_store_set(_treeStore, &iter_child,
136                            PKG_COLUMN, (*p)->name(), -1);
137      }
138   }
139
140   if (toInstall.size() > 0) {
141      gtk_tree_store_append(_treeStore, &iter, NULL);
142      gtk_tree_store_set(_treeStore, &iter,
143                         PKG_COLUMN, _("To be installed"), -1);
144      for (vector<RPackage *>::const_iterator p = toInstall.begin();
145           p != toInstall.end(); p++) {
146         gtk_tree_store_append(_treeStore, &iter_child, &iter);
147         gtk_tree_store_set(_treeStore, &iter_child,
148                            PKG_COLUMN, (*p)->name(), -1);
149      }
150   }
151
152   if (toUpgrade.size() > 0) {
153      gtk_tree_store_append(_treeStore, &iter, NULL);
154      gtk_tree_store_set(_treeStore, &iter,
155                         PKG_COLUMN, _("To be upgraded"), -1);
156      for (vector<RPackage *>::const_iterator p = toUpgrade.begin();
157           p != toUpgrade.end(); p++) {
158         gtk_tree_store_append(_treeStore, &iter_child, &iter);
159         gtk_tree_store_set(_treeStore, &iter_child,
160                            PKG_COLUMN, (*p)->name(), -1);
161      }
162   }
163
164   if (toReInstall.size() > 0) {
165      gtk_tree_store_append(_treeStore, &iter, NULL);
166      gtk_tree_store_set(_treeStore, &iter,
167                         PKG_COLUMN, _("To be re-installed"), -1);
168      for (vector<RPackage *>::const_iterator p = toReInstall.begin();
169           p != toInstall.end(); p++) {
170         gtk_tree_store_append(_treeStore, &iter_child, &iter);
171         gtk_tree_store_set(_treeStore, &iter_child,
172                            PKG_COLUMN, (*p)->name(), -1);
173      }
174   }
175
176   if (kept.size() > 0) {
177      gtk_tree_store_append(_treeStore, &iter, NULL);
178      gtk_tree_store_set(_treeStore, &iter, PKG_COLUMN, _("To be kept"), -1);
179      for (vector<RPackage *>::const_iterator p = kept.begin();
180           p != kept.end(); p++) {
181         gtk_tree_store_append(_treeStore, &iter_child, &iter);
182         gtk_tree_store_set(_treeStore, &iter_child,
183                            PKG_COLUMN, (*p)->name(), -1);
184      }
185   }
186
187   gtk_tree_view_expand_all(GTK_TREE_VIEW(_tree));
188}
Note: See TracBrowser for help on using the repository browser.