Mailinglist Archive: yast-commit (759 mails)
| < Previous | Next > |
[yast-commit] r45710 - in /trunk/gtk: ChangeLog src/YGPackageSelector.cc
- From: rpmcruz@xxxxxxxxxxxxxxxx
- Date: Wed, 26 Mar 2008 01:55:09 -0000
- Message-id: <20080326015509.8A1C8271E1@xxxxxxxxxxxxxxxx>
Author: rpmcruz
Date: Wed Mar 26 02:55:09 2008
New Revision: 45710
URL: http://svn.opensuse.org/viewcvs/yast?rev=45710&view=rev
Log:
* src/YGPackageSelector.cc: as requested by bug #373474, don't hide
package info/control view once shown, and don't let it overlap the
first selected package (in fact, we make sure a selection is always
visible when the list/icon view changes size).
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/YGPackageSelector.cc
Modified: trunk/gtk/ChangeLog
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=45710&r1=45709&r2=45710&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Wed Mar 26 02:55:09 2008
@@ -2,6 +2,11 @@
* src/yzyppwrapper.cc: fixed Patterns install_packages() warning.
+ * src/YGPackageSelector.cc: as requested by bug #373474, don't hide
+ package info/control view once shown, and don't let it overlap the
+ first selected package (in fact, we make sure a selection is always
+ visible when the list/icon view changes size).
+
2008-03-14 Ricardo Cruz <rpmcruz@xxxxxxxxxxxxxxxxxxx>
* src/YGPackageSelector.cc (PackageControl): fixed memory leak, on
Modified: trunk/gtk/src/YGPackageSelector.cc
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGPackageSelector.cc?rev=45710&r1=45709&r2=45710&view=diff
==============================================================================
--- trunk/gtk/src/YGPackageSelector.cc (original)
+++ trunk/gtk/src/YGPackageSelector.cc Wed Mar 26 02:55:09 2008
@@ -225,6 +225,7 @@
virtual void setModel (GtkTreeModel *model) = 0;
virtual GList *getSelectedPaths (GtkTreeModel **model) = 0;
virtual void selectAll() = 0;
+ virtual void ensureVisible (GtkTreePath *path) = 0;
virtual int countSelected()
{
@@ -364,6 +365,16 @@
static gboolean popup_key_cb (GtkWidget *widget, View *pThis)
{ pThis->signalPopup (0, gtk_get_current_event_time()); return
TRUE; }
+
+ static void size_allocated_cb (GtkWidget *widget, GtkAllocation
*alloc, View *pThis)
+ {
+ GList *paths = pThis->getSelectedPaths (NULL);
+ if (paths && !paths->next /* single selection */)
+ pThis->ensureVisible ((GtkTreePath *)
paths->data);
+ for (GList *i = paths; i; i = i->next)
+ gtk_tree_path_free ((GtkTreePath *) i->data);
+ g_list_free (paths);
+ }
};
struct ListView : public View
{
@@ -406,6 +417,8 @@
G_CALLBACK (popup_key_cb), this);
g_signal_connect (G_OBJECT (m_widget),
"button-press-event",
G_CALLBACK (popup_button_cb), this);
+ g_signal_connect_after (G_OBJECT (m_widget),
"size-allocate",
+ G_CALLBACK (size_allocated_cb),
this);
}
virtual void setModel (GtkTreeModel *model)
@@ -462,6 +475,12 @@
gtk_tree_model_get (model, &iter,
YGtkZyppModel::PTR_COLUMN, &package, -1);
return package != NULL;
}
+
+ virtual void ensureVisible (GtkTreePath *path)
+ {
+ GtkTreeView *view = GTK_TREE_VIEW (m_widget);
+ gtk_tree_view_scroll_to_cell (view, path, NULL, FALSE,
0, 0);
+ }
};
struct IconView : public View
{
@@ -480,6 +499,8 @@
G_CALLBACK (popup_key_cb), this);
g_signal_connect_after (G_OBJECT (m_widget),
"button-press-event",
G_CALLBACK
(popup_button_after_cb), this);
+ g_signal_connect_after (G_OBJECT (m_widget),
"size-allocate",
+ G_CALLBACK (size_allocated_cb),
this);
}
virtual void setModel (GtkTreeModel *model)
@@ -496,7 +517,8 @@
virtual GList *getSelectedPaths (GtkTreeModel **model)
{
GtkIconView *view = GTK_ICON_VIEW (m_widget);
- *model = gtk_icon_view_get_model (view);
+ if (model)
+ *model = gtk_icon_view_get_model (view);
GList *paths = gtk_icon_view_get_selected_items (view);
return paths;
}
@@ -514,6 +536,12 @@
pThis->signalPopup (3, event->time);
return FALSE;
}
+
+ virtual void ensureVisible (GtkTreePath *path)
+ {
+ GtkIconView *view = GTK_ICON_VIEW (m_widget);
+ gtk_icon_view_scroll_to_path (view, path, FALSE, 0, 0);
+ }
};
GtkWidget *m_bin;
@@ -2146,6 +2174,7 @@
gtk_widget_show_all (m_box);
m_changes->setContainer (changes_box);
packagesSelected (PkgList());
+ gtk_widget_hide (m_details_box);
}
~PackageSelector()
@@ -2166,9 +2195,7 @@
{
m_details->setPackages (packages);
m_control->setPackages (packages);
- if (packages.empty())
- gtk_widget_hide (m_details_box);
- else
+ if (!packages.empty())
gtk_widget_show (m_details_box);
}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: yast-commit+help@xxxxxxxxxxxx
Date: Wed Mar 26 02:55:09 2008
New Revision: 45710
URL: http://svn.opensuse.org/viewcvs/yast?rev=45710&view=rev
Log:
* src/YGPackageSelector.cc: as requested by bug #373474, don't hide
package info/control view once shown, and don't let it overlap the
first selected package (in fact, we make sure a selection is always
visible when the list/icon view changes size).
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/YGPackageSelector.cc
Modified: trunk/gtk/ChangeLog
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=45710&r1=45709&r2=45710&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Wed Mar 26 02:55:09 2008
@@ -2,6 +2,11 @@
* src/yzyppwrapper.cc: fixed Patterns install_packages() warning.
+ * src/YGPackageSelector.cc: as requested by bug #373474, don't hide
+ package info/control view once shown, and don't let it overlap the
+ first selected package (in fact, we make sure a selection is always
+ visible when the list/icon view changes size).
+
2008-03-14 Ricardo Cruz <rpmcruz@xxxxxxxxxxxxxxxxxxx>
* src/YGPackageSelector.cc (PackageControl): fixed memory leak, on
Modified: trunk/gtk/src/YGPackageSelector.cc
URL:
http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/YGPackageSelector.cc?rev=45710&r1=45709&r2=45710&view=diff
==============================================================================
--- trunk/gtk/src/YGPackageSelector.cc (original)
+++ trunk/gtk/src/YGPackageSelector.cc Wed Mar 26 02:55:09 2008
@@ -225,6 +225,7 @@
virtual void setModel (GtkTreeModel *model) = 0;
virtual GList *getSelectedPaths (GtkTreeModel **model) = 0;
virtual void selectAll() = 0;
+ virtual void ensureVisible (GtkTreePath *path) = 0;
virtual int countSelected()
{
@@ -364,6 +365,16 @@
static gboolean popup_key_cb (GtkWidget *widget, View *pThis)
{ pThis->signalPopup (0, gtk_get_current_event_time()); return
TRUE; }
+
+ static void size_allocated_cb (GtkWidget *widget, GtkAllocation
*alloc, View *pThis)
+ {
+ GList *paths = pThis->getSelectedPaths (NULL);
+ if (paths && !paths->next /* single selection */)
+ pThis->ensureVisible ((GtkTreePath *)
paths->data);
+ for (GList *i = paths; i; i = i->next)
+ gtk_tree_path_free ((GtkTreePath *) i->data);
+ g_list_free (paths);
+ }
};
struct ListView : public View
{
@@ -406,6 +417,8 @@
G_CALLBACK (popup_key_cb), this);
g_signal_connect (G_OBJECT (m_widget),
"button-press-event",
G_CALLBACK (popup_button_cb), this);
+ g_signal_connect_after (G_OBJECT (m_widget),
"size-allocate",
+ G_CALLBACK (size_allocated_cb),
this);
}
virtual void setModel (GtkTreeModel *model)
@@ -462,6 +475,12 @@
gtk_tree_model_get (model, &iter,
YGtkZyppModel::PTR_COLUMN, &package, -1);
return package != NULL;
}
+
+ virtual void ensureVisible (GtkTreePath *path)
+ {
+ GtkTreeView *view = GTK_TREE_VIEW (m_widget);
+ gtk_tree_view_scroll_to_cell (view, path, NULL, FALSE,
0, 0);
+ }
};
struct IconView : public View
{
@@ -480,6 +499,8 @@
G_CALLBACK (popup_key_cb), this);
g_signal_connect_after (G_OBJECT (m_widget),
"button-press-event",
G_CALLBACK
(popup_button_after_cb), this);
+ g_signal_connect_after (G_OBJECT (m_widget),
"size-allocate",
+ G_CALLBACK (size_allocated_cb),
this);
}
virtual void setModel (GtkTreeModel *model)
@@ -496,7 +517,8 @@
virtual GList *getSelectedPaths (GtkTreeModel **model)
{
GtkIconView *view = GTK_ICON_VIEW (m_widget);
- *model = gtk_icon_view_get_model (view);
+ if (model)
+ *model = gtk_icon_view_get_model (view);
GList *paths = gtk_icon_view_get_selected_items (view);
return paths;
}
@@ -514,6 +536,12 @@
pThis->signalPopup (3, event->time);
return FALSE;
}
+
+ virtual void ensureVisible (GtkTreePath *path)
+ {
+ GtkIconView *view = GTK_ICON_VIEW (m_widget);
+ gtk_icon_view_scroll_to_path (view, path, FALSE, 0, 0);
+ }
};
GtkWidget *m_bin;
@@ -2146,6 +2174,7 @@
gtk_widget_show_all (m_box);
m_changes->setContainer (changes_box);
packagesSelected (PkgList());
+ gtk_widget_hide (m_details_box);
}
~PackageSelector()
@@ -2166,9 +2195,7 @@
{
m_details->setPackages (packages);
m_control->setPackages (packages);
- if (packages.empty())
- gtk_widget_hide (m_details_box);
- else
+ if (!packages.empty())
gtk_widget_show (m_details_box);
}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: yast-commit+help@xxxxxxxxxxxx
| < Previous | Next > |