Re: Auto-resize on table headings

2009-09-30 Thread Kristian Rietveld
Hi,

On Wed, Sep 30, 2009 at 6:52 AM, Diogo Baeder diogobae...@gmail.com wrote:
 I was using my Ubuntu Jaunty, here, and noticed something that could be
 usefull, that Windows (argh!) GUI already has: auto-resize on table
 headings. In a Windows XP system, when a user double-clicks at the table
 column separators, the column to the left resizes to fit the largest content
 of the rows.

 Wouldn't it be a usefull feature? Let me know your opinions on it...

This has already been implemented in GtkTreeView (I think since 2.0).


regards,

-kris.
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Error in gthread.h?

2009-09-30 Thread John Coppens
Hello people.

After a month of switching to 64 bits, I'm still recompiling old
software. Most of this goes really very smoothly, but today I hit a snag
for which I can't seem to find a solution.

I get this error during compilation of my program:

/usr/include/glib-2.0/glib/gthread.h: In function ‘g_once_init_enter’:
/usr/include/glib-2.0/glib/gthread.h:344: warning: cast to pointer from
integer of different size

The offending line is:

  if (G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) != NULL))
return FALSE;
  else
return g_once_init_enter_impl (value_location);

Though the (gpointer) cast seems unnecessary (The definition I found
already declares g_atomic_pointer_get as gpointer), I can't really find
any other problem (removing the cast doesn't change anything).

I've looked around the 'net, but can't find any reference to this problem.

Please, suggestions!

John
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

GTK+ 2.18.1

2009-09-30 Thread Matthias Clasen
GTK+ 2.18.1 is now available for download at:

 ftp://ftp.gtk.org/pub/gtk/2.18/
 http://download.gnome.org/sources/gtk+/2.18/

md5 sums:
d6e0f982a84d393cd11e2ea90a9e3775  gtk+-2.18.1.tar.bz2
c98802383822742bfee88c8d0fad409e  gtk+-2.18.1.tar.gz

sha1 sums:
c4874c76173eb9b6591cce1f4c94e40290f13732  gtk+-2.18.1.tar.bz2
9420ed1f4495325f1b1199b9210b2891e664593f  gtk+-2.18.1.tar.gz

This is the first bug fix release in the stable 2.18 series.



GTK+ is a multi-platform toolkit for creating graphical user
interfaces. Offering a complete set of widgets, GTK+ is suitable for
projects ranging from small one-off tools to complete application
suites.

GTK+ has been designed from the ground up to support a range of
languages, not only C/C++. Using GTK+ from languages such as Perl and
Python (especially in combination with the Glade GUI builder) provides
an effective method of rapid application development.

GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without
any license fees or royalties.


Where to get more information about GTK+


Information about GTK+ including links to documentation can be
found at:

http://www.gtk.org/

An installation guide for GTK+ 2.x is found at:

 http://developer.gnome.org/doc/API/2.0/gtk/gtk-building.html

Common questions:

http://developer.gnome.org/doc/API/2.0/gtk/gtk-question-index.html
http://www.gtk.org/faq/


Contributing


GTK+ is a large project and relies on voluntary contributions.
We are actively searching for new contributors in various areas
and invite everyone to help project development.
If you are willing to participate, please subscribe to the project
mailing lists to offer your help and read over our list of vacant
project tasks:
   http://live.gnome.org/GtkTasks


Overview of Changes from GTK+ 2.18.0 to 2.18.1
==

* Client-side Windows:
 - Fix a problem with the F-Spot screensaver
 - Request native events that are necessary for grab emulation
 - Fixes for input device and extended input event handling
 - Allow up to 255 buttons in extended input events

* OS X:
 - Improve handling of multi-monitor setups
 - Basic DND works
 - Other improvements

* Filechooser:
 - Support Tracker 0.7 in the search code

* Bugs fixed:
 596423 Landscape pages are the wrong way around
 588449 DnD doesn't work on GDK/Quartz
 596080 Mention gtk-tooltip in gtk_widget_set_tooltip_window
 596580 Blank rows in entry autocompletion
 588649 extended input events sent to widgets that didn't...
 596081 Update tracker support for version 0.7
 596345 clicking empty space in backgrounds...
 596494 New property cursor in 2.18's GdkWindow with wrong...
 596012 popup menu position is horribly off on gdk quartz...
 596250 Gdkcursor-quartz.c doesn't implement GDK_BLANK_CURSOR
 586207 Printing dialog with a CUPS printer connected...

* Translation updates:
 Assamese
 British English
 Czech
 Estonian
 French
 Galician
 German
 Hungarian
 Slovenian
 Spanish
 Swedish


Thanks to all contributors:
Marek Kasik
Alexander Larsson
Kristian Rietveld
John Ralls
Cody Russell
Thomas Jaeger
Xan Lopez
Jürg Billeter
Christian Dywan
Adrian Johnson


September 30, 2009
Matthias Clasen


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Error in gthread.h?

2009-09-30 Thread John Coppens
On Wed, 30 Sep 2009 16:12:50 -0700
Brian J. Tarricone br...@tarricone.org wrote:

if (G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) !=
  NULL)) return FALSE;
else
  return g_once_init_enter_impl (value_location);
 
 It's just a warning.  In this case, it's harmless.  Might want to report
 it as a bug, though.
 
 I think you've hit a semi-bug in gatomic.h -- if
 G_ATOMIC_OP_MEMORY_BARRIER_NEEDED isn't defined, g_atomic_pointer_get
 just expands to a dereference of the argument, cast to gpointer.  Since
 the argument passed is a gsize, they don't match -- though they should,
 because gsize should be a typedef for unsigned long on x86_64, which is
 a 64bit quantity... so maybe this is a problem, though something more
 about your installation of glib than an actual bug.  Hard to say.

Mmmm... I hadn't realized that this might have something to do with the
compatibility libraries I installed a week ago. They installed well, and
I have googleearth running, but they may have broken compilation in 64
bit mode. I also received the following:

/usr/include/glib-2.0/gio/gioenums.h:561: error: ‘GLIB_SYSDEF_AF_INET’
undeclared here (not in a function) 
/usr/include/glib-2.0/gio/gioenums.h:562: error: ‘GLIB_SYSDEF_AF_INET6’
undeclared here (not in a function) 

And I can't seem to find a definition of those macros anywhere (not even
in the glib source tree).

