Partially solving issue 1788: "Crashing during processing of queue"

It also correct a bug of wrong image orientation (was wrong in the File Browser while good in the Editor tab)

This patch also introduce several speed optimizations like:
   - switch between File Browser and Editor tab in Single Editor mode
   - asynchronous computation of the Batch Queue's thumbnails
   - quick start of RT even with a huge queue
   - less GUI overhead when applying a profile to multiple thumbs in the File Browser
This commit is contained in:
natureh 510
2013-06-16 15:49:47 +02:00
parent b907d54e0e
commit 54c6a6cbb9
50 changed files with 1810 additions and 783 deletions

View File

@@ -23,6 +23,7 @@
#include "thumbbrowserentrybase.h"
#include <set>
#include "options.h"
#include "guiutils.h"
/*
* Class handling the list of ThumbBrowserEntry objects and their position in it's allocated space
@@ -54,6 +55,8 @@ class ThumbBrowserBase : public Gtk::VBox {
protected:
virtual int getMaxThumbnailHeight() const { return options.maxThumbnailHeight; } // Differs between batch and file
virtual void saveThumbnailHeight (int height)=0;
virtual int getThumbnailHeight ()=0;
Internal internal;
Gtk::HScrollbar hscroll;
@@ -62,7 +65,6 @@ class ThumbBrowserBase : public Gtk::VBox {
int inW, inH;
bool inTabMode; // Tab mode has e.g. different preview heights
int getCurrentThumbSize(); // depending on filmstrip/file browser mode
void resizeThumbnailArea (int w, int h);
void internalAreaResized (Gtk::Allocation& req);
@@ -80,7 +82,7 @@ class ThumbBrowserBase : public Gtk::VBox {
int eventTime;
Glib::RWLock entryRW; // Locks access to following vectors
MyRWMutex entryRW; // Locks access to following 'fd' AND 'selected'
std::vector<ThumbBrowserEntryBase*> fd;
std::vector<ThumbBrowserEntryBase*> selected;
ThumbBrowserEntryBase* lastClicked;