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

@@ -25,6 +25,7 @@
#include "exiffiltersettings.h"
#include "filebrowserentry.h"
#include "browserfilter.h"
#include "pparamschangelistener.h"
#include "partialpastedlg.h"
#include "exportpanel.h"
#include "extprog.h"
@@ -34,6 +35,7 @@ class FileBrowserEntry;
class FileBrowserListener {
public:
virtual ~FileBrowserListener () {}
virtual void openRequested (std::vector<Thumbnail*> tbe) {}
virtual void developRequested (std::vector<FileBrowserEntry*> tbe, bool fastmode) {}
virtual void renameRequested (std::vector<FileBrowserEntry*> tbe) {}
@@ -112,6 +114,7 @@ class FileBrowser : public ThumbBrowserBase,
Glib::RefPtr<Gtk::AccelGroup> pmaccelgroup;
BatchPParamsChangeListener* bppcl;
FileBrowserListener* tbl;
BrowserFilter filter;
int numFiltered;
@@ -140,6 +143,7 @@ class FileBrowser : public ThumbBrowserBase,
FileBrowserEntry* delEntry (const Glib::ustring& fname); // return the entry if found here return NULL otherwise
void close ();
void setBatchPParamsChangeListener (BatchPParamsChangeListener* l) { bppcl = l; }
void setFileBrowserListener (FileBrowserListener* l) { tbl = l; }
void menuItemActivated (Gtk::MenuItem* m);
@@ -156,6 +160,9 @@ class FileBrowser : public ThumbBrowserBase,
void doubleClicked (ThumbBrowserEntryBase* entry);
bool keyPressed (GdkEventKey* event);
void saveThumbnailHeight (int height);
int getThumbnailHeight ();
void openNextImage ();
void openPrevImage ();
void copyProfile ();