Panel hiding enhancements on behalf of Michael Ezra; See issue #458

This commit is contained in:
Oliver Duis
2011-01-09 00:09:38 +01:00
parent bc8819a76b
commit 97a2d3b979
23 changed files with 186 additions and 22 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 752 B

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
rtdata/images/folder_bw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

BIN
rtdata/images/right.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

BIN
rtdata/images/right_red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 B

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 B

After

Width:  |  Height:  |  Size: 627 B

View File

@@ -49,6 +49,8 @@ FILEBROWSER_ADDDELTEMPLATE;Add/Del templates...
FILEBROWSER_APPLYPROFILE;Apply profile
FILEBROWSER_ARRANGEMENTHINT;Change between vertical/horizontal alignment of thumbnails
FILEBROWSER_AUTODARKFRAME;Auto dark frame
FILEBROWSER_BROWSEPATHHINT;Type path to browse (Ctrl-Enter in File Browser)
FILEBROWSER_BROWSEPATHBUTTONHINT;Click to browse to the chosen path
FILEBROWSER_CLEARPROFILE;Clear profile
FILEBROWSER_COPYPROFILE;Copy profile
FILEBROWSER_CURRENT_NAME;Current name:
@@ -322,8 +324,11 @@ MAIN_BUTTON_SENDTOEDITOR;Send to editor
MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor <b>Ctrl+E</b>
MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
MAIN_FRAME_BATCHQUEUE;Batch Queue
MAIN_FRAME_BATCHQUEUE_TOOLTIP; Batch Queue <b>Ctrl-F3</b>
MAIN_FRAME_EDITOR;Editor
MAIN_FRAME_EDITOR_TOOLTIP; Editor <b>Ctrl-F4</b>
MAIN_FRAME_FILEBROWSER;File Browser
MAIN_FRAME_FILEBROWSER_TOOLTIP; File Browser <b>Ctrl-F2</b>
MAIN_FRAME_PLACES;Places
MAIN_FRAME_PLACES_ADD;Add
MAIN_FRAME_PLACES_DEL;Del
@@ -363,6 +368,7 @@ MAIN_TOOLTIP_QINFO;Quick info on the image <b>I</b>
MAIN_TOOLTIP_SAVE;Save image to the default folder
MAIN_TOOLTIP_SAVEAS;Save image to a selected folder
MAIN_TOOLTIP_TOGGLE;Toggle before/after view <b>B</b>
MAIN_TOOLTIP_SHOWHIDELP1;Show/hide the left panel <b>H</b>
NAVIGATOR_B_NA;B = n/a
NAVIGATOR_B_VALUE;B = %1
NAVIGATOR_G_NA;G = n/a
@@ -585,8 +591,8 @@ TP_CHMIXER_LABEL;Channel Mixer
TP_CHMIXER_RED;Red
TP_COARSETRAF_DEGREE;degree:
TP_COARSETRAF_TOOLTIP_HFLIP;Flip horizontally
TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left
TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right
TP_COARSETRAF_TOOLTIP_ROTLEFT;Rotate left <b>[</b>
TP_COARSETRAF_TOOLTIP_ROTRIGHT;Rotate right <b>]</b>
TP_COARSETRAF_TOOLTIP_VFLIP;Flip vertically
TP_COLORBOOST_ACHANNEL;Channel "a"
TP_COLORBOOST_AMOUNT;Amount

View File

@@ -187,6 +187,7 @@ void BatchQueuePanel::updateTab (int qsize)
l->set_angle (90);
vbb->pack_start (*l);
vbb->set_spacing (2);
vbb->set_tooltip_markup (M("MAIN_FRAME_BATCHQUEUE_TOOLTIP"));
vbb->show_all ();
nb->set_tab_label(*this,*vbb);
} else {
@@ -202,6 +203,7 @@ void BatchQueuePanel::updateTab (int qsize)
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
}
hbb->set_spacing (2);
hbb->set_tooltip_markup (M("MAIN_FRAME_BATCHQUEUE_TOOLTIP"));
hbb->show_all ();
nb->set_tab_label(*this,*hbb);
}

View File

