Author: rpmcruz
Date: Wed Mar 24 16:54:56 2010
New Revision: 61474
URL: http://svn.opensuse.org/viewcvs/yast?rev=61474&view=rev
Log:
* src/pkg/YGPackageSelector.cc: improved yielding of
our refresh pseudo-thread.
* modules/FindGTK2.cmake: upgraded build file downstream.
Modified:
trunk/gtk/ChangeLog
trunk/gtk/modules/FindGTK2.cmake
trunk/gtk/src/pkg/YGPackageSelector.cc
trunk/gtk/src/pkg/YGPackageSelector.h
trunk/gtk/src/pkg/ygtkpkgsearchentry.cc
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=61474&r1=61473&r2=61474&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Wed Mar 24 16:54:56 2010
@@ -1,3 +1,10 @@
+2010-03-24 Ricardo Cruz
+
+ * src/pkg/YGPackageSelector.cc: improved yielding of
+ our refresh pseudo-thread.
+
+ * modules/FindGTK2.cmake: upgraded build file downstream.
+
2010-03-21 Ricardo Cruz
* src/pkg/YGPackageSelector.cc: fixed crash when
Modified: trunk/gtk/modules/FindGTK2.cmake
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/modules/FindGTK2.cmake?rev=61474&r1=61473&r2=61474&view=diff
==============================================================================
--- trunk/gtk/modules/FindGTK2.cmake (original)
+++ trunk/gtk/modules/FindGTK2.cmake Wed Mar 24 16:54:56 2010
@@ -64,6 +64,9 @@
# (To distributed this file outside of CMake, substitute the full
# License text for the above reference.)
+# Version 0.8 (1/4/2010)
+# * Get module working under MacOSX fink by adding /sw/include, /sw/lib
+# to PATHS and the gobject library
# Version 0.7 (3/22/09)
# * Checked into CMake CVS
# * Added versioning support
@@ -167,6 +170,8 @@
/opt/gnome/lib
/opt/openwin/include
/usr/openwin/lib
+ /sw/include
+ /sw/lib
$ENV{GTKMM_BASEPATH}/include
$ENV{GTKMM_BASEPATH}/lib
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/include
@@ -277,6 +282,7 @@
/opt/gnome/lib64
/usr/openwin/lib
/usr/openwin/lib64
+ /sw/lib
$ENV{GTKMM_BASEPATH}/lib
[HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]/lib
[HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
@@ -386,10 +392,12 @@
foreach(_GTK2_component ${GTK2_FIND_COMPONENTS})
if(_GTK2_component STREQUAL "gtk")
-
_GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h)
_GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h)
_GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib false true)
+
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GOBJECT_INCLUDE_DIR gobject/gobject.h)
+ _GTK2_FIND_LIBRARY (GTK2_GOBJECT_LIBRARY gobject false true)
_GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h)
_GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h)
Modified: trunk/gtk/src/pkg/YGPackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/YGPackageSelector.cc?rev=61474&r1=61473&r2=61474&view=diff
==============================================================================
--- trunk/gtk/src/pkg/YGPackageSelector.cc (original)
+++ trunk/gtk/src/pkg/YGPackageSelector.cc Wed Mar 24 16:54:56 2010
@@ -451,39 +451,50 @@
for (std::list ::iterator it = m_queryWidgets.begin();
it != m_queryWidgets.end(); it++) {
if ((*it)->begsUpdate()) {
+ if (YGPackageSelector::get()->yield()) return;
+
if ((*it)->modified)
refreshQueryWidget (*it);
else
(*it)->updateList (list);
}
}
+
}
void refreshToolbox()
{
+ // only present one toolbox widget as they may be quite large
+ GtkWidget *toolbox = 0;
+ for (std::list ::iterator it = m_queryWidgets.begin();
+ it != m_queryWidgets.end(); it++)
+ if ((toolbox = (*it)->createToolbox()))
+ break;
+
GList *children = gtk_container_get_children (GTK_CONTAINER (m_toolbox));
for (GList *i = children; i; i = i->next)
gtk_container_remove (GTK_CONTAINER (m_toolbox), (GtkWidget *) i->data);
g_list_free (children);
- bool empty = true;
- for (std::list ::iterator it = m_queryWidgets.begin();
- it != m_queryWidgets.end(); it++) {
- GtkWidget *toolbox = (*it)->createToolbox();
- if (toolbox) {
- gtk_box_pack_start (GTK_BOX (m_toolbox), toolbox, FALSE, TRUE, 0);
- empty = false;
- break; // only present one toolbox widget as they may be quite large
- }
+
+ if (toolbox) {
+ gtk_box_pack_start (GTK_BOX (m_toolbox), toolbox, FALSE, TRUE, 0);
+ gtk_widget_show (m_toolbox);
}
- empty ? gtk_widget_hide (m_toolbox) : gtk_widget_show (m_toolbox);
+ else
+ gtk_widget_hide (m_toolbox);
}
static gboolean refresh_filters_timeout_cb (gpointer data)
{
+ YGUI::ui()->busyCursor();
+ if (YGPackageSelector::get()->yield()) return FALSE;
+
Impl *pThis = (Impl *) data;
pThis->refreshToolbox();
pThis->refreshFilters (pThis->m_refresh_list);
pThis->m_refresh_id = 0;
+
+ YGUI::ui()->normalCursor();
return FALSE;
}
@@ -495,7 +506,7 @@
}
YGUI::ui()->busyCursor();
- if (YGPackageSelector::get()->breath()) return;
+ if (YGPackageSelector::get()->yield()) return;
std::list std::string keywords;
if (m_entry->getAttribute() == Ypp::PoolQuery::NAME)
@@ -512,10 +523,9 @@
Ypp::List list (query);
m_list->setList (list);
+ m_list->setHighlight (keywords);
YGUI::ui()->normalCursor();
- if (YGPackageSelector::get()->breath()) return;
- m_list->setHighlight (keywords);
m_refresh_list = list;
int wait = 2500;
@@ -758,7 +768,7 @@
YGtkPkgSearchEntry *YGPackageSelector::getSearchEntry()
{ return impl->m_entry; }
-bool YGPackageSelector::breath()
+bool YGPackageSelector::yield()
{
static int _id = 0;
int id = ++_id;
Modified: trunk/gtk/src/pkg/YGPackageSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/YGPackageSelector.h?rev=61474&r1=61473&r2=61474&view=diff
==============================================================================
--- trunk/gtk/src/pkg/YGPackageSelector.h (original)
+++ trunk/gtk/src/pkg/YGPackageSelector.h Wed Mar 24 16:54:56 2010
@@ -39,7 +39,7 @@
// let the UI function while processing something; returns 'true' if the
// function was called again while the UI was 'breathing' -- in which case
// you probably want to return.
- bool breath();
+ bool yield();
YGWIDGET_IMPL_COMMON (YPackageSelector)
Modified: trunk/gtk/src/pkg/ygtkpkgsearchentry.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/ygtkpkgsearchentry.cc?rev=61474&r1=61473&r2=61474&view=diff
==============================================================================
--- trunk/gtk/src/pkg/ygtkpkgsearchentry.cc (original)
+++ trunk/gtk/src/pkg/ygtkpkgsearchentry.cc Wed Mar 24 16:54:56 2010
@@ -177,7 +177,7 @@
{
if (strstr (name, " ")) return false;
- // roll on some criteria to find whole-word match (zypp one doesnt cut it)
+ // roll on some criteria to find whole-word match (the zypp one doesnt cut it)
struct WholeWordMatch : public Ypp::Match {
WholeWordMatch (const char *word)
: word (word), len (strlen (word)) {}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org