Author: rpmcruz
Date: Sun Mar 21 14:04:51 2010
New Revision: 61409
URL: http://svn.opensuse.org/viewcvs/yast?rev=61409&view=rev
Log:
* src/YGPackageSelector.cc & src/ygtkpkgfilterview.cc:
changed refreshing strategy: UI should feel faster now.
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/pkg/YGPackageSelector.cc
trunk/gtk/src/pkg/ygtkpkgfilterview.cc
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=61409&r1=61408&r2=61409&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Sun Mar 21 14:04:51 2010
@@ -1,3 +1,8 @@
+2010-03-21 Ricardo Cruz
+
+ * src/YGPackageSelector.cc & src/ygtkpkgfilterview.cc:
+ changed refreshing strategy: UI should feel faster now.
+
2010-03-18 Ricardo Cruz
* src/ygtkwizard.c & src/pkg/ygtkpkgsearchentry.cc: use
Modified: trunk/gtk/src/pkg/YGPackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/YGPackageSelector.cc?rev=61409&r1=61408&r2=61409&view=diff
==============================================================================
--- trunk/gtk/src/pkg/YGPackageSelector.cc (original)
+++ trunk/gtk/src/pkg/YGPackageSelector.cc Sun Mar 21 14:04:51 2010
@@ -44,6 +44,8 @@
std::list std::string m_filterSuffices;
GtkWidget *m_overview;
YGtkPkgDetailView *m_details;
+guint m_refresh_id;
+Ypp::List m_refresh_list;
struct SuffixFilter : public Ypp::Match {
SuffixFilter (Impl *pThis) : pThis (pThis) {}
@@ -176,7 +178,7 @@
return vpaned;
}
- Impl() : m_menu (NULL), m_details (NULL)
+ Impl() : m_menu (NULL), m_details (NULL), m_refresh_id (0), m_refresh_list (0)
{
Ypp::init();
m_undo = new YGtkPkgUndoList();
@@ -204,6 +206,8 @@
~Impl()
{
+ if (m_refresh_id)
+ g_source_remove (m_refresh_id);
for (std::list ::iterator it = m_queryWidgets.begin();
it != m_queryWidgets.end(); it++)
delete *it;
@@ -474,8 +478,22 @@
empty ? gtk_widget_hide (m_toolbox) : gtk_widget_show_all (m_toolbox);
}
+ static gboolean refresh_filters_timeout_cb (gpointer data)
+ {
+ Impl *pThis = (Impl *) data;
+ pThis->refreshToolbox();
+ pThis->refreshFilters (pThis->m_refresh_list);
+ pThis->m_refresh_id = 0;
+ return FALSE;
+ }
+
virtual void refreshQuery()
{
+ if (m_refresh_id) {
+ g_source_remove (m_refresh_id);
+ m_refresh_id = 0;
+ }
+
YGUI::ui()->busyCursor();
if (YGPackageSelector::get()->breath()) return;
@@ -499,9 +517,11 @@
if (YGPackageSelector::get()->breath()) return;
m_list->setHighlight (keywords);
- if (YGPackageSelector::get()->breath()) return;
- refreshToolbox();
- refreshFilters (list);
+ m_refresh_list = list;
+ int wait = 2500;
+ if (keywords.empty() || list.size() == 0)
+ wait = 500;
+ m_refresh_id = g_timeout_add_full (G_PRIORITY_LOW, wait, refresh_filters_timeout_cb, this, NULL);
}
// YGtkPkgQueryCombo callback
Modified: trunk/gtk/src/pkg/ygtkpkgfilterview.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/ygtkpkgfilterview.cc?rev=61409&r1=61408&r2=61409&view=diff
==============================================================================
--- trunk/gtk/src/pkg/ygtkpkgfilterview.cc (original)
+++ trunk/gtk/src/pkg/ygtkpkgfilterview.cc Sun Mar 21 14:04:51 2010
@@ -75,10 +75,6 @@
if (separator) return FALSE;
int row = gtk_tree_path_get_indices (path)[0];
- if ((row % 4) == 0) // let the UI breath
- if (YGPackageSelector::get()->breath())
- return TRUE;
-
if (row == 0 && data->pThis->firstRowIsAll())
data->pThis->setRowCount (0, data->list->size());
else
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org