Author: rpmcruz
Date: Thu Mar 11 03:43:06 2010
New Revision: 61246
URL: http://svn.opensuse.org/viewcvs/yast?rev=61246&view=rev
Log:
* src/pkg/YGPackageSelector.cc & src/pkg/ygtkpkglistview.h/cc:
added action col as suggested by Atri Bhattacharya for
testing purposes.
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/pkg/YGPackageSelector.cc
trunk/gtk/src/pkg/ygtkpkglistview.cc
trunk/gtk/src/pkg/ygtkpkglistview.h
trunk/gtk/src/pkg/ygtkpkgundolist.cc
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=61246&r1=61245&r2=61246&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Thu Mar 11 03:43:06 2010
@@ -1,3 +1,9 @@
+2010-03-11 Ricardo Cruz
+
+ * src/pkg/YGPackageSelector.cc & src/pkg/ygtkpkglistview.h/cc:
+ added action col as suggested by Atri Bhattacharya for
+ testing purposes.
+
2010-03-10 Ricardo Cruz
* src/pkg/YGPackageSelector.cc: only confirms cancel
Modified: trunk/gtk/src/pkg/YGPackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/YGPackageSelector.cc?rev=61246&r1=61245&r2=61246&view=diff
==============================================================================
--- trunk/gtk/src/pkg/YGPackageSelector.cc (original)
+++ trunk/gtk/src/pkg/YGPackageSelector.cc Thu Mar 11 03:43:06 2010
@@ -25,6 +25,8 @@
#include "ygtkpkgstatusbar.h"
#include "ygtkpkgdetailview.h"
+#define USE_LIST_BUTTONS
+
YGPackageSelector *YGPackageSelector::singleton = 0;
struct YGPackageSelector::Impl :
@@ -71,11 +73,18 @@
m_queryWidgets.push_back (m_entry);
m_list = new YGtkPkgListView (false, Ypp::List::NAME_SORT, false, true);
+#ifdef USE_LIST_BUTTONS
+ m_list->addImageColumn (NULL, STATUS_ICON_PROP);
+#else
m_list->addCheckColumn (INSTALLED_CHECK_PROP);
+#endif
m_list->addTextColumn (_("Name"), NAME_SUMMARY_PROP, true, -1);
m_list->addTextColumn (_("Version"), VERSION_PROP, true, 125);
if (!onlineUpdate)
m_list->addTextColumn (_("Size"), SIZE_PROP, false, 85);
+#ifdef USE_LIST_BUTTONS
+ m_list->addButtonColumn (_("Action"), ACTION_BUTTON_PROP);
+#endif
m_list->addTextColumn (_("Repository"), REPOSITORY_PROP, false, 180);
if (!onlineUpdate)
m_list->addTextColumn (_("Supportability"), SUPPORT_PROP, false, 120);
Modified: trunk/gtk/src/pkg/ygtkpkglistview.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/ygtkpkglistview.cc?rev=61246&r1=61245&r2=61246&view=diff
==============================================================================
--- trunk/gtk/src/pkg/ygtkpkglistview.cc (original)
+++ trunk/gtk/src/pkg/ygtkpkglistview.cc Thu Mar 11 03:43:06 2010
@@ -28,6 +28,7 @@
XPAD_PROP,
// string
VERSION_FOREGROUND_PROP, BACKGROUND_PROP, REPOSITORY_STOCK_PROP,
+ ACTION_ICON_PROP,
// pointer
PTR_PROP,
TOTAL_IMPL_PROPS
@@ -39,7 +40,8 @@
case NAME_PROP: case ACTION_NAME_PROP: case NAME_SUMMARY_PROP:
case VERSION_PROP: case SINGLE_VERSION_PROP: case REPOSITORY_PROP:
case SUPPORT_PROP: case SIZE_PROP: case STATUS_ICON_PROP:
- case VERSION_FOREGROUND_PROP: case BACKGROUND_PROP: case REPOSITORY_STOCK_PROP:
+ case ACTION_BUTTON_PROP: case ACTION_ICON_PROP: case VERSION_FOREGROUND_PROP:
+ case BACKGROUND_PROP: case REPOSITORY_STOCK_PROP:
return G_TYPE_STRING;
case INSTALLED_CHECK_PROP:
case HAS_UPGRADE_PROP: case TO_UPGRADE_PROP:
@@ -235,6 +237,28 @@
case STATUS_ICON_PROP:
g_value_set_string (value, getStatusStockIcon (sel));
break;
+ case ACTION_ICON_PROP: {
+ const char *stock;
+ if (sel.toModify())
+ stock = GTK_STOCK_UNDO;
+ else if (sel.isInstalled())
+ stock = GTK_STOCK_REMOVE;
+ else
+ stock = GTK_STOCK_ADD;
+ g_value_set_string (value, stock);
+ break;
+ }
+ case ACTION_BUTTON_PROP: {
+ const char *text;
+ if (sel.toModify())
+ text = _("Undo");
+ else if (sel.isInstalled())
+ text = _("Remove");
+ else
+ text = _("Install");
+ g_value_set_string (value, text);
+ break;
+ }
case PTR_PROP:
g_value_set_pointer (value, (void *) &sel);
break;
@@ -496,6 +520,21 @@
sel->undo();
}
+static void action_button_toggled_cb (YGtkCellRendererButton *renderer, gchar *path_str,
+ YGtkPkgListView *pThis)
+{
+fprintf (stderr, "action\n");
+ GtkTreeView *view = GTK_TREE_VIEW (pThis->impl->view);
+ GtkTreeModel *model = gtk_tree_view_get_model (view);
+ Ypp::Selectable *sel = ygtk_zypp_model_get_sel (model, path_str);
+ if (sel->toModify())
+ sel->undo();
+ else if (sel->isInstalled())
+ sel->remove();
+ else
+ sel->install();
+}
+
static gboolean query_tooltip_cb (GtkWidget *widget, gint x, gint y,
gboolean keyboard_mode, GtkTooltip *tooltip, YGtkPkgListView *pThis)
{
@@ -721,16 +760,18 @@
gtk_tree_view_append_column (view, column);
}
-void YGtkPkgListView::addImageColumn (const char *header, int property)
+void YGtkPkgListView::addImageColumn (const char *header, int property, bool onlyManualModified)
{
GtkTreeView *view = GTK_TREE_VIEW (impl->view);
GtkCellRenderer *renderer = gtk_cell_renderer_pixbuf_new();
GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes (
- header, renderer, "icon-name", property,
- "visible", MANUAL_MODIFY_PROP, NULL);
+ header, renderer, "icon-name", property, NULL);
if (impl->colorModified)
gtk_tree_view_column_add_attribute (column, renderer,
"cell-background", BACKGROUND_PROP);
+ if (onlyManualModified)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "visible", MANUAL_MODIFY_PROP);
gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
int height = MAX (32, YGUtils::getCharsHeight (impl->view, 1));
@@ -739,24 +780,39 @@
gtk_tree_view_append_column (view, column);
}
-void YGtkPkgListView::addUndoButtonColumn (const char *header)
+void YGtkPkgListView::addButtonColumn (const char *header, int property)
{
GtkCellRenderer *renderer = ygtk_cell_renderer_button_new();
GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes (
- header, renderer, "sensitive", IS_LOCKED_PROP,
- "visible", MANUAL_MODIFY_PROP, "visible", NULL);
+ header, renderer, "sensitive", IS_LOCKED_PROP, NULL);
if (impl->colorModified)
gtk_tree_view_column_add_attribute (column, renderer,
"cell-background", BACKGROUND_PROP);
- const char *text = _("Undo");
- g_object_set (G_OBJECT (renderer), "text", text, NULL);
gboolean show_icon;
g_object_get (G_OBJECT (gtk_settings_get_default()), "gtk-button-images", &show_icon, NULL);
- if (show_icon)
- g_object_set (G_OBJECT (renderer), "stock-id", GTK_STOCK_UNDO, NULL);
- g_signal_connect (G_OBJECT (renderer), "toggled",
- G_CALLBACK (undo_toggled_cb), this);
+
+ const char *text;
+ if (property == UNDO_BUTTON_PROP) { // static property (always "Undo")
+ text = _("Undo");
+ g_object_set (G_OBJECT (renderer), "text", text, NULL);
+ if (show_icon)
+ g_object_set (G_OBJECT (renderer), "stock-id", GTK_STOCK_UNDO, NULL);
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "visible", MANUAL_MODIFY_PROP);
+ g_signal_connect (G_OBJECT (renderer), "toggled",
+ G_CALLBACK (undo_toggled_cb), this);
+ }
+ else {
+ text = "xxxxxxxxxx";
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "text", property);
+ if (show_icon)
+ gtk_tree_view_column_add_attribute (column, renderer,
+ "stock-id", ACTION_ICON_PROP);
+ g_signal_connect (G_OBJECT (renderer), "toggled",
+ G_CALLBACK (action_button_toggled_cb), this);
+ }
PangoRectangle rect;
int width = 0;
Modified: trunk/gtk/src/pkg/ygtkpkglistview.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/ygtkpkglistview.h?rev=61246&r1=61245&r2=61246&view=diff
==============================================================================
--- trunk/gtk/src/pkg/ygtkpkglistview.h (original)
+++ trunk/gtk/src/pkg/ygtkpkglistview.h Thu Mar 11 03:43:06 2010
@@ -14,7 +14,7 @@
enum Property {
INSTALLED_CHECK_PROP, NAME_PROP, ACTION_NAME_PROP, NAME_SUMMARY_PROP,
VERSION_PROP, SINGLE_VERSION_PROP, REPOSITORY_PROP, SUPPORT_PROP,
- SIZE_PROP, STATUS_ICON_PROP, TOTAL_PROPS
+ SIZE_PROP, STATUS_ICON_PROP, ACTION_BUTTON_PROP, UNDO_BUTTON_PROP, TOTAL_PROPS
};
struct YGtkPkgListView {
@@ -32,8 +32,8 @@
void addTextColumn (const char *header, int property, bool visible, int size);
void addCheckColumn (int checkProperty);
- void addImageColumn (const char *header, int property);
- void addUndoButtonColumn (const char *header);
+ void addImageColumn (const char *header, int property, bool onlyManualModified = false);
+ void addButtonColumn (const char *header, int property);
struct Listener {
virtual void selectionChanged() = 0;
Modified: trunk/gtk/src/pkg/ygtkpkgundolist.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/ygtkpkgundolist.cc?rev=61246&r1=61245&r2=61246&view=diff
==============================================================================
--- trunk/gtk/src/pkg/ygtkpkgundolist.cc (original)
+++ trunk/gtk/src/pkg/ygtkpkgundolist.cc Thu Mar 11 03:43:06 2010
@@ -227,10 +227,10 @@
YGtkPkgUndoView()
: YGtkPkgListView (true, -1, true, false, true)
{
- addImageColumn (NULL, STATUS_ICON_PROP);
+ addImageColumn (NULL, STATUS_ICON_PROP, true);
addTextColumn (_("Name"), ACTION_NAME_PROP, true, -1);
addTextColumn (_("Version"), SINGLE_VERSION_PROP, true, 125);
- addUndoButtonColumn (_("Revert?"));
+ addButtonColumn (_("Revert?"), UNDO_BUTTON_PROP);
undoChanged (YGPackageSelector::get()->undoList());
YGPackageSelector::get()->undoList()->addListener (this);
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org