I have no clue as to where to start looking for either issue. Or where
best to search for help :(

John
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Re: Error in gthread.h?

2009-09-30 Thread John Coppens
On Wed, 30 Sep 2009 16:38:10 -0700
Brian J. Tarricone bj...@cornell.edu wrote:

 That's odd.  Are you sure you don't have mixed versions of glib
 installed somehow?

I was convinced that I hadn't, because I installed both from Slackware
13.0 (32 and 64bit). But now I remember compiling Inkscape SVN, and that
needed a more recent version of glib (and I had to use SVN because of
problems with poppler).

So, I'm supposing the install of the compat libraries overwrote the
includes of the 64 bit version. 

If I re-install the (newer) 64 bit version of glib, will the 32 bit
version remain functional, or do I have to make a 32 version too?

John
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Error in gthread.h?

2009-09-30 Thread Brian J. Tarricone
On 09/30/2009 04:57 PM, John Coppens wrote:
 On Wed, 30 Sep 2009 16:38:10 -0700
 Brian J. Tarricone bj...@cornell.edu wrote:
 
 That's odd.  Are you sure you don't have mixed versions of glib
 installed somehow?
 
 I was convinced that I hadn't, because I installed both from Slackware
 13.0 (32 and 64bit). But now I remember compiling Inkscape SVN, and that
 needed a more recent version of glib (and I had to use SVN because of
 problems with poppler).
 
 So, I'm supposing the install of the compat libraries overwrote the
 includes of the 64 bit version. 
 
 If I re-install the (newer) 64 bit version of glib, will the 32 bit
 version remain functional, or do I have to make a 32 version too?

Probably safest to do both...  Stuff linked to the old version should
continue to work as is, but you might encounter compilation/linker
problems later on if you try to build a 32bit app against the newer
headers that don't match the 32bit binaries.

-brian
___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: Error in gthread.h?

2009-09-30 Thread John Coppens
On Wed, 30 Sep 2009 17:11:19 -0700
Brian J. Tarricone bj...@cornell.edu wrote:

  So, I'm supposing the install of the compat libraries overwrote the
  includes of the 64 bit version. 
  
  If I re-install the (newer) 64 bit version of glib, will the 32 bit
  version remain functional, or do I have to make a 32 version too?
 
 Probably safest to do both...  Stuff linked to the old version should
 continue to work as is, but you might encounter compilation/linker
 problems later on if you try to build a 32bit app against the newer
 headers that don't match the 32bit binaries.

Mystery solved, it appears. Slackware64 had the wrong environment
variables set for pkg-config (/usr/lib and /usr/local/lib instead of the
64 bit versions). 

Thanks for the hints, Brian!

John


___
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


Re: 2.90 branch

2009-09-30 Thread Alberto Ruiz
2009/9/30 Emmanuele Bassi eba...@gmail.com:
 sure. I asked around on #gtk+ after GUADEC for the best day/time to
 maximize attendance - the default being on Tuesday at 20:00 UTC. if
 anyone has issues with the day/time then feel free to contact me either
 on gtk-devel-list, in private or on IRC. otherwise, we can have a IRC
 meeting next Tuesday (October 6th); this should give people enough time
 to schedule stuff around. :-)

+1

 ciao,
  Emmanuele.

 --
 Emmanuele Bassi,
 W: http://www.emmanuelebassi.name
 B: http://blogs.gnome.org/ebassi

 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-devel-list




-- 
Un saludo,
Alberto Ruiz
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Alexander Larsson
On Tue, 2009-09-29 at 22:59 +0200, Mark wrote:

 hehe that was the idea indeed ^_^ and i will continue with that.
 I will test the large factors tomorrow.
 
 For now i'm happy with 100% cpu usage on all my cores (4).
 with the code posted in my previous message i only had 70% cpu usage
 so there was a bottleneck and it wasn't the HDD nor the CPU.
 Now that's fixed with giving each thread more then one (5 actually)
 images of it's own before locking and refilling the queue of 5 so now
 there is 100% cpu usage in the multi threaded benchmark.
 
 http://codepad.org/PKnp69qW

Ok, i tested this a bit, and my results are not the same as yours.

I tested on a directory with 1348 jpeg files, each aroung 5 megapixels,
totalling 3.1 gig of data.
Before each test I ran (as root):
 sync; echo 3  /proc/sys/vm/drop_caches
This flushes the caches, for two reasons: make the tests comparable
(i.e. same cache status), and to make the test realistic (nobody
thumbnails 3 gig of files that are all in the cache).

You  test is scaling to size 200, which is not the thumbnail size (128),
but lets ignore that for now.

// GLib Thumbnailing Benchmark

There is a bug in the benchmark, where it saves the original pixbuf
rather than the thumbnailed one, making this very very slow. When I
fixed this i get this timing:

real3m40.876s
user3m19.667s
sys 0m2.542s

Same test but, using gnome_desktop_thumbnail_scale_down_pixbuf():

real3m34.784s
user3m13.926s
sys 0m2.479s

So, for me gnome_desktop_thumbnail_scale_down_pixbuf() is ~3% faster
(which makes some sense, as its using a simpler algorithm). Did you
compile your benchmark app with full optimization? (since you have an
in-line copy of the scale_down_pixbuf function this is required)