@@ -51,8 +51,8 @@ CoarsePanel::CoarsePanel () : ToolPanel () {
vflip->set_relief(Gtk::RELIEF_NONE);
pack_start (*vflip);
rotate_left->set_tooltip_text (M("TP_COARSETRAF_TOOLTIP_ROTLEFT"));
rotate_right->set_tooltip_text (M("TP_COARSETRAF_TOOLTIP_ROTRIGHT"));
rotate_left->set_tooltip_markup (M("TP_COARSETRAF_TOOLTIP_ROTLEFT"));
rotate_right->set_tooltip_markup (M("TP_COARSETRAF_TOOLTIP_ROTRIGHT"));
vflip->set_tooltip_text (M("TP_COARSETRAF_TOOLTIP_VFLIP"));
hflip->set_tooltip_text (M("TP_COARSETRAF_TOOLTIP_HFLIP"));

View File

@@ -88,16 +88,19 @@ EditorPanel::EditorPanel (FilePanel* filePanel) : beforePreviewHandler(NULL), be
Gtk::VSeparator* vseph = Gtk::manage (new Gtk::VSeparator ());
hidehp = Gtk::manage (new Gtk::ToggleButton ());
Gtk::Label* hidehpLabel = Gtk::manage (new Gtk::Label ());
hidehpLabel->set_markup ("<b>H</b>");
Gtk::Image* hpimg = Gtk::manage (new Gtk::Image (argv0+"/images/left.png"));
Gtk::HBox* hidehpBox = Gtk::manage (new Gtk::HBox ());
hidehpBox->pack_start (*hpimg, Gtk::PACK_SHRINK, 2);
hidehpBox->pack_start (*hidehpLabel, Gtk::PACK_SHRINK, 2);
hidehp->add (*hidehpBox);
iHistoryShow = new Gtk::Image(argv0+"/images/panel_to_right.png");
iHistoryHide = new Gtk::Image(argv0+"/images/panel_to_left.png");
hidehp->set_relief(Gtk::RELIEF_NONE);
hidehp->set_active (options.showHistory);
hidehp->set_tooltip_markup (M("MAIN_TOOLTIP_HIDEHP"));
if (options.showHistory){
hidehp->set_image (*iHistoryHide);
}
else {
hidehp->set_image (*iHistoryShow);
}
Gtk::VSeparator* vsepcl = Gtk::manage (new Gtk::VSeparator ());
Gtk::VSeparator* vsepz2 = Gtk::manage (new Gtk::VSeparator ());
@@ -661,6 +664,13 @@ void EditorPanel::hideHistoryActivated () {
if (hidehp->get_active())
hpanedl->pack1 (*leftbox, false, true);
options.showHistory = hidehp->get_active();
if (options.showHistory){
hidehp->set_image (*iHistoryHide);
}
else {
hidehp->set_image (*iHistoryShow);
}
}
bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
@@ -671,6 +681,13 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
if (!ctrl) {
// Normal
switch(event->keyval) {
case GDK_bracketright:
tpc->coarse->rotateRight();
return true;
case GDK_bracketleft:
tpc->coarse->rotateLeft();
return true;
case GDK_h:
case GDK_H:
hidehp->set_active (!hidehp->get_active());

View File

@@ -60,6 +60,7 @@ class EditorPanel : public Gtk::VBox,
Gtk::HBox* statusBox;
Gtk::Image* red;
Gtk::Image* green;
Gtk::Image *iHistoryShow, *iHistoryHide;
Gtk::VBox* leftbox, *vboxright;
Gtk::Button* queueimg;

View File

@@ -17,6 +17,7 @@
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <filecatalog.h>
#include <filepanel.h>
#include <options.h>
#include <cachemanager.h>
#include <multilangmgr.h>
@@ -27,6 +28,7 @@
#include <thumbimageupdater.h>
#include <safegtk.h>
#define CHECKTIME 2000
extern Glib::ustring argv0;
@@ -44,7 +46,17 @@ int _directoryUpdater (void* cat) {
}
#endif
FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : selectedDirectoryId(1), listener(NULL), fslistener(NULL), hasValidCurrentEFS(false), filterPanel(NULL), coarsePanel(cp), toolBar(tb) {
FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) :
selectedDirectoryId(1),
listener(NULL),
fslistener(NULL),
dirlistener(NULL),
hasValidCurrentEFS(false),
filterPanel(NULL),
coarsePanel(cp),
toolBar(tb),
filepanel(filepanel) {
inTabMode=false;
// construct and initialize thumbnail browsers
@@ -68,10 +80,23 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : selectedDirectoryId(1)
buttonBar = new Gtk::HBox ();
pack_start (*buttonBar, Gtk::PACK_SHRINK);
buttonBar->pack_start (*(new Gtk::VSeparator), Gtk::PACK_SHRINK);
tbLeftPanel_1 = new Gtk::ToggleButton ();
iLeftPanel_1_Show = new Gtk::Image(argv0+"/images/panel_to_right.png");
iLeftPanel_1_Hide = new Gtk::Image(argv0+"/images/panel_to_left.png");
tbLeftPanel_1->set_relief(Gtk::RELIEF_NONE);
tbLeftPanel_1->set_active (true);
tbLeftPanel_1->set_tooltip_markup (M("MAIN_TOOLTIP_SHOWHIDELP1"));
tbLeftPanel_1->set_image (*iLeftPanel_1_Hide);
tbLeftPanel_1->signal_toggled().connect( sigc::mem_fun(*this, &FileCatalog::tbLeftPanel_1_Activated) );
buttonBar->pack_start (*tbLeftPanel_1, Gtk::PACK_SHRINK);
buttonBar->pack_start (*(new Gtk::VSeparator), Gtk::PACK_SHRINK);
bDir = new Gtk::ToggleButton ();
bDir->set_active (true);
bDir->set_image (*(new Gtk::Image (argv0+"/images/folder.png")));
bDir->set_image (*(new Gtk::Image (argv0+"/images/folder_bw.png")));
bDir->set_relief (Gtk::RELIEF_NONE);
bDir->set_tooltip_markup (M("FILEBROWSER_SHOWDIRHINT"));
bDir->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event),false);
@@ -164,6 +189,25 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb) : selectedDirectoryId(1)
buttonBar->pack_start (*zoomBox, Gtk::PACK_SHRINK);
// add browserPath
buttonBar->pack_start (*(new Gtk::VSeparator), Gtk::PACK_SHRINK);
iRightArrow = new Gtk::Image(argv0+"/images/right.png");
iRightArrow_red = new Gtk::Image(argv0+"/images/right_red.png");
BrowsePath = new Gtk::Entry ();
BrowsePath->set_width_chars (50); // !!! add this value to options
BrowsePath->set_tooltip_markup (M("FILEBROWSER_BROWSEPATHHINT"));
Gtk::HBox* hbBrowsePath = new Gtk::HBox ();
buttonBrowsePath = new Gtk::Button ();
buttonBrowsePath->set_image (*iRightArrow);
buttonBrowsePath->set_tooltip_markup (M("FILEBROWSER_BROWSEPATHBUTTONHINT"));
buttonBrowsePath->set_relief (Gtk::RELIEF_NONE);
hbBrowsePath->pack_start (*BrowsePath);
hbBrowsePath->pack_start (*buttonBrowsePath,Gtk::PACK_SHRINK, 4);
buttonBar->pack_start (*hbBrowsePath, Gtk::PACK_EXPAND_WIDGET,4);
buttonBrowsePath->signal_clicked().connect( sigc::mem_fun(*this, &FileCatalog::buttonBrowsePathPressed) );
buttonBar->pack_end (*coarsePanel, Gtk::PACK_SHRINK);
buttonBar->pack_end (*Gtk::manage(new Gtk::VSeparator), Gtk::PACK_SHRINK, 4);
buttonBar->pack_end (*toolBar, Gtk::PACK_SHRINK);
@@ -262,6 +306,8 @@ void FileCatalog::dirSelected (const Glib::ustring& dirname, const Glib::ustring
addAndOpenFile (openfile);
selectedDirectory = dir->get_parse_name();
BrowsePath->set_text (selectedDirectory);
buttonBrowsePath->set_image (*iRightArrow);
fileNameList = getFileList ();
for (unsigned int i=0; i<fileNameList.size(); i++) {
@@ -898,6 +944,38 @@ void FileCatalog::trashChanged () {
}
}
void FileCatalog::buttonBrowsePathPressed () {
Glib::ustring sel = BrowsePath->get_text();
// validate the path
if (safe_file_test(sel, Glib::FILE_TEST_IS_DIR) && dirlistener){
dirlistener->selectDir (sel);
}
else
// error, likely path not found: show red arrow
buttonBrowsePath->set_image (*iRightArrow_red);
}
void FileCatalog::tbLeftPanel_1_visible (bool visible){
if (visible)
tbLeftPanel_1->show();
else
tbLeftPanel_1->hide();
}
void FileCatalog::tbLeftPanel_1_Activated () {
removeIfThere (filepanel->dirpaned, filepanel->placespaned, false);
if (tbLeftPanel_1->get_active())
filepanel->dirpaned->pack1 (*filepanel->placespaned, false, true);
tbLeftPanel_1_Active = tbLeftPanel_1->get_active();
if (tbLeftPanel_1_Active){
tbLeftPanel_1->set_image (*iLeftPanel_1_Hide);
}
else {
tbLeftPanel_1->set_image (*iLeftPanel_1_Show);
}
}
bool FileCatalog::handleShortcutKey (GdkEventKey* event) {
bool ctrl = event->state & GDK_CONTROL_MASK;
@@ -932,14 +1010,31 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) {
case GDK_T:
categoryButtonToggled(bTrash);
return true;
case GDK_Return:
case GDK_KP_Enter:
FileCatalog::buttonBrowsePathPressed ();
return true;
}
if (!ctrl) {
switch(event->keyval) {
case GDK_bracketright:
coarsePanel->rotateRight();
return true;
case GDK_bracketleft:
coarsePanel->rotateLeft();
return true;
case GDK_h:
case GDK_H:
tbLeftPanel_1->set_active (!tbLeftPanel_1->get_active());
return true;
case GDK_i:
case GDK_I:
exifInfo->set_active (!exifInfo->get_active());
return true;
case GDK_plus:
case GDK_equal:
zoomIn();

View File

@@ -22,6 +22,7 @@
#ifdef _WIN32
#include <windirmonitor.h>
#endif
#include <dirbrowserremoteinterface.h>
#include <dirselectionlistener.h>
#include <filebrowser.h>
#include <procthread.h>
@@ -34,6 +35,8 @@
#include <toolbar.h>
#include <filterpanel.h>
#include <previewloader.h>
#include <multilangmgr.h>
class DirEntry {
@@ -46,7 +49,7 @@ class DirEntry {
return fullName.casefold() < other.fullName.casefold();
}
};
class FilePanel;
class FileCatalog : public Gtk::VBox,
public DirSelectionListener,
public PreviewLoaderListener,
@@ -57,7 +60,7 @@ class FileCatalog : public Gtk::VBox,
#endif
{
FilePanel* filepanel;
Gtk::HBox* hBox;
Glib::ustring selectedDirectory;
int selectedDirectoryId;
@@ -67,9 +70,12 @@ class FileCatalog : public Gtk::VBox,
FileSelectionListener* listener;
FileSelectionChangeListener* fslistener;
ImageAreaToolListener* iatlistener;
DirBrowserRemoteInterface* dirlistener;
Gtk::HBox* buttonBar;
Gtk::HBox* buttonBar2;
Gtk::ToggleButton* tbLeftPanel_1;
bool tbLeftPanel_1_Active;
Gtk::ToggleButton* bDir;
Gtk::ToggleButton* bUnRanked;
Gtk::ToggleButton* bRank[5];
@@ -78,7 +84,10 @@ class FileCatalog : public Gtk::VBox,
Gtk::ToggleButton* exifInfo;
sigc::connection bCateg[8];
Gtk::Image* iranked[5], *igranked[5];
Gtk::Image *iTrashEmpty, *iTrashFull;
Gtk::Image *iTrashEmpty, *iTrashFull, *iRightArrow_red, *iRightArrow, *iLeftPanel_1_Show, *iLeftPanel_1_Hide;
Gtk::Entry* BrowsePath;
Gtk::Button* buttonBrowsePath;
sigc::connection BrowsePathconn;
double hScrollPos[8];
double vScrollPos[8];
@@ -126,7 +135,7 @@ class FileCatalog : public Gtk::VBox,
CoarsePanel* coarsePanel;
ToolBar* toolBar;
FileCatalog (CoarsePanel* cp, ToolBar* tb);
FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel);
void dirSelected (const Glib::ustring& dirname, const Glib::ustring& openfile="");
void closeDir ();
void refreshEditedState (const std::set<Glib::ustring>& efiles);
@@ -160,6 +169,8 @@ class FileCatalog : public Gtk::VBox,
void setFileSelectionListener (FileSelectionListener* l) { listener = l; }
void setFileSelectionChangeListener (FileSelectionChangeListener* l) { fslistener = l; }
void setImageAreaToolListener (ImageAreaToolListener* l) { iatlistener = l; }
void setDirBrowserRemoteInterface (DirBrowserRemoteInterface* l) { dirlistener = l; }
void setFilterPanel (FilterPanel* fpanel);
void exifInfoButtonToggled();
void categoryButtonToggled (Gtk::ToggleButton* b);
@@ -175,6 +186,10 @@ class FileCatalog : public Gtk::VBox,
void zoomIn ();
void zoomOut ();
void buttonBrowsePathPressed ();
void tbLeftPanel_1_Activated ();
void tbLeftPanel_1_visible (bool visible);
void openNextImage () { fileBrowser->openNextImage(); }
void openPrevImage () { fileBrowser->openPrevImage(); }

View File

@@ -54,7 +54,7 @@ FilePanel::FilePanel () : parent(NULL) {
dirpaned->pack1 (*placespaned, false, true);
tpc = new BatchToolPanelCoordinator (this);
fileCatalog = new FileCatalog (tpc->coarse, tpc->getToolBar());
fileCatalog = new FileCatalog (tpc->coarse, tpc->getToolBar(), this);
ribbonPane = new Gtk::Paned();
ribbonPane->add(*fileCatalog);
ribbonPane->set_size_request(50,150);
@@ -66,6 +66,7 @@ FilePanel::FilePanel () : parent(NULL) {
dirBrowser->addDirSelectionListener (recentBrowser);
dirBrowser->addDirSelectionListener (placesBrowser);
fileCatalog->setFileSelectionListener (this);
fileCatalog->setDirBrowserRemoteInterface (dirBrowser);
rightBox = new Gtk::HBox ();
rightBox->set_size_request(50,100);

View File

@@ -38,8 +38,6 @@ class FilePanel : public Gtk::HPaned,
{
protected:
Gtk::Paned* placespaned;
Gtk::HPaned* dirpaned;
//DirBrowser* dirBrowser;
PlacesBrowser* placesBrowser;
RecentBrowser* recentBrowser;
@@ -57,6 +55,9 @@ class FilePanel : public Gtk::HPaned,
public:
FilePanel ();
Gtk::Paned* placespaned;
Gtk::HPaned* dirpaned;
DirBrowser* dirBrowser;
FilterPanel* filterPanel;
FileCatalog* fileCatalog;

View File

@@ -84,6 +84,7 @@ RTWindow::RTWindow ()
l->set_angle (90);
vbf->pack_start (*l);
vbf->set_spacing (2);
vbf->set_tooltip_markup (M("MAIN_FRAME_FILEBROWSER_TOOLTIP"));
vbf->show_all ();
mainNB->append_page (*fpanel, *vbf);
} else {
@@ -91,6 +92,7 @@ RTWindow::RTWindow ()
hbf->pack_start (*Gtk::manage (new Gtk::Image (Gtk::Stock::DIRECTORY, Gtk::ICON_SIZE_MENU)));
hbf->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER"))));
hbf->set_spacing (2);
hbf->set_tooltip_markup (M("MAIN_FRAME_FILEBROWSER_TOOLTIP"));
hbf->show_all ();
mainNB->append_page (*fpanel, *hbf);
}
@@ -115,6 +117,7 @@ RTWindow::RTWindow ()
l->set_angle (90);
vbe->pack_start (*l);
vbe->set_spacing (2);
vbe->set_tooltip_markup (M("MAIN_FRAME_EDITOR_TOOLTIP"));
vbe->show_all ();
mainNB->append_page (*epanel, *vbe);
} else {
@@ -122,6 +125,7 @@ RTWindow::RTWindow ()
hbe->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/logoicon16.png")));
hbe->pack_start (*Gtk::manage (new Gtk::Label(M("MAIN_FRAME_EDITOR"))));
hbe->set_spacing (2);
hbe->set_tooltip_markup (M("MAIN_FRAME_EDITOR_TOOLTIP"));
hbe->show_all ();
mainNB->append_page (*epanel, *hbe);
}
@@ -257,6 +261,26 @@ void RTWindow::remEditorPanel (EditorPanel* ep) {
}
bool RTWindow::keyPressed (GdkEventKey* event) {
bool ctrl = event->state & GDK_CONTROL_MASK;
bool shift = event->state & GDK_SHIFT_MASK;
if (ctrl) {
switch(event->keyval) {
case GDK_F2: // file browser panel
mainNB->set_current_page (mainNB->page_num (*fpanel));
return true;
case GDK_F3: // batch queue panel
mainNB->set_current_page (mainNB->page_num (*bpanel));
return true;
case GDK_F4: //single tab mode, editor panel
if (isSingleTabMode() && epanel) {
mainNB->set_current_page (mainNB->page_num (*epanel));
}
return true;
}
}
if(event->keyval == GDK_F11) {
toggle_fullscreen();
}
@@ -377,6 +401,7 @@ void RTWindow::MoveFileBrowserToMain()
epanel->catalogPane->remove(*fCatalog);
fpanel->ribbonPane->add(*fCatalog);
fCatalog->enableTabMode(false);
fCatalog->tbLeftPanel_1_visible(true);
}
}
@@ -389,6 +414,7 @@ void RTWindow::MoveFileBrowserToEditor()
epanel->catalogPane->add(*fCatalog);
fCatalog->enableTabMode(true);
fCatalog->refreshHeight();
fCatalog->tbLeftPanel_1_visible(false);
}
}