From 9ced597a18e1acb55a1b93b573884af81ec9af39 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sat, 4 Aug 2018 00:17:27 +0200 Subject: [PATCH] Makes Preferences window scrollable - The Preferences window is now scrollable. - Cleanup of arcane variable names and obsolete comments. - Issue #4581 --- rtgui/preferences.cc | 202 +++++++++++++++++++++---------------------- rtgui/preferences.h | 25 ++++-- 2 files changed, 114 insertions(+), 113 deletions(-) diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 086592822..48e3b865a 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -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& 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); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 3a51deb13..d9f61f157 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -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);