(The rest of the tests are all run with gdk_pixbuf_scale_simple for easy
comparison.

// Glib more rapid thumbnailing benchmark

real1m56.650s
user1m24.030s
sys 0m2.622s

Here we can see that the jpeg loading trick really helps us.

//Glib threaded thumbnailing

My machine has 2 cores, not 4 as yours.

With the default 4 threads:

real2m2.194s
user1m25.437s
sys 0m2.982s

Changed to use two threads:

real1m53.783s
user1m25.948s
sys 0m2.966s

If we use the same number of threads as cpus we go slightly faster
(approximately 2.6% less time). However, if we use more things are
actually slower.

I've got 4 gigs of memory, so not everything will fit in the cache, but
the caches would probably help a bit, to verify this i ran the same
two-thread example without blowing the caches first:

real1m36.681s
user1m21.610s
sys 0m2.501s

So, slighly better, and we can see that the real time is getting nearer
to the user time, which means that less time were spent waiting on disk.
However, i'm not sure how interesting a cached benchmark is. Nobody will
thumbnail the same files twice.

Now, what does this mean for Nautilus

Well, nautilus loads the files using gdk-pixbuf io-based resizing, which
is essentially what Glib more rapid does. I.E. it uses the jpeg
loading trick and scales using gdk_pixbuf_scale_simple. It calls
gnome_desktop_thumbnail_scale_down_pixbuf() only when an external
thumbnailer returns an oversize result (i.e. very seldom).

Given the above result this is not ideal. The ideal would be to use the
jpeg loader trick but then downscale with
gnome_desktop_thumbnail_scale_down_pixbuf(), although that is hard to
implement given the pixbuf APIs.

Nautilus uses only one thread for thumbnailing, and upping this to the
number of cpus of the machine could gain us a slight advantage, at the
risk of starving the rest of nautilus by the increase in i/o traffic.



___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Mark
On Wed, Sep 30, 2009 at 11:46 AM, Alexander Larsson al...@redhat.com wrote:
 On Tue, 2009-09-29 at 22:59 +0200, Mark wrote:

 hehe that was the idea indeed ^_^ and i will continue with that.
 I will test the large factors tomorrow.

 For now i'm happy with 100% cpu usage on all my cores (4).
 with the code posted in my previous message i only had 70% cpu usage
 so there was a bottleneck and it wasn't the HDD nor the CPU.
 Now that's fixed with giving each thread more then one (5 actually)
 images of it's own before locking and refilling the queue of 5 so now
 there is 100% cpu usage in the multi threaded benchmark.

 http://codepad.org/PKnp69qW

 Ok, i tested this a bit, and my results are not the same as yours.

 I tested on a directory with 1348 jpeg files, each aroung 5 megapixels,
 totalling 3.1 gig of data.
 Before each test I ran (as root):
  sync; echo 3  /proc/sys/vm/drop_caches
 This flushes the caches, for two reasons: make the tests comparable
 (i.e. same cache status), and to make the test realistic (nobody
 thumbnails 3 gig of files that are all in the cache).

 You  test is scaling to size 200, which is not the thumbnail size (128),
 but lets ignore that for now.

 // GLib Thumbnailing Benchmark

 There is a bug in the benchmark, where it saves the original pixbuf
 rather than the thumbnailed one, making this very very slow. When I
 fixed this i get this timing:

 real    3m40.876s
 user    3m19.667s
 sys     0m2.542s

 Same test but, using gnome_desktop_thumbnail_scale_down_pixbuf():

 real    3m34.784s
 user    3m13.926s
 sys     0m2.479s

 So, for me gnome_desktop_thumbnail_scale_down_pixbuf() is ~3% faster
 (which makes some sense, as its using a simpler algorithm). Did you
 compile your benchmark app with full optimization? (since you have an
 in-line copy of the scale_down_pixbuf function this is required)

 (The rest of the tests are all run with gdk_pixbuf_scale_simple for easy
 comparison.

 // Glib more rapid thumbnailing benchmark

 real    1m56.650s
 user    1m24.030s
 sys     0m2.622s

 Here we can see that the jpeg loading trick really helps us.

 //Glib threaded thumbnailing

 My machine has 2 cores, not 4 as yours.

 With the default 4 threads:

 real    2m2.194s
 user    1m25.437s
 sys     0m2.982s

 Changed to use two threads:

 real    1m53.783s
 user    1m25.948s
 sys     0m2.966s

 If we use the same number of threads as cpus we go slightly faster
 (approximately 2.6% less time). However, if we use more things are
 actually slower.

 I've got 4 gigs of memory, so not everything will fit in the cache, but
 the caches would probably help a bit, to verify this i ran the same
 two-thread example without blowing the caches first:

 real    1m36.681s
 user    1m21.610s
 sys     0m2.501s

 So, slighly better, and we can see that the real time is getting nearer
 to the user time, which means that less time were spent waiting on disk.
 However, i'm not sure how interesting a cached benchmark is. Nobody will
 thumbnail the same files twice.

 Now, what does this mean for Nautilus

 Well, nautilus loads the files using gdk-pixbuf io-based resizing, which
 is essentially what Glib more rapid does. I.E. it uses the jpeg
 loading trick and scales using gdk_pixbuf_scale_simple. It calls
 gnome_desktop_thumbnail_scale_down_pixbuf() only when an external
 thumbnailer returns an oversize result (i.e. very seldom).

 Given the above result this is not ideal. The ideal would be to use the
 jpeg loader trick but then downscale with
 gnome_desktop_thumbnail_scale_down_pixbuf(), although that is hard to
 implement given the pixbuf APIs.

 Nautilus uses only one thread for thumbnailing, and upping this to the
 number of cpus of the machine could gain us a slight advantage, at the
 risk of starving the rest of nautilus by the increase in i/o traffic.





Hi Alex,

nice benching. i will fix that little issue in // GLib Thumbnailing
Benchmark to save the thumbnail pixbuff.
Then i hope the gnome_desktop_thumbnail_scale_down_pixbuf is really
faster like it states. And if that's the case perhaps it's time to
make a gdk_pixbuf_new_from_file_at_scale that uses
gnome_desktop_thumbnail_scale_down_pixbuf.

note that the scaling performance is just a minor part of the complete
picture. If the loading/saving of files could be made faster in any
way that would give the most speed boosts.

As for full optimization to make it worse.. all my benchmarks where
ren in debug compile mode. So not representative if did for one test
but i did that for all tests so that probably makes it fair again..?
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Alexander Larsson
On Wed, 2009-09-30 at 12:36 +0200, Mark wrote:
 On Wed, Sep 30, 2009 at 11:46 AM, Alexander Larsson al...@redhat.com wrote:
  On Tue, 2009-09-29 at 22:59 +0200, Mark wrote:
 
  hehe that was the idea indeed ^_^ and i will continue with that.
  I will test the large factors tomorrow.
 
  For now i'm happy with 100% cpu usage on all my cores (4).
  with the code posted in my previous message i only had 70% cpu usage
  so there was a bottleneck and it wasn't the HDD nor the CPU.
  Now that's fixed with giving each thread more then one (5 actually)
  images of it's own before locking and refilling the queue of 5 so now
  there is 100% cpu usage in the multi threaded benchmark.
 
  http://codepad.org/PKnp69qW
 
  Ok, i tested this a bit, and my results are not the same as yours.
 
  I tested on a directory with 1348 jpeg files, each aroung 5 megapixels,
  totalling 3.1 gig of data.
  Before each test I ran (as root):
   sync; echo 3  /proc/sys/vm/drop_caches
  This flushes the caches, for two reasons: make the tests comparable
  (i.e. same cache status), and to make the test realistic (nobody
  thumbnails 3 gig of files that are all in the cache).
 
  You  test is scaling to size 200, which is not the thumbnail size (128),
  but lets ignore that for now.
 
  // GLib Thumbnailing Benchmark
 
  There is a bug in the benchmark, where it saves the original pixbuf
  rather than the thumbnailed one, making this very very slow. When I
  fixed this i get this timing:
 
  real3m40.876s
  user3m19.667s
  sys 0m2.542s
 
  Same test but, using gnome_desktop_thumbnail_scale_down_pixbuf():
 
  real3m34.784s
  user3m13.926s
  sys 0m2.479s
 
  So, for me gnome_desktop_thumbnail_scale_down_pixbuf() is ~3% faster
  (which makes some sense, as its using a simpler algorithm). Did you
  compile your benchmark app with full optimization? (since you have an
  in-line copy of the scale_down_pixbuf function this is required)
 
  (The rest of the tests are all run with gdk_pixbuf_scale_simple for easy
  comparison.
 
  // Glib more rapid thumbnailing benchmark
 
  real1m56.650s
  user1m24.030s
  sys 0m2.622s
 
  Here we can see that the jpeg loading trick really helps us.
 
  //Glib threaded thumbnailing
 
  My machine has 2 cores, not 4 as yours.
 
  With the default 4 threads:
 
  real2m2.194s
  user1m25.437s
  sys 0m2.982s
 
  Changed to use two threads:
 
  real1m53.783s
  user1m25.948s
  sys 0m2.966s
 
  If we use the same number of threads as cpus we go slightly faster
  (approximately 2.6% less time). However, if we use more things are
  actually slower.
 
  I've got 4 gigs of memory, so not everything will fit in the cache, but
  the caches would probably help a bit, to verify this i ran the same
  two-thread example without blowing the caches first:
 
  real1m36.681s
  user1m21.610s
  sys 0m2.501s
 
  So, slighly better, and we can see that the real time is getting nearer
  to the user time, which means that less time were spent waiting on disk.
  However, i'm not sure how interesting a cached benchmark is. Nobody will
  thumbnail the same files twice.
 
  Now, what does this mean for Nautilus
 
  Well, nautilus loads the files using gdk-pixbuf io-based resizing, which
  is essentially what Glib more rapid does. I.E. it uses the jpeg
  loading trick and scales using gdk_pixbuf_scale_simple. It calls
  gnome_desktop_thumbnail_scale_down_pixbuf() only when an external
  thumbnailer returns an oversize result (i.e. very seldom).
 
  Given the above result this is not ideal. The ideal would be to use the
  jpeg loader trick but then downscale with
  gnome_desktop_thumbnail_scale_down_pixbuf(), although that is hard to
  implement given the pixbuf APIs.
 
  Nautilus uses only one thread for thumbnailing, and upping this to the
  number of cpus of the machine could gain us a slight advantage, at the
  risk of starving the rest of nautilus by the increase in i/o traffic.
 
 
 
 
 
 Hi Alex,
 
 nice benching. i will fix that little issue in // GLib Thumbnailing
 Benchmark to save the thumbnail pixbuff.
 Then i hope the gnome_desktop_thumbnail_scale_down_pixbuf is really
 faster like it states. And if that's the case perhaps it's time to
 make a gdk_pixbuf_new_from_file_at_scale that uses
 gnome_desktop_thumbnail_scale_down_pixbuf.

Its faster because it uses a simpler algorithm, so its not generally
useful, however it might be nice to allow it optionally, like adding a
new filter type and let you pass in a filter to the scaling loader.

 note that the scaling performance is just a minor part of the complete
 picture. If the loading/saving of files could be made faster in any
 way that would give the most speed boosts.

Yes indeed. File load speed is very important here, but there really
isn't that much you can do on the app side.

 As for full optimization to make it worse.. all my benchmarks where
 ren in debug compile mode. So not representative if did for 

Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Alexander Larsson
On Wed, 2009-09-30 at 12:58 +0200, Mark wrote:
  Its faster because it uses a simpler algorithm, so its not generally
  useful, however it might be nice to allow it optionally, like adding a
  new filter type and let you pass in a filter to the scaling loader.
 
 the filter structure in glib seems... extremely complex.
 Lets first just make this FAST before we (or i) start try to make this
 as a new filter type.
 Also i think the bilinear filter type is just fine for me since it's
 just that only faster.

glib, you mean gdk-pixbuf? And what do you mean by FAST? The gdk-pixbuf
implementation is a bilinear filter, which inherently is more expensive
than the simple filter in scale_down_pixbuf. scale_down_pixbuf() is
really a pretty bad filter for most usecases, but it doesn't matter much
for the thumbnailing case.

  note that the scaling performance is just a minor part of the complete
  picture. If the loading/saving of files could be made faster in any
  way that would give the most speed boosts.
 
  Yes indeed. File load speed is very important here, but there really
  isn't that much you can do on the app side.
 
 And is there anything possible in glib?
 The thing i noticed in earlier posts (from late last month in this
 thread) is that there is a big usage of gpointers... so perhaps it's
 possible to optimize something there?

gpointers? Not sure what you are talking about. The problem is inherent
in the fact that it needs to do i/o reading bits from rotating media.

  As for full optimization to make it worse.. all my benchmarks where
  ren in debug compile mode. So not representative if did for one test
  but i did that for all tests so that probably makes it fair again..?
 
  Only if you compiled your gdk-pixbuf library with debug mode, and even
  then its not certain because it has assembler versions of the scaler i
  think.
 
  It would be fair if you used the optimized version of
  gnome_desktop_thumbnail_scale_down_pixbuf() from libgnomedesktop though.
 
 
 
 That is this one right:
 http://git.gnome.org/cgit/gnome-desktop/tree/libgnome-desktop/gnome-thumbnail-pixbuf-utils.c
 ? that is the one i included in the benchmark. If that isn't the
 one you mean then which one is it? (link please)

Yes, that is the source code, but if you use the copy in libgnomedesktop
it will be built with optimization, if you use the copy in your code it
will be built with no optimization.


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Xavier Bestel
Hi,

On Wed, 2009-09-30 at 11:46 +0200, Alexander Larsson wrote:
 On Tue, 2009-09-29 at 22:59 +0200, Mark wrote:
 
  hehe that was the idea indeed ^_^ and i will continue with that.
  I will test the large factors tomorrow.
  
  For now i'm happy with 100% cpu usage on all my cores (4).
  with the code posted in my previous message i only had 70% cpu usage
  so there was a bottleneck and it wasn't the HDD nor the CPU.
  Now that's fixed with giving each thread more then one (5 actually)
  images of it's own before locking and refilling the queue of 5 so now
  there is 100% cpu usage in the multi threaded benchmark.
  
  http://codepad.org/PKnp69qW
 
 Ok, i tested this a bit, and my results are not the same as yours.
 
 I tested on a directory with 1348 jpeg files, each aroung 5 megapixels,
 totalling 3.1 gig of data.

did you try testing with an already thumbnailed directory ? I find
Nautilus quite slow in this case (sorry, I'm not at home right now do I
can't test), although if I understand correctly there's not much work to
do.

Xav



___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Alexander Larsson
On Wed, 2009-09-30 at 14:53 +0200, Xavier Bestel wrote:
 Hi,
 
 On Wed, 2009-09-30 at 11:46 +0200, Alexander Larsson wrote:
  On Tue, 2009-09-29 at 22:59 +0200, Mark wrote:
  
   hehe that was the idea indeed ^_^ and i will continue with that.
   I will test the large factors tomorrow.
   
   For now i'm happy with 100% cpu usage on all my cores (4).
   with the code posted in my previous message i only had 70% cpu usage
   so there was a bottleneck and it wasn't the HDD nor the CPU.
   Now that's fixed with giving each thread more then one (5 actually)
   images of it's own before locking and refilling the queue of 5 so now
   there is 100% cpu usage in the multi threaded benchmark.
   
   http://codepad.org/PKnp69qW
  
  Ok, i tested this a bit, and my results are not the same as yours.
  
  I tested on a directory with 1348 jpeg files, each aroung 5 megapixels,
  totalling 3.1 gig of data.
 
 did you try testing with an already thumbnailed directory ? I find
 Nautilus quite slow in this case (sorry, I'm not at home right now do I
 can't test), although if I understand correctly there's not much work to
 do.

This benchmark was not nautilus, but a separate test app.

Nautilus being slow loading existing thumbnails is another thing. Partly
it is due to the way the thumbnail spec stores things (see the xdg list
for ways of making it better) and partly just loading lots of small
files being slow on rotating media.


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: gobject-performance

2009-09-30 Thread Alexander Larsson
On Thu, 2009-09-24 at 15:37 +0200, Benjamin Otte wrote:
 Hi,
 
 I'd like to move the work done on the gobject-performance branch to
 master now that 2.22.0 is out. It contains tremendous improvements for
 threaded applications and even noticably speeds up non-threaded
 performance. The patches on the branch have been developed, reviewed
 and tested by at least Alex Larsson, Edward Hevery and me, so it
 should be sufficiently reviewed.
 I'd have liked to get Tim to review it, but he seems to be quite busy
 now and IMO we threw enough eyes and CPU time at the issue to be sure
 there is no regressions. (From the tests we added, I'd even say it's
 more stable than master).
 
 I'd also like to get it merged while we're far away from the next
 release, so it gets enough testing, as these changes are quite deep
 down the stack and we want to find remaining issues with them before
 we release the next stable.
 
 So can we merge the branch or is there anything that we should take
 care of before?

Man, this situation with such low maintainer activity in gobject is
getting out of hand. We really need a way to get important fixes like
this into gobject in finite amount of time. After all gobject is the
core of the whole gtk and gnome platform, if we can't get fixes into it
then we're in a very bad shape.

I realize that GObject is a very complex and important piece of software
and that timj knows it much better than anyone else. However, we just
cannot totally stop work on it when timj is busy with other things.

Now, some stuff in the gobject-performance branch is pretty trivial, but
some of it is extremely complex (lock free stuff, atomic refcounting
etc), so I don't really like to just wait a bit and then commit without
timj approval. However, I'd like to have *some* way of getting things
in, while still having a decent chance of finding problems before they
land in glib.

What about introducing some sort of ack rules. If you can get, say,
three detailed reviews with acks from well known developers (core
people, maintainers, etc) then we can commit stuff during to the
unstable branch.

Opinions?


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: gobject-performance

2009-09-30 Thread Philip Van Hoof
On Wed, 2009-09-30 at 15:06 +0200, Alexander Larsson wrote:

[CUT]

 On Thu, 2009-09-24 at 15:37 +0200, Benjamin Otte wrote:

 What about introducing some sort of ack rules. If you can get, say,
 three detailed reviews with acks from well known developers (core
 people, maintainers, etc) then we can commit stuff during to the
 unstable branch.

I'm not petitioning to become such a reviewer, as I don't think I'd be a
very good one. But I like this idea very much.

I propose to ask Jürg Billeter to help review gobject patches. With his
work on Vala Jürg seems to have an in-depth knowledge of gobject.

 Opinions?

Thanks a lot for trying to get things moving here, Alex.

Appreciated.


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Philip Van Hoof
On Fri, 2009-08-28 at 22:11 +0200, Mark wrote:

 
 Now for the results:
 
 Glib
 --
 1927 images thumbnailed in 2.29 minutes. That is roughly 0.07 seconds
 per thumbnail
 
 GraphicsMagick
 --
 1927 images thumbnailed in 3.08 minutes. That is roughly 0.09 seconds
 per thumbnail
 
 FreeImage
 --
 1927 images thumbnailed in 5.45 minutes. That is roughly 0.17 seconds
 per thumbnail

You want to override GdkPixbuf's support for Jpeg and thumbnail all JPEG
images using EPeg. It'll beat GdkPixbuf by 5 times or something.

That's because afaik does EPeg use libjpeg in a way that it skips rows
and columns, and that way performs better on both I/O (having to read
less of the original), memory (same reason) and CPU (having to
decompress less, having to scale less or nothing).

We are already using EPeg for this on the Maemo Fremantle platform, by
the way. Scaling truly large JPEG images goes magically fast with it.


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Dr. Michael J. Chudobiak

On 09/30/2009 09:27 AM, Philip Van Hoof wrote:

You want to override GdkPixbuf's support for Jpeg and thumbnail all JPEG
images using EPeg. It'll beat GdkPixbuf by 5 times or something.

That's because afaik does EPeg use libjpeg in a way that it skips rows
and columns, and that way performs better on both I/O (having to read
less of the original), memory (same reason) and CPU (having to
decompress less, having to scale less or nothing).


Is there any reason not to use epeg in the gdk-pixbuf jpeg loader itself?

- Mike
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


GIOChannel missing ftell() equivalent

2009-09-30 Thread Gerhard Häring
I'm converting a program from C standard library to glib and stumbled
on the fact that there is no equivalent for ftell() on GIOChannels.
Could you please implement that? Or is there a deep reason why this
doesn't exist?

-- Gerhard
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Mark
On Wed, Sep 30, 2009 at 3:27 PM, Philip Van Hoof s...@pvanhoof.be wrote:
 On Fri, 2009-08-28 at 22:11 +0200, Mark wrote:


 Now for the results:

 Glib
 --
 1927 images thumbnailed in 2.29 minutes. That is roughly 0.07 seconds
 per thumbnail

 GraphicsMagick
 --
 1927 images thumbnailed in 3.08 minutes. That is roughly 0.09 seconds
 per thumbnail

 FreeImage
 --
 1927 images thumbnailed in 5.45 minutes. That is roughly 0.17 seconds
 per thumbnail

 You want to override GdkPixbuf's support for Jpeg and thumbnail all JPEG
 images using EPeg. It'll beat GdkPixbuf by 5 times or something.

 That's because afaik does EPeg use libjpeg in a way that it skips rows
 and columns, and that way performs better on both I/O (having to read
 less of the original), memory (same reason) and CPU (having to
 decompress less, having to scale less or nothing).

 We are already using EPeg for this on the Maemo Fremantle platform, by
 the way. Scaling truly large JPEG images goes magically fast with it.


 --
 Philip Van Hoof, freelance software developer
 home: me at pvanhoof dot be
 gnome: pvanhoof at gnome dot org
 http://pvanhoof.be/blog
 http://codeminded.be



sounds interesting.
A few questions for that lib:
- Where can it be downloaded (i only found the documentation of it)
- Can it be used on it's own without a need of including other
dependencies other then libjpeg?
- Are there any benchmarks existing? preferably compared to GdkPixbuff

and beating it by 5 times is unlikely. My threaded test took ~30
seconds that would mean with epeg it can take just 6 seconds.. i just
doubt that's possible for my 1927 image test.

Thanx,
Mark
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Alexander Larsson
On Wed, 2009-09-30 at 15:27 +0200, Philip Van Hoof wrote:
 On Fri, 2009-08-28 at 22:11 +0200, Mark wrote:
 
  
  Now for the results:
  
  Glib
  --
  1927 images thumbnailed in 2.29 minutes. That is roughly 0.07 seconds
  per thumbnail
  
  GraphicsMagick
  --
  1927 images thumbnailed in 3.08 minutes. That is roughly 0.09 seconds
  per thumbnail
  
  FreeImage
  --
  1927 images thumbnailed in 5.45 minutes. That is roughly 0.17 seconds
  per thumbnail
 
 You want to override GdkPixbuf's support for Jpeg and thumbnail all JPEG
 images using EPeg. It'll beat GdkPixbuf by 5 times or something.
 
 That's because afaik does EPeg use libjpeg in a way that it skips rows
 and columns, and that way performs better on both I/O (having to read
 less of the original), memory (same reason) and CPU (having to
 decompress less, having to scale less or nothing).
 
 We are already using EPeg for this on the Maemo Fremantle platform, by
 the way. Scaling truly large JPEG images goes magically fast with it.

I'm not sure EPeg is really that magic. 
For instance, this: http://www.freshports.org/graphics/epeg says:

  It makes use of libjpeg features of being able to load an image by only
  decoding the DCT coefficients needed to reconstruct an image of the size
  desired. This gives a massive speedup. If you do not try and access the pixels
  in a format other than YUV (or GRAY8 if the source is grascale) then it also
  avoids colorspace conversions as well.

The first part (DCT stuff) we already do in the jpeg loader (its the
jpeg loader trick talked about above). The second we could easily do
ourself in the jpeg loader for scaled image loads by scaling in
YUV/GRAY8 space before converting.

I'd love if someone would like to work on this in gdk-pixbuf.

Another thumbnailing performance trick is to use thumbnails in EXIF
data, which many cameras add, if availible. This is slightly more
dubious to do in gdk-pixbuf as the thumbnail is not 100% reliable (i.e.
it may be out of date due to file modifications or whatnot). So,
something like this really has to be done in the gnome-desktop
thumbnailer code.




___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Alexander Larsson
On Wed, 2009-09-30 at 16:07 +0200, Alexander Larsson wrote:

 The first part (DCT stuff) we already do in the jpeg loader (its the
 jpeg loader trick talked about above). The second we could easily do
 ourself in the jpeg loader for scaled image loads by scaling in
 YUV/GRAY8 space before converting.

Of course, most jpegs are in the RGB colorspace, so this is not perhaps
so important in practice.

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Philip Van Hoof
On Wed, 2009-09-30 at 16:05 +0200, Mark wrote:
 On Wed, Sep 30, 2009 at 3:27 PM, Philip Van Hoof s...@pvanhoof.be wrote:

 sounds interesting.
 A few questions for that lib:
 - Where can it be downloaded (i only found the documentation of it)

The websites Alexander pointed to in his reply have pointers to source
code. I don't think it has an upstream repository anymore, just source
packages of distributions.

 - Can it be used on it's own without a need of including other
 dependencies other then libjpeg?

Yes

 - Are there any benchmarks existing? preferably compared to GdkPixbuff

Problem with the benchmarks that I used is that they are proprietary.

But you get most difference with large JPEG images. So take any large
JPEG image and test it. The code to write an EPeg based thumbnailer is
about 12 lines.

The hildon-thumbnailer code got a bit messy and we have started redoing
this together with the XFCE people as the Tumbler project, but you can
find Fremantle's EPeg based thumbnailer plugin here:

http://gitorious.org/maemo-af/hildon-thumbnail/blobs/master/daemon/plugins/epeg-plugin.c

 and beating it by 5 times is unlikely. My threaded test took ~30
 seconds that would mean with epeg it can take just 6 seconds.. i just
 doubt that's possible for my 1927 image test.

Nod, that's the kind of differences that we measured ;)

Which is also why we didn't hesitate to just switch to using it.


-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Mark
On Wed, Sep 30, 2009 at 4:58 PM, Alexander Larsson al...@redhat.com wrote:
 On Wed, 2009-09-30 at 16:07 +0200, Alexander Larsson wrote:
 On Wed, 2009-09-30 at 15:27 +0200, Philip Van Hoof wrote:
  On Fri, 2009-08-28 at 22:11 +0200, Mark wrote:
 
  
   Now for the results:
  
   Glib
   --
   1927 images thumbnailed in 2.29 minutes. That is roughly 0.07 seconds
   per thumbnail
  
   GraphicsMagick
   --
   1927 images thumbnailed in 3.08 minutes. That is roughly 0.09 seconds
   per thumbnail
  
   FreeImage
   --
   1927 images thumbnailed in 5.45 minutes. That is roughly 0.17 seconds
   per thumbnail
 
  You want to override GdkPixbuf's support for Jpeg and thumbnail all JPEG
  images using EPeg. It'll beat GdkPixbuf by 5 times or something.
 
  That's because afaik does EPeg use libjpeg in a way that it skips rows
  and columns, and that way performs better on both I/O (having to read
  less of the original), memory (same reason) and CPU (having to
  decompress less, having to scale less or nothing).
 
  We are already using EPeg for this on the Maemo Fremantle platform, by
  the way. Scaling truly large JPEG images goes magically fast with it.

 I'm not sure EPeg is really that magic.
 For instance, this: http://www.freshports.org/graphics/epeg says:

   It makes use of libjpeg features of being able to load an image by only
   decoding the DCT coefficients needed to reconstruct an image of the size
   desired. This gives a massive speedup. If you do not try and access the 
 pixels
   in a format other than YUV (or GRAY8 if the source is grascale) then it 
 also
   avoids colorspace conversions as well.

 The first part (DCT stuff) we already do in the jpeg loader (its the
 jpeg loader trick talked about above). The second we could easily do
 ourself in the jpeg loader for scaled image loads by scaling in
 YUV/GRAY8 space before converting.

 I took a look at the epeg code, and in addition to both these it also
 sets dct_method to JDCT_IFAST (whereas gdk-pixbuf leaves this at the
 default slower but better one).

 Additionally it also uses NEAREST as a scaling algorithm, causing
 horrible looking thumbnails. Look at the attached images for comparison.

 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-devel-list



Oh, that does look horrible and is even bigger in size...
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Ross Burton
On Wed, 2009-09-30 at 16:57 +0200, Philip Van Hoof wrote:
 I don't think it has an upstream repository anymore, just source
 packages of distributions. 

I do find that using software which lacks a maintainer and canonical
repository is far preferable than software with a repository but no
maintainer or -- dare I say it -- maintained software.

Ross
-- 
Ross Burton mail: r...@burtonini.com
  jabber: r...@burtonini.com
   www: http://burtonini.com


signature.asc
Description: This is a digitally signed message part
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread David Zeuthen
On Wed, 2009-09-30 at 16:07 +0200, Alexander Larsson wrote:
 Another thumbnailing performance trick is to use thumbnails in EXIF
 data, which many cameras add, if availible. 

FWIW, we do this in the gphoto2:// GVfs backend. Browsing through a USB
connected camera in Nautilus is really fast these days; the thumbnails
are 20ish KB (vs. several MB for common consumer cameras). So this
matters _a lot_ when reading from a camera where you only get throughput
of a couple of MB/s at best. 

(Btw, this infrastructure is not specific to the gphoto2:// GVfs
backend; any GVfs backend can use it - say, a Flickr backend).

 This is slightly more
 dubious to do in gdk-pixbuf as the thumbnail is not 100% reliable (i.e.
 it may be out of date due to file modifications or whatnot). 

Another problem is that the embedded thumbnail may not be properly
rotated (on some cameras). This is not a huge problem, just an annoyance
and for gphoto2:// connected devices this tradeoff of quirky behavior vs
performance is justified. For browsing local filesystems it may or may
not be justified.

 David


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Ross Burton
On Wed, 2009-09-30 at 12:32 -0400, David Zeuthen wrote:
 (Btw, this infrastructure is not specific to the gphoto2:// GVfs
 backend; any GVfs backend can use it - say, a Flickr backend).

Bad example, downloading the original file (no seeking in HTTP) just to
extract the thumbnail would be pretty silly considering that Flickr
allows direct access to thumbnails (and other sizes) through its API. :)

Ross
-- 
Ross Burton mail: r...@burtonini.com
  jabber: r...@burtonini.com
   www: http://burtonini.com


signature.asc
Description: This is a digitally signed message part
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Bastien Nocera
On Wed, 2009-09-30 at 17:51 +0100, Ross Burton wrote:
 On Wed, 2009-09-30 at 12:32 -0400, David Zeuthen wrote:
  (Btw, this infrastructure is not specific to the gphoto2:// GVfs
  backend; any GVfs backend can use it - say, a Flickr backend).
 
 Bad example, downloading the original file (no seeking in HTTP) just to
 extract the thumbnail would be pretty silly considering that Flickr
 allows direct access to thumbnails (and other sizes) through its API. :)

Got that wrong. David was talking about out-of-band thumbnails (gphoto2
can export that data as an attribute of the file, without downloading
the whole file). So you are in agreement...

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread David Zeuthen
On Wed, 2009-09-30 at 17:51 +0100, Ross Burton wrote:
 On Wed, 2009-09-30 at 12:32 -0400, David Zeuthen wrote:
  (Btw, this infrastructure is not specific to the gphoto2:// GVfs
  backend; any GVfs backend can use it - say, a Flickr backend).
 
 Bad example, downloading the original file (no seeking in HTTP) just to
 extract the thumbnail would be pretty silly considering that Flickr
 allows direct access to thumbnails (and other sizes) through its API. :)

No, it's actually a great example.

The way it works is that a GVfs backend can set the preview::icon file
attribute (which is a GIcon) [1] to whatever it wants. In GVfs we have a
class, GVfsIcon, that implements GLoadableIcon and GIcon. When clients
read preview::icon, then the loading of the returned icon is directed
back to the backend via the open_icon_for_read() VFunc on the
GVfsBackend class. The backend can then use any API it wants to
get/create the thumbnail. It is completely unrelated to the file in
question.

 David


[1] : 
http://library.gnome.org/devel/gio/unstable/GFileInfo.html#G-FILE-ATTRIBUTE-PREVIEW-ICON--CAPS



___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Ross Burton
On Wed, 2009-09-30 at 18:01 +0100, Bastien Nocera wrote:
 On Wed, 2009-09-30 at 17:51 +0100, Ross Burton wrote:
  On Wed, 2009-09-30 at 12:32 -0400, David Zeuthen wrote:
   (Btw, this infrastructure is not specific to the gphoto2:// GVfs
   backend; any GVfs backend can use it - say, a Flickr backend).
  
  Bad example, downloading the original file (no seeking in HTTP) just to
  extract the thumbnail would be pretty silly considering that Flickr
  allows direct access to thumbnails (and other sizes) through its API. :)
 
 Got that wrong. David was talking about out-of-band thumbnails (gphoto2
 can export that data as an attribute of the file, without downloading
 the whole file). So you are in agreement...

Ah, right, gotcha.

Ross
-- 
Ross Burton mail: r...@burtonini.com
  jabber: r...@burtonini.com
   www: http://burtonini.com


signature.asc
Description: This is a digitally signed message part
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: Speeding up thumbnail generation (like multi threaded). Thoughts please.

2009-09-30 Thread Ross Burton
On Wed, 2009-09-30 at 13:06 -0400, David Zeuthen wrote:
 No, it's actually a great example.
 
 The way it works is that a GVfs backend can set the preview::icon file
 attribute (which is a GIcon) [1] to whatever it wants. In GVfs we have a
 class, GVfsIcon, that implements GLoadableIcon and GIcon. When clients
 read preview::icon, then the loading of the returned icon is directed
 back to the backend via the open_icon_for_read() VFunc on the
 GVfsBackend class. The backend can then use any API it wants to
 get/create the thumbnail. It is completely unrelated to the file in
 question.

I take it back, that is neat. :)

