Changes to progress bars
This commit is contained in:
@@ -185,13 +185,11 @@ EditorPanel::EditorPanel (FilePanel* filePanel) : beforePreviewHandler(NULL), be
|
||||
|
||||
// Status box
|
||||
statusBox = Gtk::manage (new Gtk::HBox ());
|
||||
progressLabel = Gtk::manage (new Gtk::Label(""));
|
||||
progressLabel = Gtk::manage (new Gtk::ProgressBar());
|
||||
progressLabel->set_fraction(0.0);
|
||||
progressLabel->modify_bg( Gtk::STATE_NORMAL,Gdk::Color("red") );
|
||||
|
||||
statusBox->pack_start (*progressLabel);
|
||||
red = new Gtk::Image (argv0+"/images/red.png");
|
||||
green = new Gtk::Image (argv0+"/images/green.png");
|
||||
red->show ();
|
||||
green->show ();
|
||||
statusBox->pack_end (*green, Gtk::PACK_SHRINK, 2);
|
||||
iops->pack_start(*statusBox, Gtk::PACK_SHRINK, 2);
|
||||
|
||||
// tbRightPanel_1
|
||||
@@ -304,8 +302,6 @@ EditorPanel::~EditorPanel () {
|
||||
|
||||
delete tpc;
|
||||
|
||||
delete red;
|
||||
delete green;
|
||||
delete leftbox;
|
||||
delete vboxright;
|
||||
delete saveAsDialog;
|
||||
@@ -537,24 +533,23 @@ void EditorPanel::setProgressState (int state) {
|
||||
struct spparams {
|
||||
double val;
|
||||
Glib::ustring str;
|
||||
rtengine::ProgressListener* progListener;
|
||||
Gtk::ProgressBar *pProgress;
|
||||
};
|
||||
|
||||
int _setprogress( void *p )
|
||||
{
|
||||
spparams *s= (spparams*)p;
|
||||
gdk_threads_enter ();
|
||||
s->progListener->setProgress( s->val );
|
||||
gdk_threads_leave ();
|
||||
delete s;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _setprogressStr( void *p )
|
||||
{
|
||||
spparams *s= (spparams*)p;
|
||||
gdk_threads_enter ();
|
||||
s->progListener->setProgressStr( s->str );
|
||||
|
||||
if( ! s->str.empty() )
|
||||
s->pProgress->set_text( M(s->str) );
|
||||
if( s->val >=0 ){
|
||||
s->pProgress->set_fraction( s->val );
|
||||
if( s->val <1.0 )
|
||||
s->pProgress->modify_bg( Gtk::STATE_NORMAL,Gdk::Color("red") );
|
||||
else
|
||||
s->pProgress->modify_bg( Gtk::STATE_NORMAL,Gdk::Color("grey") );
|
||||
}
|
||||
gdk_threads_leave ();
|
||||
delete s;
|
||||
return 0;
|
||||
@@ -564,15 +559,16 @@ void EditorPanel::setProgress (double p)
|
||||
{
|
||||
spparams *s=new spparams;
|
||||
s->val = p;
|
||||
s->progListener = parent;
|
||||
g_idle_add (_setprogress, s);
|
||||
s->pProgress = progressLabel;
|
||||
g_idle_add (_setprogressStr, s);
|
||||
}
|
||||
|
||||
void EditorPanel::setProgressStr (Glib::ustring str)
|
||||
{
|
||||
spparams *s=new spparams;
|
||||
s->str = str;
|
||||
s->progListener = parent;
|
||||
s->val = -1;
|
||||
s->pProgress = progressLabel;
|
||||
g_idle_add (_setprogressStr, s);
|
||||
}
|
||||
|
||||
@@ -585,19 +581,14 @@ void EditorPanel::refreshProcessingState (bool inProcessing) {
|
||||
openThm->setProcParams (pparams, EDITOR, false);
|
||||
}
|
||||
|
||||
// change state of the led
|
||||
std::vector<Widget*> children = (std::vector<Widget*>) statusBox->get_children();
|
||||
if (children.size()>=1) {
|
||||
Gtk::Widget* wlast = children[children.size()-1];
|
||||
if (wlast)
|
||||
statusBox->remove (*wlast);
|
||||
}
|
||||
|
||||
|
||||
if (inProcessing) {
|
||||
if (processingStartedTime==0) processingStartedTime = ::time(NULL);
|
||||
|
||||
statusBox->pack_end (*red, Gtk::PACK_SHRINK, 2);
|
||||
spparams *s=new spparams;
|
||||
s->str = "PROGRESSBAR_PROCESSING";
|
||||
s->val = 0.0;
|
||||
s->pProgress = progressLabel;
|
||||
g_idle_add (_setprogressStr, s);
|
||||
} else {
|
||||
if (processingStartedTime!=0) {
|
||||
time_t curTime= ::time(NULL);
|
||||
@@ -607,7 +598,11 @@ void EditorPanel::refreshProcessingState (bool inProcessing) {
|
||||
processingStartedTime = 0;
|
||||
}
|
||||
|
||||
statusBox->pack_end (*green, Gtk::PACK_SHRINK, 2);
|
||||
spparams *s=new spparams;
|
||||
s->str = "PROGRESSBAR_READY";
|
||||
s->val = 1.0;
|
||||
s->pProgress = progressLabel;
|
||||
g_idle_add (_setprogressStr, s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -893,6 +888,8 @@ bool EditorPanel::idle_saveImage (ProgressConnector<rtengine::IImage16*> *pc, Gl
|
||||
sendtogimp->set_sensitive(true);
|
||||
|
||||
}
|
||||
rtengine::ImageSource* imgsrc = isrc->getImageSource ();
|
||||
imgsrc->setProgressListener(this);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ class EditorPanel : public Gtk::VBox,
|
||||
public rtengine::HistogramListener {
|
||||
|
||||
protected:
|
||||
Gtk::Label *progressLabel;
|
||||
Gtk::ProgressBar *progressLabel;
|
||||
Gtk::ToggleButton* info;
|
||||
Gtk::ToggleButton* hidehp;
|
||||
Gtk::ToggleButton* tbShowHideSidePanels;
|
||||
@@ -64,8 +64,6 @@ class EditorPanel : public Gtk::VBox,
|
||||
Gtk::HPaned* hpanedl;
|
||||
Gtk::HPaned* hpanedr;
|
||||
Gtk::HBox* statusBox;
|
||||
Gtk::Image* red;
|
||||
Gtk::Image* green;
|
||||
Gtk::Image *iHistoryShow, *iHistoryHide;
|
||||
Gtk::Image *iTopPanel_1_Show, *iTopPanel_1_Hide;
|
||||
Gtk::Image *iRightPanel_1_Show, *iRightPanel_1_Hide;
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
extern Options options;
|
||||
|
||||
FileBrowser::FileBrowser ()
|
||||
: tbl(NULL) {
|
||||
: tbl(NULL),numFiltered(0) {
|
||||
|
||||
fbih = new FileBrowserIdleHelper;
|
||||
fbih->fbrowser = this;
|
||||
@@ -568,8 +568,11 @@ void FileBrowser::applyFilter (const BrowserFilter& filter) {
|
||||
|
||||
// remove items not complying the filter from the selection
|
||||
bool selchanged = false;
|
||||
for (int i=0; i<fd.size(); i++)
|
||||
if (fd[i]->selected && !checkFilter (fd[i])) {
|
||||
numFiltered=0;
|
||||
for (int i=0; i<fd.size(); i++)
|
||||
if(checkFilter (fd[i]))
|
||||
numFiltered++;
|
||||
else if (fd[i]->selected ) {
|
||||
fd[i]->selected = false;
|
||||
std::vector<ThumbBrowserEntryBase*>::iterator j = std::find (selected.begin(), selected.end(), fd[i]);
|
||||
selected.erase (j);
|
||||
|
||||
@@ -89,7 +89,7 @@ class FileBrowser : public ThumbBrowserBase, public LWButtonListener {
|
||||
FileBrowserListener* tbl;
|
||||
BrowserFilter filter;
|
||||
PartialPasteDlg partialPasteDlg;
|
||||
|
||||
int numFiltered;
|
||||
FileBrowserIdleHelper* fbih;
|
||||
|
||||
void toTrashRequested (std::vector<FileBrowserEntry*> tbe);
|
||||
@@ -115,6 +115,7 @@ class FileBrowser : public ThumbBrowserBase, public LWButtonListener {
|
||||
void applyMenuItemActivated (Glib::ustring ppname);
|
||||
|
||||
void applyFilter (const BrowserFilter& filter);
|
||||
int getNumFiltered(){ return numFiltered;}
|
||||
|
||||
void buttonPressed (LWButton* button, int actionCode, void* actionData);
|
||||
void redrawNeeded (LWButton* button);
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <guiutils.h>
|
||||
#include <glib/gstdio.h>
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include <renamedlg.h>
|
||||
#include <thumbimageupdater.h>
|
||||
#include <safegtk.h>
|
||||
@@ -57,7 +58,10 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
|
||||
filterPanel(NULL),
|
||||
coarsePanel(cp),
|
||||
toolBar(tb),
|
||||
filepanel(filepanel) {
|
||||
filepanel(filepanel),
|
||||
previewsToLoad(0),
|
||||
previewsLoaded(0)
|
||||
{
|
||||
|
||||
inTabMode=false;
|
||||
|
||||
@@ -183,12 +187,6 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
|
||||
fileBrowser->applyFilter (getFilter());
|
||||
pack_start (*hBox);
|
||||
|
||||
buttonBar2 = new Gtk::HBox ();
|
||||
pack_end (*buttonBar2, Gtk::PACK_SHRINK);
|
||||
progressBar = new Gtk::ProgressBar ();
|
||||
buttonBar2->pack_start (*progressBar, Gtk::PACK_SHRINK, 4);
|
||||
progressBar->set_size_request (-1, 16);
|
||||
|
||||
buttonBar->pack_start (*zoomBox, Gtk::PACK_SHRINK);
|
||||
|
||||
// add browserPath
|
||||
@@ -330,6 +328,7 @@ void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring
|
||||
}
|
||||
|
||||
_refreshProgressBar ();
|
||||
filepanel->loadingThumbs(M("PROGRESSBAR_LOADINGTHUMBS"),0);
|
||||
|
||||
#ifdef _WIN32
|
||||
wdMonitor = new WinDirMonitor (selectedDirectory, this);
|
||||
@@ -348,8 +347,6 @@ void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring
|
||||
void FileCatalog::enableTabMode(bool enable) {
|
||||
inTabMode = enable;
|
||||
|
||||
if (!inTabMode) progressBar->hide (); // just needed once
|
||||
|
||||
fileBrowser->enableTabMode(inTabMode);
|
||||
|
||||
redrawAll();
|
||||
@@ -360,13 +357,29 @@ void FileCatalog::_refreshProgressBar () {
|
||||
// Also mention that this progress bar only measures the FIRST pass (quick thumbnails)
|
||||
// The second, usually longer pass is done multithreaded down in the single entries and is NOT measured by this
|
||||
if (!inTabMode) {
|
||||
if (previewsToLoad>0) {
|
||||
progressBar->set_fraction ((double)previewsLoaded / previewsToLoad);
|
||||
progressBar->show ();
|
||||
Gtk::Notebook *nb =(Gtk::Notebook *)(filepanel->get_parent());
|
||||
Gtk::Box* hbb=NULL;
|
||||
Gtk::Label *label=NULL;
|
||||
if( options.mainNBVertical )
|
||||
hbb = Gtk::manage (new Gtk::VBox ());
|
||||
else
|
||||
hbb = Gtk::manage (new Gtk::HBox ());
|
||||
if (!previewsToLoad ) {
|
||||
hbb->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::DIRECTORY, Gtk::ICON_SIZE_MENU)));
|
||||
label = Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER")+" ("+Glib::ustring::format(fileBrowser->getNumFiltered())+"/"+Glib::ustring::format(previewsLoaded)+")"));
|
||||
} else {
|
||||
progressBar->set_fraction (1.0);
|
||||
progressBar->hide ();
|
||||
hbb->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::FIND, Gtk::ICON_SIZE_MENU)));
|
||||
label = Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER")+" [" +Glib::ustring::format(std::fixed, std::setprecision(0), std::setw(3), (double)previewsLoaded / previewsToLoad*100 )+"%]" ));
|
||||
filepanel->loadingThumbs("",(double)previewsLoaded / previewsToLoad);
|
||||
}
|
||||
if( options.mainNBVertical )
|
||||
label->set_angle(90);
|
||||
hbb->pack_start (*label);
|
||||
hbb->set_spacing (2);
|
||||
hbb->set_tooltip_markup (M("MAIN_FRAME_FILEBROWSER_TOOLTIP"));
|
||||
hbb->show_all ();
|
||||
nb->set_tab_label(*filepanel,*hbb);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -432,8 +445,6 @@ void FileCatalog::_previewsFinished () {
|
||||
|
||||
redrawAll ();
|
||||
previewsToLoad = 0;
|
||||
previewsLoaded = 0;
|
||||
progressBar->hide ();
|
||||
|
||||
if (filterPanel) {
|
||||
filterPanel->set_sensitive (true);
|
||||
@@ -446,6 +457,9 @@ void FileCatalog::_previewsFinished () {
|
||||
}
|
||||
// restart anything that might have been loaded low quality
|
||||
fileBrowser->refreshQuickThumbImages();
|
||||
fileBrowser->applyFilter (getFilter());
|
||||
_refreshProgressBar();
|
||||
filepanel->loadingThumbs(M("PROGRESSBAR_READY"),0);
|
||||
}
|
||||
|
||||
void FileCatalog::previewsFinished (int dir_id) {
|
||||
@@ -459,6 +473,7 @@ void FileCatalog::previewsFinished (int dir_id) {
|
||||
|
||||
if (!hasValidCurrentEFS)
|
||||
currentEFS = dirEFS;
|
||||
|
||||
g_idle_add (prevfinished, this);
|
||||
}
|
||||
|
||||
@@ -860,6 +875,7 @@ void FileCatalog::categoryButtonToggled (Gtk::ToggleButton* b) {
|
||||
}
|
||||
|
||||
fileBrowser->applyFilter (getFilter ());
|
||||
_refreshProgressBar();
|
||||
|
||||
//rearrange panels according to the selected filter
|
||||
removeIfThere (hBox, trashButtonBox);
|
||||
@@ -896,7 +912,8 @@ BrowserFilter FileCatalog::getFilter () {
|
||||
|
||||
void FileCatalog::filterChanged () {
|
||||
|
||||
fileBrowser->applyFilter (getFilter());
|
||||
fileBrowser->applyFilter (getFilter());
|
||||
_refreshProgressBar();
|
||||
}
|
||||
|
||||
int FileCatalog::reparseDirectory () {
|
||||
@@ -1051,6 +1068,7 @@ void FileCatalog::exifFilterChanged () {
|
||||
currentEFS = filterPanel->getFilter ();
|
||||
hasValidCurrentEFS = true;
|
||||
fileBrowser->applyFilter (getFilter ());
|
||||
_refreshProgressBar();
|
||||
}
|
||||
|
||||
void FileCatalog::setFilterPanel (FilterPanel* fpanel) {
|
||||
|
||||
@@ -108,7 +108,6 @@ class FileCatalog : public Gtk::VBox,
|
||||
|
||||
Glib::RefPtr<Gio::FileMonitor> dirMonitor;
|
||||
|
||||
Gtk::ProgressBar* progressBar;
|
||||
int previewsToLoad;
|
||||
int previewsLoaded;
|
||||
|
||||
|
||||
@@ -246,3 +246,10 @@ bool FilePanel::handleShortcutKey (GdkEventKey* event) {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void FilePanel::loadingThumbs(Glib::ustring str, double rate)
|
||||
{
|
||||
if( !str.empty())
|
||||
parent->setProgressStr(str);
|
||||
parent->setProgress( rate );
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@ class FilePanel : public Gtk::HPaned,
|
||||
void setAspect();
|
||||
void open (const Glib::ustring& d); // open a file or a directory
|
||||
void refreshEditedState (const std::set<Glib::ustring>& efiles) { fileCatalog->refreshEditedState (efiles); }
|
||||
void loadingThumbs(Glib::ustring str, double rate);
|
||||
|
||||
// call this before closeing rt: it saves file browser relating things into options
|
||||
void saveOptions ();
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <omp.h>
|
||||
#endif
|
||||
|
||||
#define DEBUG(format,args...)
|
||||
#define DEBUG(format,args...)
|
||||
//#define DEBUG(format,args...) printf("PreviewLoader::%s: " format "\n", __FUNCTION__, ## args)
|
||||
|
||||
class PreviewLoader::Impl
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
|
||||
typedef std::set<Job,JobCompare> JobSet;
|
||||
|
||||
Impl()
|
||||
Impl():nConcurrentThreads(0)
|
||||
{
|
||||
int threadCount=2;
|
||||
#ifdef _OPENMP
|
||||
@@ -80,6 +80,8 @@ public:
|
||||
|
||||
JobSet jobs_;
|
||||
|
||||
gint nConcurrentThreads;
|
||||
|
||||
void
|
||||
processNextJob(void)
|
||||
{
|
||||
@@ -100,27 +102,33 @@ public:
|
||||
DEBUG("processing %s",j.dir_entry_.c_str());
|
||||
DEBUG("%d job(s) remaining",jobs_.size());
|
||||
}
|
||||
|
||||
g_atomic_int_inc (&nConcurrentThreads);
|
||||
// unlock and do processing; will relock on block exit, then call listener
|
||||
// if something got
|
||||
Thumbnail* tmb = 0;
|
||||
{
|
||||
if (safe_file_test(j.dir_entry_, Glib::FILE_TEST_EXISTS))
|
||||
try{
|
||||
Thumbnail* tmb = 0;
|
||||
{
|
||||
tmb = cacheMgr->getEntry(j.dir_entry_);
|
||||
if (safe_file_test(j.dir_entry_, Glib::FILE_TEST_EXISTS))
|
||||
{
|
||||
tmb = cacheMgr->getEntry(j.dir_entry_);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// we got something so notify listener
|
||||
if ( tmb )
|
||||
{
|
||||
j.listener_->previewReady(j.dir_id_,new FileBrowserEntry(tmb,j.dir_entry_));
|
||||
}
|
||||
// we got something so notify listener
|
||||
if ( tmb )
|
||||
{
|
||||
j.listener_->previewReady(j.dir_id_,new FileBrowserEntry(tmb,j.dir_entry_));
|
||||
}
|
||||
}catch(Glib::Error){
|
||||
|
||||
}catch(...){}
|
||||
bool last = g_atomic_int_dec_and_test(& nConcurrentThreads);
|
||||
|
||||
// signal at end
|
||||
if ( jobs_.empty() )
|
||||
{
|
||||
j.listener_->previewsFinished(j.dir_id_);
|
||||
if(last)
|
||||
j.listener_->previewsFinished(j.dir_id_);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -163,8 +171,8 @@ PreviewLoader::add(int dir_id, const Glib::ustring& dir_entry, PreviewLoaderList
|
||||
void
|
||||
PreviewLoader::removeAllJobs(void)
|
||||
{
|
||||
DEBUG("stop");
|
||||
|
||||
DEBUG("stop %d",impl_->nConcurrentThreads);
|
||||
Glib::Mutex::Lock lock(impl_->mutex_);
|
||||
impl_->jobs_.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,48 +27,35 @@
|
||||
|
||||
class PLDBridge : public rtengine::ProgressListener {
|
||||
|
||||
Gtk::Label* label;
|
||||
Gtk::ProgressBar* progBar;
|
||||
rtengine::ProgressListener* pl;
|
||||
|
||||
public:
|
||||
PLDBridge ( Gtk::Label* l, Gtk::ProgressBar* pb)
|
||||
: label(l), progBar(pb) {}
|
||||
PLDBridge ( rtengine::ProgressListener* pb)
|
||||
: pl(pb) {}
|
||||
|
||||
// ProgressListener interface
|
||||
void setProgress (double p) {
|
||||
gdk_threads_enter ();
|
||||
progBar->set_fraction (p);
|
||||
pl->setProgress(p);
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
void setProgressStr (Glib::ustring str) {
|
||||
gdk_threads_enter ();
|
||||
Glib::ustring progrstr;
|
||||
if (str=="Decoding...")
|
||||
progrstr = M("PROGRESSBAR_DECODING");
|
||||
else if (str=="Ready.")
|
||||
progrstr = M("PROGRESSBAR_READY");
|
||||
else if (str=="Demosaicing...")
|
||||
progrstr = M("PROGRESSBAR_DEMOSAICING");
|
||||
else if (str=="Loading...")
|
||||
progrstr = M("PROGRESSBAR_LOADING");
|
||||
else if (str=="Loading PNG file...")
|
||||
progrstr = M("PROGRESSBAR_LOADPNG");
|
||||
else if (str=="Loading JPEG file...")
|
||||
progrstr = M("PROGRESSBAR_LOADJPEG");
|
||||
else if (str=="Loading TIFF file...")
|
||||
progrstr = M("PROGRESSBAR_LOADTIFF");
|
||||
else if (str=="Saving PNG file...")
|
||||
progrstr = M("PROGRESSBAR_SAVEPNG");
|
||||
else if (str=="Saving JPEG file...")
|
||||
progrstr = M("PROGRESSBAR_SAVEJPEG");
|
||||
else if (str=="Saving TIFF file...")
|
||||
progrstr = M("PROGRESSBAR_SAVETIFF");
|
||||
else if (str=="Processing...")
|
||||
progrstr = M("PROGRESSBAR_PROCESSING");
|
||||
else
|
||||
progrstr = str;
|
||||
progrstr = M(str);
|
||||
pl->setProgressStr(progrstr);
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
label->set_text (progrstr);
|
||||
void setProgressState (int state){
|
||||
gdk_threads_enter ();
|
||||
pl->setProgressState(state);
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
void error (Glib::ustring descr){
|
||||
gdk_threads_enter ();
|
||||
pl->error(descr);
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -138,8 +138,6 @@ RTWindow::RTWindow ()
|
||||
|
||||
Gtk::VBox* mainBox = Gtk::manage (new Gtk::VBox ());
|
||||
mainBox->pack_start (*mainNB);
|
||||
Gtk::HBox* bottomBox = Gtk::manage (new Gtk::HBox ());
|
||||
mainBox->pack_start (*bottomBox, Gtk::PACK_SHRINK, 1);
|
||||
|
||||
// filling bottom box
|
||||
iFullScreen = new Gtk::Image(argv0+"/images/fullscreen.png");
|
||||
@@ -157,14 +155,32 @@ RTWindow::RTWindow ()
|
||||
btn_fullscreen->set_tooltip_markup (M("MAIN_BUTTON_FULLSCREEN"));
|
||||
btn_fullscreen->set_image (*iFullScreen);
|
||||
btn_fullscreen->signal_clicked().connect( sigc::mem_fun(*this, &RTWindow::toggle_fullscreen) );
|
||||
bottomBox->pack_start (*preferences, Gtk::PACK_SHRINK, 0);
|
||||
#if GTKMM_MINOR_VERSION >= 20
|
||||
if (options.mainNBVertical) {
|
||||
Gtk::VBox* bottomVBox = Gtk::manage (new Gtk::VBox ());
|
||||
bottomVBox->pack_start (prProgBar, Gtk::PACK_SHRINK, 1);
|
||||
bottomVBox->pack_end (*preferences, Gtk::PACK_SHRINK, 0);
|
||||
bottomVBox->pack_end (*btn_fullscreen, Gtk::PACK_EXPAND_WIDGET, 1);
|
||||
prProgBar.set_orientation(Gtk::PROGRESS_BOTTOM_TO_TOP);
|
||||
mainNB->set_action_widget( bottomVBox,Gtk::PACK_END);
|
||||
bottomVBox->show_all();
|
||||
}else{
|
||||
Gtk::HBox* bottomHBox = Gtk::manage (new Gtk::HBox ());
|
||||
bottomHBox->pack_end (*btn_fullscreen, Gtk::PACK_SHRINK, 1);
|
||||
bottomHBox->pack_end (*preferences, Gtk::PACK_SHRINK, 0);
|
||||
bottomHBox->pack_start (prProgBar, Gtk::PACK_EXPAND_WIDGET, 1);
|
||||
mainNB->set_action_widget( bottomHBox,Gtk::PACK_END);
|
||||
bottomHBox->show_all();
|
||||
}
|
||||
#else
|
||||
Gtk::HBox* bottomBox = Gtk::manage (new Gtk::HBox ());
|
||||
bottomBox->pack_end (*btn_fullscreen, Gtk::PACK_SHRINK, 1);
|
||||
bottomBox->pack_start (*rtWeb, Gtk::PACK_SHRINK, 1);
|
||||
bottomBox->pack_start (prLabel );
|
||||
prLabel.set_alignment(Gtk::ALIGN_RIGHT);
|
||||
bottomBox->pack_start (prProgBar, Gtk::PACK_SHRINK, 1);
|
||||
bottomBox->pack_end (*preferences, Gtk::PACK_SHRINK, 0);
|
||||
bottomBox->pack_start (prProgBar, Gtk::PACK_EXPAND_WIDGET, 1);
|
||||
mainBox->pack_start (*bottomBox, Gtk::PACK_SHRINK, 1);
|
||||
#endif
|
||||
|
||||
pldBridge = new PLDBridge(&prLabel,&prProgBar);
|
||||
pldBridge = new PLDBridge(static_cast<rtengine::ProgressListener*>(this));
|
||||
|
||||
Glib::RefPtr<Gtk::RcStyle> style = Gtk::RcStyle::create ();
|
||||
style->set_xthickness (0);
|
||||
@@ -365,16 +381,15 @@ void RTWindow::setProgress (double p) {
|
||||
}
|
||||
|
||||
void RTWindow::setProgressStr (Glib::ustring str) {
|
||||
prLabel.set_text ( str );
|
||||
if (!options.mainNBVertical)
|
||||
prProgBar.set_text ( str );
|
||||
}
|
||||
|
||||
void RTWindow::setProgressState (int state) {
|
||||
if (state) {
|
||||
prProgBar.show();
|
||||
prLabel.show();
|
||||
} else {
|
||||
prProgBar.hide();
|
||||
prLabel.hide();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,7 +410,7 @@ void RTWindow::toggle_fullscreen () {
|
||||
}
|
||||
|
||||
void RTWindow::error (Glib::ustring descr){
|
||||
prLabel.set_text ( descr );
|
||||
prProgBar.set_text ( descr );
|
||||
}
|
||||
|
||||
void RTWindow::SetEditorCurrent()
|
||||
|
||||
@@ -34,7 +34,6 @@ class RTWindow : public Gtk::Window, public rtengine::ProgressListener{
|
||||
std::set<Glib::ustring> filesEdited;
|
||||
std::map<Glib::ustring, EditorPanel*> epanels;
|
||||
|
||||
Gtk::Label prLabel;
|
||||
Gtk::ProgressBar prProgBar;
|
||||
PLDBridge* pldBridge;
|
||||
bool is_fullscreen;
|
||||
|
||||
@@ -24,11 +24,6 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) {
|
||||
|
||||
set_border_width (0);
|
||||
|
||||
Gtk::Label* label = Gtk::manage (new Gtk::Label (Glib::ustring("<b>") + "Zoom" + ":</b> "));
|
||||
label->set_use_markup (true);
|
||||
|
||||
pack_start (*label, Gtk::PACK_SHRINK, 4);
|
||||
|
||||
Gtk::Image* imageOut = Gtk::manage (new Gtk::Image (Gtk::StockID ("gtk-zoom-out"), Gtk::ICON_SIZE_SMALL_TOOLBAR));
|
||||
imageOut->set_padding(0,0);
|
||||
Gtk::Image* imageIn = Gtk::manage (new Gtk::Image (Gtk::StockID ("gtk-zoom-in"), Gtk::ICON_SIZE_SMALL_TOOLBAR));
|
||||
|
||||
Reference in New Issue
Block a user