Merge pull request #4716 from Beep6581/prefscroll

Makes Preferences window scrollable
This commit is contained in:
Beep6581
2018-08-05 15:40:35 +02:00
committed by GitHub
2 changed files with 114 additions and 113 deletions

View File

@@ -49,13 +49,6 @@ Preferences::Preferences (RTWindow *rtwindow)
moptions.copyFrom (&options);
/*
* Do not increase height, since it's not visible on e.g. smaller netbook
* screens. The default height is about 620 pixels currently, that's why
* we do not set the height anymore. Netbook users will most certainly set
* a smaller font, so they'll be able to shrink the Preferences window and
* close it.
*/
set_size_request (650, -1);
set_default_size (options.preferencesWidth, options.preferencesHeight);
@@ -69,9 +62,9 @@ Preferences::Preferences (RTWindow *rtwindow)
mainBox->set_spacing (8);
#endif
//GTK318
//set_has_separator (false);
Gtk::Notebook* nb = Gtk::manage (new Gtk::Notebook ());
nb->set_scrollable(true);
nb->set_name ("PrefNotebook");
mainBox->pack_start (*nb);
@@ -87,16 +80,16 @@ Preferences::Preferences (RTWindow *rtwindow)
get_action_area()->pack_end (*ok);
get_action_area()->pack_end (*cancel);
nb->append_page (*getGeneralPanel(), M ("PREFERENCES_TAB_GENERAL"));
nb->append_page (*getProcParamsPanel(), M ("PREFERENCES_TAB_IMPROC"));
nb->append_page (*getDynProfilePanel(), M ("PREFERENCES_TAB_DYNAMICPROFILE"));
nb->append_page (*getFileBrowserPanel(), M ("PREFERENCES_TAB_BROWSER"));
nb->append_page (*getColorManagementPanel(), M ("PREFERENCES_TAB_COLORMGR"));
nb->append_page (*getBatchProcPanel(), M ("PREFERENCES_BATCH_PROCESSING"));
nb->append_page (*getPerformancePanel(), M ("PREFERENCES_TAB_PERFORMANCE"));
nb->append_page(*getGeneralPanel(), M("PREFERENCES_TAB_GENERAL"));
nb->append_page(*getImageProcessingPanel(), M("PREFERENCES_TAB_IMPROC"));
nb->append_page(*getDynamicProfilePanel(), M("PREFERENCES_TAB_DYNAMICPROFILE"));
nb->append_page(*getFileBrowserPanel(), M("PREFERENCES_TAB_BROWSER"));
nb->append_page(*getColorManPanel(), M("PREFERENCES_TAB_COLORMGR"));
nb->append_page(*getBatchProcPanel(), M("PREFERENCES_BATCH_PROCESSING"));
nb->append_page(*getPerformancePanel(), M("PREFERENCES_TAB_PERFORMANCE"));
// Sounds only on Windows and Linux
#if defined(WIN32) || defined(__linux__)
nb->append_page (*getSoundPanel(), M ("PREFERENCES_TAB_SOUND"));
nb->append_page(*getSoundsPanel(), M("PREFERENCES_TAB_SOUND"));
#endif
nb->set_current_page (0);
@@ -131,8 +124,10 @@ int Preferences::getThemeRowNumber (Glib::ustring& longThemeFName)
Gtk::Widget* Preferences::getBatchProcPanel ()
{
swBatchProc = Gtk::manage(new Gtk::ScrolledWindow());
swBatchProc->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
Gtk::VBox* mvbpp = Gtk::manage (new Gtk::VBox ());
Gtk::VBox* vbBatchProc = Gtk::manage (new Gtk::VBox ());
Gtk::ScrolledWindow* behscrollw = Gtk::manage (new Gtk::ScrolledWindow ());
behscrollw->set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
@@ -141,8 +136,7 @@ Gtk::Widget* Preferences::getBatchProcPanel ()
vbbeh->pack_start (*behscrollw, Gtk::PACK_EXPAND_WIDGET);
Gtk::Frame* behFrame = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_BEHAVIOR")));
behFrame->add (*vbbeh);
//mvbpp->pack_start (*behFrame);
mvbpp->pack_start (*behFrame, Gtk::PACK_EXPAND_WIDGET, 4);
vbBatchProc->pack_start (*behFrame, Gtk::PACK_EXPAND_WIDGET, 4);
Gtk::TreeView* behTreeView = Gtk::manage (new Gtk::TreeView ());
behscrollw->add (*behTreeView);
@@ -239,7 +233,6 @@ Gtk::Widget* Preferences::getBatchProcPanel ()
appendBehavList(mi, M("TP_LOCALCONTRAST_AMOUNT"), ADDSET_LOCALCONTRAST_AMOUNT, false);
appendBehavList(mi, M("TP_LOCALCONTRAST_DARKNESS"), ADDSET_LOCALCONTRAST_DARKNESS, false);
appendBehavList(mi, M("TP_LOCALCONTRAST_LIGHTNESS"), ADDSET_LOCALCONTRAST_LIGHTNESS, false);
mi = behModel->append ();
mi->set_value (behavColumns.label, M ("TP_SHARPENEDGE_LABEL"));
@@ -254,7 +247,6 @@ Gtk::Widget* Preferences::getBatchProcPanel ()
mi = behModel->append ();
mi->set_value (behavColumns.label, M ("TP_DIRPYRDENOISE_LABEL"));
//appendBehavList (mi, M("TP_DIRPYRDENOISE_LUMA")+", "+M("TP_DIRPYRDENOISE_CHROMA"), ADDSET_DIRPYRDN_CHLUM, true);
appendBehavList (mi, M ("TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING"), ADDSET_DIRPYRDN_LUMA, true);
appendBehavList (mi, M ("TP_DIRPYRDENOISE_LUMINANCE_DETAIL"), ADDSET_DIRPYRDN_LUMDET, true);
appendBehavList (mi, M ("TP_DIRPYRDENOISE_CHROMINANCE_MASTER"), ADDSET_DIRPYRDN_CHROMA, true);
@@ -435,15 +427,15 @@ Gtk::Widget* Preferences::getBatchProcPanel ()
behSetAll->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::behSetAllPressed) );
Gtk::HBox* buttonpanel1 = Gtk::manage (new Gtk::HBox ());
//buttonpanel1->set_spacing(8);
buttonpanel1->pack_end (*behSetAll, Gtk::PACK_SHRINK, 4);
buttonpanel1->pack_end (*behAddAll, Gtk::PACK_SHRINK, 4);
vbbeh->pack_start (*buttonpanel1, Gtk::PACK_SHRINK, 4);
chOverwriteOutputFile = Gtk::manage ( new Gtk::CheckButton (M ("PREFERENCES_OVERWRITEOUTPUTFILE")) );
mvbpp->pack_start (*chOverwriteOutputFile, Gtk::PACK_SHRINK, 4);
vbBatchProc->pack_start (*chOverwriteOutputFile, Gtk::PACK_SHRINK, 4);
return mvbpp;
swBatchProc->add(*vbBatchProc);
return swBatchProc;
}
void Preferences::appendBehavList (Gtk::TreeModel::iterator& parent, Glib::ustring label, int id, bool set)
@@ -475,17 +467,24 @@ void Preferences::behSetRadioToggled (const Glib::ustring& path)
}
Gtk::Widget *Preferences::getDynProfilePanel()
Gtk::Widget *Preferences::getDynamicProfilePanel()
{
swDynamicProfile = Gtk::manage(new Gtk::ScrolledWindow());
swDynamicProfile->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
dynProfilePanel = Gtk::manage (new DynamicProfilePanel());
return dynProfilePanel;
swDynamicProfile->add(*dynProfilePanel);
return swDynamicProfile;
}
Gtk::Widget* Preferences::getProcParamsPanel ()
Gtk::Widget* Preferences::getImageProcessingPanel ()
{
swImageProcessing = Gtk::manage(new Gtk::ScrolledWindow());
swImageProcessing->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
Gtk::VBox* mvbpp = Gtk::manage (new Gtk::VBox ());
Gtk::VBox* vbImageProcessing = Gtk::manage (new Gtk::VBox ());
Gtk::Frame* fpp = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_IMPROCPARAMS")));
Gtk::VBox* vbpp = Gtk::manage (new Gtk::VBox ());
@@ -512,7 +511,7 @@ Gtk::Widget* Preferences::getProcParamsPanel ()
bpconn = useBundledProfiles->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::bundledProfilesChanged) );
vbpp->pack_start (*useBundledProfiles, Gtk::PACK_SHRINK, 4);
fpp->add (*vbpp);
mvbpp->pack_start (*fpp, Gtk::PACK_SHRINK, 4);
vbImageProcessing->pack_start (*fpp, Gtk::PACK_SHRINK, 4);
// Custom profile builder box
Gtk::Frame* cpfrm = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_CUSTPROFBUILD")) );
@@ -530,7 +529,7 @@ Gtk::Widget* Preferences::getProcParamsPanel ()
cpbt->attach (*cpltypelab, 0, 1, 1, 2, Gtk::FILL, Gtk::SHRINK, 2, 2);
cpbt->attach (*custProfBuilderLabelType, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2);
cpfrm->add (*cpbt);
mvbpp->pack_start (*cpfrm, Gtk::PACK_SHRINK, 4);
vbImageProcessing->pack_start (*cpfrm, Gtk::PACK_SHRINK, 4);
Gtk::Frame* fdp = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_PROFILEHANDLING")));
Gtk::Table* vbdp = Gtk::manage (new Gtk::Table (2, 2));
@@ -548,7 +547,7 @@ Gtk::Widget* Preferences::getProcParamsPanel ()
vbdp->attach (*lplab, 0, 1, 1, 2, Gtk::FILL, Gtk::SHRINK, 2, 2);
vbdp->attach (*loadParamsPreference, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2);
fdp->add (*vbdp);
mvbpp->pack_start (*fdp, Gtk::PACK_SHRINK, 4);
vbImageProcessing->pack_start (*fdp, Gtk::PACK_SHRINK, 4);
// Directories
Gtk::Frame* cdf = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_DIRECTORIES")) );
@@ -566,8 +565,7 @@ Gtk::Widget* Preferences::getProcParamsPanel ()
dirgrid->attach_next_to(*darkFrameDir, *dfLab, Gtk::POS_RIGHT, 1, 1);
dirgrid->attach_next_to(*dfLabel, *darkFrameDir, Gtk::POS_RIGHT, 1, 1);
//dfconn = darkFrameDir->signal_file_set().connect ( sigc::mem_fun(*this, &Preferences::darkFrameChanged), true);
dfconn = darkFrameDir->signal_selection_changed().connect ( sigc::mem_fun (*this, &Preferences::darkFrameChanged)); //, true);
dfconn = darkFrameDir->signal_selection_changed().connect ( sigc::mem_fun (*this, &Preferences::darkFrameChanged));
// FLATFIELD
Gtk::Label *ffLab = Gtk::manage (new Gtk::Label (M ("PREFERENCES_FLATFIELDSDIR") + ":"));
@@ -581,8 +579,7 @@ Gtk::Widget* Preferences::getProcParamsPanel ()
dirgrid->attach_next_to(*flatFieldDir, *ffLab, Gtk::POS_RIGHT, 1, 1);
dirgrid->attach_next_to(*ffLabel, *flatFieldDir, Gtk::POS_RIGHT, 1, 1);
//ffconn = flatFieldDir->signal_file_set().connect ( sigc::mem_fun(*this, &Preferences::flatFieldChanged), true);
ffconn = flatFieldDir->signal_selection_changed().connect ( sigc::mem_fun (*this, &Preferences::flatFieldChanged)); //, true);
ffconn = flatFieldDir->signal_selection_changed().connect ( sigc::mem_fun (*this, &Preferences::flatFieldChanged));
//Cluts Dir
Gtk::Label *clutsDirLabel = Gtk::manage (new Gtk::Label (M ("PREFERENCES_CLUTSDIR") + ":"));
@@ -597,7 +594,7 @@ Gtk::Widget* Preferences::getProcParamsPanel ()
dirgrid->attach_next_to(*clutsRestartNeeded, *clutsDir, Gtk::POS_RIGHT, 1, 1);
cdf->add(*dirgrid);
mvbpp->pack_start (*cdf, Gtk::PACK_SHRINK, 4 );
vbImageProcessing->pack_start (*cdf, Gtk::PACK_SHRINK, 4 );
// Crop
Gtk::Frame *cropframe = Gtk::manage(new Gtk::Frame(M("PREFERENCES_CROP")));
@@ -613,15 +610,19 @@ Gtk::Widget* Preferences::getProcParamsPanel ()
cropAutoFit = Gtk::manage(new Gtk::CheckButton(M("PREFERENCES_CROP_AUTO_FIT")));
cropvb->pack_start(*cropAutoFit);
cropframe->add(*cropvb);
mvbpp->pack_start(*cropframe, Gtk::PACK_SHRINK, 4);
vbImageProcessing->pack_start(*cropframe, Gtk::PACK_SHRINK, 4);
return mvbpp;
swImageProcessing->add(*vbImageProcessing);
return swImageProcessing;
}
Gtk::Widget* Preferences::getPerformancePanel ()
{
Gtk::VBox* mainContainer = Gtk::manage ( new Gtk::VBox () );
mainContainer->set_spacing (4);
swPerformance = Gtk::manage(new Gtk::ScrolledWindow());
swPerformance->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
Gtk::VBox* vbPerformance = Gtk::manage ( new Gtk::VBox () );
vbPerformance->set_spacing (4);
Gtk::Frame* fprevdemo = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_PREVDEMO")));
Gtk::HBox* hbprevdemo = Gtk::manage (new Gtk::HBox (false, 4));
@@ -633,7 +634,7 @@ Gtk::Widget* Preferences::getPerformancePanel ()
hbprevdemo->pack_start (*lprevdemo, Gtk::PACK_SHRINK);
hbprevdemo->pack_start (*cprevdemo);
fprevdemo->add (*hbprevdemo);
mainContainer->pack_start (*fprevdemo, Gtk::PACK_SHRINK, 4);
vbPerformance->pack_start (*fprevdemo, Gtk::PACK_SHRINK, 4);
Gtk::Frame* ftiffserialize = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_SERIALIZE_TIFF_READ")));
Gtk::HBox* htiffserialize = Gtk::manage (new Gtk::HBox (false, 4));
@@ -641,7 +642,7 @@ Gtk::Widget* Preferences::getPerformancePanel ()
ctiffserialize->set_tooltip_text (M ("PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP"));
htiffserialize->pack_start (*ctiffserialize);
ftiffserialize->add (*htiffserialize);
mainContainer->pack_start (*ftiffserialize, Gtk::PACK_SHRINK, 4);
vbPerformance->pack_start (*ftiffserialize, Gtk::PACK_SHRINK, 4);
Gtk::Frame* fclut = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_CLUTSCACHE")) );
Gtk::HBox* clutCacheSizeHB = Gtk::manage ( new Gtk::HBox () );
@@ -659,7 +660,7 @@ Gtk::Widget* Preferences::getPerformancePanel ()
clutCacheSizeHB->pack_start (*CLUTLl, Gtk::PACK_SHRINK, 0);
clutCacheSizeHB->pack_end (*clutCacheSizeSB, Gtk::PACK_SHRINK, 0);
fclut->add (*clutCacheSizeHB);
mainContainer->pack_start (*fclut, Gtk::PACK_SHRINK, 4);
vbPerformance->pack_start (*fclut, Gtk::PACK_SHRINK, 4);
Gtk::Frame* finspect = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_INSPECT_LABEL")) );
Gtk::HBox* maxIBuffersHB = Gtk::manage ( new Gtk::HBox () );
@@ -686,7 +687,7 @@ Gtk::Widget* Preferences::getPerformancePanel ()
insphb->pack_start(*thumbnailInspectorMode);
inspectorvb->pack_start(*insphb);
finspect->add (*inspectorvb);
mainContainer->pack_start (*finspect, Gtk::PACK_SHRINK, 4);
vbPerformance->pack_start (*finspect, Gtk::PACK_SHRINK, 4);
Gtk::Frame* fdenoise = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_NOISE")) );
Gtk::VBox* vbdenoise = Gtk::manage ( new Gtk::VBox (Gtk::PACK_SHRINK, 4) );
@@ -766,16 +767,19 @@ Gtk::Widget* Preferences::getPerformancePanel ()
// vbdenoise->pack_start (*cbdaubech, Gtk::PACK_SHRINK);
// --->
fdenoise->add (*vbdenoise);
mainContainer->pack_start (*fdenoise, Gtk::PACK_SHRINK, 4);
vbPerformance->pack_start (*fdenoise, Gtk::PACK_SHRINK, 4);
return mainContainer;
swPerformance->add(*vbPerformance);
return swPerformance;
}
Gtk::Widget* Preferences::getColorManagementPanel ()
Gtk::Widget* Preferences::getColorManPanel ()
{
swColorMan = Gtk::manage(new Gtk::ScrolledWindow());
swColorMan->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
Gtk::VBox* mvbcm = Gtk::manage (new Gtk::VBox ());
mvbcm->set_spacing (4);
Gtk::VBox* vbColorMan = Gtk::manage (new Gtk::VBox ());
vbColorMan->set_spacing (4);
iccDir = Gtk::manage (new MyFileChooserButton (M ("PREFERENCES_ICCDIR"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER));
setExpandAlignProperties (iccDir, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
@@ -795,7 +799,7 @@ Gtk::Widget* Preferences::getColorManagementPanel ()
iccDir->signal_selection_changed ().connect (sigc::mem_fun (this, &Preferences::iccDirChanged));
mvbcm->pack_start (*iccdgrid, Gtk::PACK_SHRINK);
vbColorMan->pack_start (*iccdgrid, Gtk::PACK_SHRINK);
//------------------------- MONITOR ----------------------
@@ -835,11 +839,9 @@ Gtk::Widget* Preferences::getColorManagementPanel ()
setExpandAlignProperties (monBPC, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
monBPC->set_active (true);
//#if defined(WIN32) // Auto-detection not implemented for Linux, see issue 851
cbAutoMonProfile = Gtk::manage (new Gtk::CheckButton (M ("PREFERENCES_AUTOMONPROFILE")));
setExpandAlignProperties (cbAutoMonProfile, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
autoMonProfileConn = cbAutoMonProfile->signal_toggled().connect (sigc::mem_fun (*this, &Preferences::autoMonProfileToggled));
//#endif
int row = 0;
gmonitor->attach (*mplabel, 0, row, 1, 1);
@@ -851,22 +853,18 @@ Gtk::Widget* Preferences::getColorManagementPanel ()
gmonitor->attach (*monProfile, 1, row, 1, 1);
#endif
++row;
//#if defined(WIN32)
gmonitor->attach (*cbAutoMonProfile, 1, row, 1, 1);
++row;
//#endif
gmonitor->attach (*milabel, 0, row, 1, 1);
gmonitor->attach (*monIntent, 1, row, 1, 1);
++row;
gmonitor->attach (*monBPC, 0, row, 2, 1);
//#if defined(WIN32)
autoMonProfileToggled();
//#endif
fmonitor->add (*gmonitor);
mvbcm->pack_start (*fmonitor, Gtk::PACK_SHRINK);
vbColorMan->pack_start (*fmonitor, Gtk::PACK_SHRINK);
//------------------------- PRINTER ----------------------
@@ -911,23 +909,24 @@ Gtk::Widget* Preferences::getColorManagementPanel ()
++row;
gprinter->attach (*prtBPC, 0, row, 2, 1);
//#if defined(WIN32)
autoMonProfileToggled();
//#endif
fprinter->add (*gprinter);
mvbcm->pack_start (*fprinter, Gtk::PACK_SHRINK);
vbColorMan->pack_start (*fprinter, Gtk::PACK_SHRINK);
return mvbcm;
swColorMan->add(*vbColorMan);
return swColorMan;
}
Gtk::Widget* Preferences::getGeneralPanel ()
{
swGeneral = Gtk::manage(new Gtk::ScrolledWindow());
swGeneral->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
Gtk::Grid* mvbsd = Gtk::manage ( new Gtk::Grid () );
mvbsd->set_column_spacing (4);
mvbsd->set_row_spacing (4);
Gtk::Grid* vbGeneral = Gtk::manage ( new Gtk::Grid () );
vbGeneral->set_column_spacing (4);
vbGeneral->set_row_spacing (4);
Gtk::Frame* fworklflow = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_WORKFLOW")));
setExpandAlignProperties (fworklflow, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START);
@@ -1010,7 +1009,7 @@ Gtk::Widget* Preferences::getGeneralPanel ()
fworklflow->add (*workflowGrid);
mvbsd->attach_next_to (*fworklflow, Gtk::POS_TOP, 2, 1);
vbGeneral->attach_next_to (*fworklflow, Gtk::POS_TOP, 2, 1);
// ---------------------------------------------
@@ -1045,7 +1044,7 @@ Gtk::Widget* Preferences::getGeneralPanel ()
langGrid->attach_next_to (*languages, *langlab, Gtk::POS_RIGHT, 1, 1);
langGrid->attach_next_to (*langw, *languages, Gtk::POS_RIGHT, 1, 1);
flang->add (*langGrid);
mvbsd->attach_next_to (*flang, *fworklflow, Gtk::POS_BOTTOM, 2, 1);
vbGeneral->attach_next_to (*flang, *fworklflow, Gtk::POS_BOTTOM, 2, 1);
// ---------------------------------------------
@@ -1118,7 +1117,7 @@ Gtk::Widget* Preferences::getGeneralPanel ()
themeGrid->attach_next_to (*butNavGuideCol, *navGuideLabel, Gtk::POS_RIGHT, 1, 1);
ftheme->add (*themeGrid);
mvbsd->attach_next_to (*ftheme, *flang, Gtk::POS_BOTTOM, 2, 1);
vbGeneral->attach_next_to (*ftheme, *flang, Gtk::POS_BOTTOM, 2, 1);
// ---------------------------------------------
@@ -1151,7 +1150,7 @@ Gtk::Widget* Preferences::getGeneralPanel ()
clipGrid->attach_next_to (*shThresh, *shl, Gtk::POS_RIGHT, 1, 1);
fclip->add (*clipGrid);
mvbsd->attach_next_to (*fclip, *ftheme, Gtk::POS_BOTTOM, 1, 1);
vbGeneral->attach_next_to (*fclip, *ftheme, Gtk::POS_BOTTOM, 1, 1);
// ---------------------------------------------
@@ -1179,7 +1178,7 @@ Gtk::Widget* Preferences::getGeneralPanel ()
navigationGrid->attach_next_to (*rememberZoomPanCheckbutton, *panFactorLabel, Gtk::POS_BOTTOM, 2, 1);
fnav->add (*navigationGrid);
mvbsd->attach_next_to (*fnav, *fclip, Gtk::POS_RIGHT, 1, 1);
vbGeneral->attach_next_to (*fnav, *fclip, Gtk::POS_RIGHT, 1, 1);
// ---------------------------------------------
@@ -1242,20 +1241,23 @@ Gtk::Widget* Preferences::getGeneralPanel ()
#endif
fdg->add (*externaleditorGrid);
mvbsd->attach_next_to (*fdg, *fclip, Gtk::POS_BOTTOM, 2, 1);
vbGeneral->attach_next_to (*fdg, *fclip, Gtk::POS_BOTTOM, 2, 1);
langAutoDetectConn = ckbLangAutoDetect->signal_toggled().connect (sigc::mem_fun (*this, &Preferences::langAutoDetectToggled));
tconn = theme->signal_changed().connect ( sigc::mem_fun (*this, &Preferences::themeChanged) );
fconn = fontButton->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::fontChanged) );
cpfconn = colorPickerFontButton->signal_font_set().connect ( sigc::mem_fun (*this, &Preferences::cpFontChanged) );
return mvbsd;
swGeneral->add(*vbGeneral);
return swGeneral;
}
Gtk::Widget* Preferences::getFileBrowserPanel ()
{
swFileBrowser = Gtk::manage(new Gtk::ScrolledWindow());
swFileBrowser->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
Gtk::VBox* mvbfb = Gtk::manage ( new Gtk::VBox () );
Gtk::VBox* vbFileBrowser = Gtk::manage ( new Gtk::VBox () );
Gtk::Frame* fsd = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_STARTUPIMDIR")) );
@@ -1284,7 +1286,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel ()
vbsd->pack_start (*otherbox, Gtk::PACK_SHRINK, 0);
fsd->add (*vbsd);
mvbfb->pack_start (*fsd, Gtk::PACK_SHRINK, 4);
vbFileBrowser->pack_start (*fsd, Gtk::PACK_SHRINK, 4);
sdselect->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::selectStartupDir) );
@@ -1439,11 +1441,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel ()
hb6->pack_start (*fre);
hb6->set_spacing (4);
mvbfb->pack_start (*hb6, Gtk::PACK_SHRINK, 4);
// mvbfb->pack_start (*fro, Gtk::PACK_SHRINK, 4);
// mvbfb->pack_start (*fre);
// mvbfb->pack_start (*frc, Gtk::PACK_SHRINK, 4);
vbFileBrowser->pack_start (*hb6, Gtk::PACK_SHRINK, 4);
addExt->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::addExtPressed) );
delExt->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::delExtPressed) );
@@ -1454,22 +1452,26 @@ Gtk::Widget* Preferences::getFileBrowserPanel ()
clearProfiles->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::clearProfilesPressed) );
clearAll->signal_clicked().connect ( sigc::mem_fun (*this, &Preferences::clearAllPressed) );
return mvbfb;
swFileBrowser->add(*vbFileBrowser);
return swFileBrowser;
}
Gtk::Widget* Preferences::getSoundPanel ()
Gtk::Widget* Preferences::getSoundsPanel ()
{
Gtk::VBox* pSnd = new Gtk::VBox ();
swSounds = Gtk::manage(new Gtk::ScrolledWindow());
swSounds->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
Gtk::VBox* vbSounds = new Gtk::VBox ();
ckbSndEnable = Gtk::manage ( new Gtk::CheckButton (M ("GENERAL_ENABLE")));
sndEnableConn = ckbSndEnable->signal_toggled().connect (sigc::mem_fun (*this, &Preferences::sndEnableToggled));
pSnd->pack_start (*ckbSndEnable, Gtk::PACK_SHRINK, 4);
vbSounds->pack_start (*ckbSndEnable, Gtk::PACK_SHRINK, 4);
Gtk::HBox* hblSndHelp = Gtk::manage (new Gtk::HBox ());
Gtk::Label* lSndHelp = Gtk::manage (new Gtk::Label (M ("PREFERENCES_SND_HELP")));
hblSndHelp->pack_start (*lSndHelp, Gtk::PACK_SHRINK, 4);
pSnd->pack_start (*hblSndHelp, Gtk::PACK_SHRINK, 4);
vbSounds->pack_start (*hblSndHelp, Gtk::PACK_SHRINK, 4);
// BatchQueueDone
Gtk::HBox* pBatchQueueDone = Gtk::manage ( new Gtk::HBox() );
@@ -1480,7 +1482,7 @@ Gtk::Widget* Preferences::getSoundPanel ()
txtSndBatchQueueDone = Gtk::manage (new Gtk::Entry());
pBatchQueueDone->pack_end (*txtSndBatchQueueDone, Gtk::PACK_EXPAND_WIDGET, 4);
pSnd->pack_start (*pBatchQueueDone, Gtk::PACK_SHRINK, 4);
vbSounds->pack_start (*pBatchQueueDone, Gtk::PACK_SHRINK, 4);
// LngEditProcDone
Gtk::HBox* pSndLngEditProcDone = Gtk::manage ( new Gtk::HBox() );
@@ -1500,11 +1502,12 @@ Gtk::Widget* Preferences::getSoundPanel ()
spbSndLngEditProcDoneSecs->set_range (0, 10);
pSndLngEditProcDone->pack_end (*spbSndLngEditProcDoneSecs, Gtk::PACK_SHRINK, 4);
pSnd->pack_start (*pSndLngEditProcDone, Gtk::PACK_SHRINK, 4);
vbSounds->pack_start (*pSndLngEditProcDone, Gtk::PACK_SHRINK, 4);
sndEnableToggled();
return pSnd;
swSounds->add(*vbSounds);
return swSounds;
}
void Preferences::parseDir (Glib::ustring dirname, std::vector<Glib::ustring>& items, Glib::ustring ext)
@@ -1596,8 +1599,9 @@ void Preferences::parseThemeDir (Glib::ustring dirname)
void Preferences::storePreferences ()
{
// With the new mechanism, we can't be sure of the availability of the DEFPROFILE_RAW & DEFPROFILE_IMG profiles,
// because useBundledProfiles may be false. We're now using DEFPROFILE_INTERNAL instead, which is always available.
// With the new mechanism, we can't be sure of the availability of the DEFPROFILE_RAW & DEFPROFILE_IMG profiles,
// because useBundledProfiles may be false. We're now using DEFPROFILE_INTERNAL instead, which is always available.
moptions.defProfRaw = rprofiles->getFullPathFromActiveRow();
if (moptions.defProfRaw.empty()) {
@@ -1730,16 +1734,11 @@ void Preferences::storePreferences ()
}
moptions.rtSettings.monitorBPC = monBPC->get_active ();
//#if defined(WIN32)
moptions.rtSettings.autoMonitorProfile = cbAutoMonProfile->get_active ();
//#endif
#endif
moptions.rtSettings.iccDirectory = iccDir->get_filename ();
// moptions.rtSettings.viewingdevice = view->get_active_row_number ();
// moptions.rtSettings.viewingdevicegrey = grey->get_active_row_number ();
// moptions.rtSettings.viewinggreySc = greySc->get_active_row_number ();
// moptions.rtSettings.autocielab = cbAutocielab->get_active ();
moptions.rtSettings.leveldnv = dnv->get_active_row_number ();
moptions.rtSettings.leveldnti = dnti->get_active_row_number ();
moptions.rtSettings.leveldnliss = dnliss->get_active_row_number ();
@@ -1889,18 +1888,13 @@ void Preferences::fillPreferences ()
}
monBPC->set_active (moptions.rtSettings.monitorBPC);
//#if defined(WIN32)
cbAutoMonProfile->set_active (moptions.rtSettings.autoMonitorProfile);
//#endif
#endif
if (Glib::file_test (moptions.rtSettings.iccDirectory, Glib::FILE_TEST_IS_DIR)) {
iccDir->set_current_folder (moptions.rtSettings.iccDirectory);
}
// view->set_active (moptions.rtSettings.viewingdevice);
// grey->set_active (moptions.rtSettings.viewingdevicegrey);
// greySc->set_active (moptions.rtSettings.viewinggreySc);
dnv->set_active (moptions.rtSettings.leveldnv);
dnti->set_active (moptions.rtSettings.leveldnti);
dnliss->set_active (moptions.rtSettings.leveldnliss);
@@ -1910,7 +1904,6 @@ void Preferences::fillPreferences ()
cprevdemo->set_active (moptions.prevdemo);
cbdaubech->set_active (moptions.rtSettings.daubech);
// cbAutocielab->set_active (moptions.rtSettings.autocielab);
languages->set_active_text (moptions.language);
ckbLangAutoDetect->set_active (moptions.languageAutoDetect);
int themeNbr = getThemeRowNumber (moptions.theme);
@@ -2023,7 +2016,6 @@ void Preferences::fillPreferences ()
curveBBoxPosC->set_active (moptions.curvebboxpos);
ckbHistogramPositionLeft->set_active (moptions.histogramPosition == 1);
// ckbHistogramWorking->set_active(moptions.histogramWorking==1);
ckbFileBrowserToolbarSingleRow->set_active (moptions.FileBrowserToolbarSingleRow);
ckbShowFilmStripToolBar->set_active (moptions.showFilmStripToolBar);
ckbHideTPVScrollbar->set_active (moptions.hideTPVScrollbar);
@@ -2098,17 +2090,17 @@ void Preferences::savePressed () {
}
*/
//#if defined(WIN32)
void Preferences::autoMonProfileToggled ()
{
monProfile->set_sensitive (!cbAutoMonProfile->get_active());
}
//#endif
/*
void Preferences::autocielabToggled () {
// cbAutocielab->set_sensitive(cbAutocielab->get_active());
}
*/
void Preferences::sndEnableToggled ()
{
txtSndBatchQueueDone->set_sensitive (ckbSndEnable->get_active());
@@ -2162,7 +2154,7 @@ void Preferences::cancelPressed ()
// update the profileStore
if (useBundledProfiles->get_active () != options.useBundledProfiles) {
// we have to rescan with the old value;
// we have to rescan with the old value
bpconn.block (true);
useBundledProfiles->set_active (false);
bundledProfilesChanged();
@@ -2176,7 +2168,7 @@ void Preferences::selectStartupDir ()
{
Gtk::FileChooserDialog dialog (getToplevelWindow (this), M ("PREFERENCES_DIRSELECTDLG"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER);
// dialog.set_transient_for(*this);
//dialog.set_transient_for(*this);
//Add response buttons to the dialog:
dialog.add_button (M ("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL);

View File

@@ -242,14 +242,23 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener
void appendBehavList (Gtk::TreeModel::iterator& parent, Glib::ustring label, int id, bool set);
Gtk::Widget* getProcParamsPanel ();
Gtk::Widget* getColorManagementPanel ();
Gtk::Widget* getFileBrowserPanel ();
Gtk::Widget* getGeneralPanel ();
Gtk::Widget* getBatchProcPanel ();
Gtk::Widget* getPerformancePanel ();
Gtk::Widget* getSoundPanel ();
Gtk::Widget* getDynProfilePanel ();
Gtk::ScrolledWindow *swGeneral;
Gtk::ScrolledWindow *swImageProcessing;
Gtk::ScrolledWindow *swDynamicProfile;
Gtk::ScrolledWindow *swFileBrowser;
Gtk::ScrolledWindow *swColorMan;
Gtk::ScrolledWindow *swBatchProc;
Gtk::ScrolledWindow *swPerformance;
Gtk::ScrolledWindow *swSounds;
Gtk::Widget *getGeneralPanel();
Gtk::Widget *getImageProcessingPanel();
Gtk::Widget *getDynamicProfilePanel();
Gtk::Widget *getFileBrowserPanel();
Gtk::Widget *getColorManPanel();
Gtk::Widget *getBatchProcPanel();
Gtk::Widget *getPerformancePanel();
Gtk::Widget *getSoundsPanel();
public:
explicit Preferences (RTWindow *rtwindow);