Ross
-- 
Ross Burton mail: r...@burtonini.com
  jabber: r...@burtonini.com
   www: http://burtonini.com


signature.asc
Description: This is a digitally signed message part
___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


GTK+ 2.18.1

2009-09-30 Thread Matthias Clasen
GTK+ 2.18.1 is now available for download at:

 ftp://ftp.gtk.org/pub/gtk/2.18/
 http://download.gnome.org/sources/gtk+/2.18/

md5 sums:
d6e0f982a84d393cd11e2ea90a9e3775  gtk+-2.18.1.tar.bz2
c98802383822742bfee88c8d0fad409e  gtk+-2.18.1.tar.gz

sha1 sums:
c4874c76173eb9b6591cce1f4c94e40290f13732  gtk+-2.18.1.tar.bz2
9420ed1f4495325f1b1199b9210b2891e664593f  gtk+-2.18.1.tar.gz

This is the first bug fix release in the stable 2.18 series.



GTK+ is a multi-platform toolkit for creating graphical user
interfaces. Offering a complete set of widgets, GTK+ is suitable for
projects ranging from small one-off tools to complete application
suites.

GTK+ has been designed from the ground up to support a range of
languages, not only C/C++. Using GTK+ from languages such as Perl and
Python (especially in combination with the Glade GUI builder) provides
an effective method of rapid application development.

GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without
any license fees or royalties.


Where to get more information about GTK+


Information about GTK+ including links to documentation can be
found at:

http://www.gtk.org/

An installation guide for GTK+ 2.x is found at:

 http://developer.gnome.org/doc/API/2.0/gtk/gtk-building.html

Common questions:

http://developer.gnome.org/doc/API/2.0/gtk/gtk-question-index.html
http://www.gtk.org/faq/


Contributing


GTK+ is a large project and relies on voluntary contributions.
We are actively searching for new contributors in various areas
and invite everyone to help project development.
If you are willing to participate, please subscribe to the project
mailing lists to offer your help and read over our list of vacant
project tasks:
   http://live.gnome.org/GtkTasks


Overview of Changes from GTK+ 2.18.0 to 2.18.1
==

* Client-side Windows:
 - Fix a problem with the F-Spot screensaver
 - Request native events that are necessary for grab emulation
 - Fixes for input device and extended input event handling
 - Allow up to 255 buttons in extended input events

* OS X:
 - Improve handling of multi-monitor setups
 - Basic DND works
 - Other improvements

* Filechooser:
 - Support Tracker 0.7 in the search code

* Bugs fixed:
 596423 Landscape pages are the wrong way around
 588449 DnD doesn't work on GDK/Quartz
 596080 Mention gtk-tooltip in gtk_widget_set_tooltip_window
 596580 Blank rows in entry autocompletion
 588649 extended input events sent to widgets that didn't...
 596081 Update tracker support for version 0.7
 596345 clicking empty space in backgrounds...
 596494 New property cursor in 2.18's GdkWindow with wrong...
 596012 popup menu position is horribly off on gdk quartz...
 596250 Gdkcursor-quartz.c doesn't implement GDK_BLANK_CURSOR
 586207 Printing dialog with a CUPS printer connected...

* Translation updates:
 Assamese
 British English
 Czech
 Estonian
 French
 Galician
 German
 Hungarian
 Slovenian
 Spanish
 Swedish


Thanks to all contributors:
Marek Kasik
Alexander Larsson
Kristian Rietveld
John Ralls
Cody Russell
Thomas Jaeger
Xan Lopez
Jürg Billeter
Christian Dywan
Adrian Johnson


September 30, 2009
Matthias Clasen


___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


filesystemmodel branch - initial testing

2009-09-30 Thread Federico Mena Quintero
Humans from Earth,

I'm finally testing Company's filesystemmodel branch.  IT IS SO FAST!
Really, it makes the file chooser much snappier.  And the code is a
pleasure to read.

I haven't had crashes yet, although I haven't tested all the features in
the file chooser.  I guess I'll keep testing it for a week or so.
Matthias mentioned that he's interested in merging this to master before
the .2 release.

I'm extremely happy with Company's work - he deserves a lot of beer and
pats on the back.

  Federico

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: filesystemmodel branch - initial testing

2009-09-30 Thread Bastien Nocera
On Wed, 2009-09-30 at 19:45 -0500, Federico Mena Quintero wrote:
 Humans from Earth,
 
 I'm finally testing Company's filesystemmodel branch.  IT IS SO FAST!
 Really, it makes the file chooser much snappier.  And the code is a
 pleasure to read.
 
 I haven't had crashes yet, although I haven't tested all the features in
 the file chooser.  I guess I'll keep testing it for a week or so.
 Matthias mentioned that he's interested in merging this to master before
 the .2 release.
 
 I'm extremely happy with Company's work - he deserves a lot of beer and
 pats on the back.

Not having looked at the code since the original patches, have all the
concerns about the possible regressions and incremental changes been
addressed?

Cheers

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


Re: filesystemmodel branch - initial testing

2009-09-30 Thread Xan Lopez
On Thu, Oct 1, 2009 at 3:45 AM, Federico Mena Quintero
feder...@novell.com wrote:
 Humans from Earth,

 I'm finally testing Company's filesystemmodel branch.  IT IS SO FAST!
 Really, it makes the file chooser much snappier.  And the code is a
 pleasure to read.

 I haven't had crashes yet, although I haven't tested all the features in
 the file chooser.  I guess I'll keep testing it for a week or so.
 Matthias mentioned that he's interested in merging this to master before
 the .2 release.

From that I take that the plan is to release this in 2.18.2? Wouldn't
it be a much better idea to only go for it in the unstable 2.19.x
series? At least this is not the kind of change I'd expect to receive
in a minor incremental bugfix release of the stable series.


 I'm extremely happy with Company's work - he deserves a lot of beer and
 pats on the back.

  Federico

 ___
 gtk-devel-list mailing list
 gtk-devel-list@gnome.org
 http://mail.gnome.org/mailman/listinfo/gtk-devel-list

___
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list


GTK+ 2.18.1

2009-09-30 Thread Matthias Clasen
GTK+ 2.18.1 is now available for download at:

 ftp://ftp.gtk.org/pub/gtk/2.18/
 http://download.gnome.org/sources/gtk+/2.18/

md5 sums:
d6e0f982a84d393cd11e2ea90a9e3775  gtk+-2.18.1.tar.bz2
c98802383822742bfee88c8d0fad409e  gtk+-2.18.1.tar.gz

sha1 sums:
c4874c76173eb9b6591cce1f4c94e40290f13732  gtk+-2.18.1.tar.bz2
9420ed1f4495325f1b1199b9210b2891e664593f  gtk+-2.18.1.tar.gz

This is the first bug fix release in the stable 2.18 series.



GTK+ is a multi-platform toolkit for creating graphical user
interfaces. Offering a complete set of widgets, GTK+ is suitable for
projects ranging from small one-off tools to complete application
suites.

GTK+ has been designed from the ground up to support a range of
languages, not only C/C++. Using GTK+ from languages such as Perl and
Python (especially in combination with the Glade GUI builder) provides
an effective method of rapid application development.

GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without
any license fees or royalties.


Where to get more information about GTK+


Information about GTK+ including links to documentation can be
found at:

http://www.gtk.org/

An installation guide for GTK+ 2.x is found at:

 http://developer.gnome.org/doc/API/2.0/gtk/gtk-building.html

Common questions:

http://developer.gnome.org/doc/API/2.0/gtk/gtk-question-index.html
http://www.gtk.org/faq/


Contributing


GTK+ is a large project and relies on voluntary contributions.
We are actively searching for new contributors in various areas
and invite everyone to help project development.
If you are willing to participate, please subscribe to the project
mailing lists to offer your help and read over our list of vacant
project tasks:
   http://live.gnome.org/GtkTasks


Overview of Changes from GTK+ 2.18.0 to 2.18.1
==

* Client-side Windows:
 - Fix a problem with the F-Spot screensaver
 - Request native events that are necessary for grab emulation
 - Fixes for input device and extended input event handling
 - Allow up to 255 buttons in extended input events

* OS X:
 - Improve handling of multi-monitor setups
 - Basic DND works
 - Other improvements

* Filechooser:
 - Support Tracker 0.7 in the search code

* Bugs fixed:
 596423 Landscape pages are the wrong way around
 588449 DnD doesn't work on GDK/Quartz
 596080 Mention gtk-tooltip in gtk_widget_set_tooltip_window
 596580 Blank rows in entry autocompletion
 588649 extended input events sent to widgets that didn't...
 596081 Update tracker support for version 0.7
 596345 clicking empty space in backgrounds...
 596494 New property cursor in 2.18's GdkWindow with wrong...
 596012 popup menu position is horribly off on gdk quartz...
 596250 Gdkcursor-quartz.c doesn't implement GDK_BLANK_CURSOR
 586207 Printing dialog with a CUPS printer connected...

* Translation updates:
 Assamese
 British English
 Czech
 Estonian
 French
 Galician
 German
 Hungarian
 Slovenian
 Spanish
 Swedish


Thanks to all contributors:
Marek Kasik
Alexander Larsson
Kristian Rietveld
John Ralls
Cody Russell
Thomas Jaeger
Xan Lopez
Jürg Billeter
Christian Dywan
Adrian Johnson


September 30, 2009
Matthias Clasen


___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


Manipulating a GtkComboBox like a GtkTreeView.

2009-09-30 Thread kcirtap
I've got a GtkListStore as the model for a GtkComboBox. I'd like to be
able to call gtk_tree_view_set_show_lines() and
gtk_tree_view_expand_all(), but obviously a GtkComboBox is not a
GtkTreeView...

Is it possible to do this with a GtkComboBox? If not... is there at least
a way to expand certain rows?


___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


State of Gtk+-2.18 On Windows

2009-09-30 Thread John Stowers
Hi All,

As I am currenlty unable to test, could someone please advise me on the
state of Gtk+-2.18 on windows?

Has it been ported to support the new client side windows work?

Regards

John

___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: State of Gtk+-2.18 On Windows

2009-09-30 Thread Tor Lillqvist
 As I am currenlty unable to test, could someone please advise me on the
 state of Gtk+-2.18 on windows?

Try it, there are binaries in
http://ftp.gnome.org/pub/GNOME/binaries/win32/gtk+/2.18/ . You will
need up-to-date dependencies too, in hopefully self-evident locations
near to that.

 Has it been ported to support the new client side windows work?

I don't know if ported is the right term here. As I understand it,
client side windows code was from the start written for the Windows
backend, too. How well it works is another question. I have heard that
some complex applications behave wildly erratically with GTK+.
gtk-demo seems to work fine, though.

The ms-windows theme engine doesn't work nicely in GTK+ 2.18, so I
don't include it in the binaries above. This is unfortunate. This is a
problem in the ms-windows theme engine code, it needs to be modified
to work with client-side windows.

Also, using the GDK_NATIVE_WINDOWS environment variable to fall back
to non-client-side-windows code causes erratic behaviour and crashes,
just in gtk-demo even.

But otherwise it seems to work...

--tml
___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list