diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index cc9fff7c..986a8356 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -1013,6 +1013,7 @@ void UBBoardPaletteManager::startDownloads() if(!mDownloadInProgress) { mDownloadInProgress = true; + mpDownloadWidget->setVisibleState(true); mRightPalette->addTab(mpDownloadWidget); } } @@ -1022,6 +1023,7 @@ void UBBoardPaletteManager::stopDownloads() if(mDownloadInProgress) { mDownloadInProgress = false; + mpDownloadWidget->setVisibleState(false); mRightPalette->removeTab(mpDownloadWidget->name()); } } diff --git a/src/gui/UBCachePropertiesWidget.cpp b/src/gui/UBCachePropertiesWidget.cpp index 46f9f798..751c5d15 100644 --- a/src/gui/UBCachePropertiesWidget.cpp +++ b/src/gui/UBCachePropertiesWidget.cpp @@ -38,6 +38,7 @@ UBCachePropertiesWidget::UBCachePropertiesWidget(QWidget *parent, const char *na setStyleSheet(UBApplication::globalStyleSheet()); mName = "CachePropWidget"; + mVisibleState = false; mIconToLeft = QPixmap(":images/cache_open.png"); mIconToRight = QPixmap(":images/cache_close.png"); setContentsMargins(10, 10, 10, 10); diff --git a/src/gui/UBDockDownloadWidget.cpp b/src/gui/UBDockDownloadWidget.cpp index 5f373b9d..01b5d0ac 100644 --- a/src/gui/UBDockDownloadWidget.cpp +++ b/src/gui/UBDockDownloadWidget.cpp @@ -20,6 +20,7 @@ UBDockDownloadWidget::UBDockDownloadWidget(QWidget *parent, const char *name):UB , mpDLWidget(NULL) { mName = "DownloadWidget"; + mVisibleState = false; setAttribute(Qt::WA_StyledBackground, true); setStyleSheet(UBApplication::globalStyleSheet()); diff --git a/src/gui/UBDockPalette.cpp b/src/gui/UBDockPalette.cpp index b7b7a6f6..d7c75106 100644 --- a/src/gui/UBDockPalette.cpp +++ b/src/gui/UBDockPalette.cpp @@ -540,35 +540,35 @@ int UBDockPalette::customMargin() * \brief Add the given tab widget * @param widget as the given widget */ -void UBDockPalette::addTab(UBDockPaletteWidget *widget) -{ - if(!mTabWidgets.contains(widget)) - { - widget->setVisible(true); - mTabWidgets.append(widget); - mpStackWidget->addWidget(widget); - mpStackWidget->setCurrentWidget(widget); - update(); - } +void UBDockPalette::addTab(UBDockPaletteWidget *widget) +{ + if(!mTabWidgets.contains(widget) && widget->visibleState()) + { + widget->setVisible(true); + mTabWidgets.append(widget); + mpStackWidget->addWidget(widget); + mpStackWidget->setCurrentWidget(widget); + update(); + } } /** * \brief Remove the given tab * @param widgetName as the tab widget name */ -void UBDockPalette::removeTab(const QString &widgetName) -{ - for(int i = 0; i < mTabWidgets.size(); i++) - { - UBDockPaletteWidget* pCrntWidget = mTabWidgets.at(i); - if(NULL != pCrntWidget && (pCrntWidget->name() == widgetName)) - { - mpStackWidget->removeWidget(pCrntWidget); - mTabWidgets.remove(i); - pCrntWidget->hide(); - update(); - break; - } - } +void UBDockPalette::removeTab(const QString &widgetName) +{ + for(int i = 0; i < mTabWidgets.size(); i++) + { + UBDockPaletteWidget* pCrntWidget = mTabWidgets.at(i); + if(NULL != pCrntWidget && (pCrntWidget->name() == widgetName)) + { + mpStackWidget->removeWidget(pCrntWidget); + mTabWidgets.remove(i); + pCrntWidget->hide(); + update(); + break; + } + } } /** @@ -600,6 +600,7 @@ void UBDockPalette::onShowTabWidget(const QString &widgetName) UBDockPaletteWidget* pCrntWidget = mRegisteredWidgets.at(i); if(NULL != pCrntWidget && (pCrntWidget->name() == widgetName)) { + pCrntWidget->setVisibleState(true); addTab(pCrntWidget); break; } @@ -612,6 +613,13 @@ void UBDockPalette::onShowTabWidget(const QString &widgetName) */ void UBDockPalette::onHideTabWidget(const QString &widgetName) { + for(int i = 0; i < mRegisteredWidgets.size(); i++){ + UBDockPaletteWidget* pCrntWidget = mRegisteredWidgets.at(i); + if(NULL != pCrntWidget && (pCrntWidget->name() == widgetName)){ + pCrntWidget->setVisibleState(false); + break; + } + } removeTab(widgetName); } diff --git a/src/gui/UBDockPaletteWidget.h b/src/gui/UBDockPaletteWidget.h index 5c37cfff..fdf50a87 100644 --- a/src/gui/UBDockPaletteWidget.h +++ b/src/gui/UBDockPaletteWidget.h @@ -27,8 +27,9 @@ public: void registerMode(eUBDockPaletteWidgetMode mode); - QVector GetRegisteredModes() { return mRegisteredModes; }; - + QVector GetRegisteredModes() { return mRegisteredModes; } + bool visibleState(){return mVisibleState;} + void setVisibleState(bool state){mVisibleState = state;} signals: void hideTab(const QString& widgetName); @@ -46,6 +47,7 @@ protected: /* The current widget available mode list */ QVector mRegisteredModes; + bool mVisibleState; }; #endif // UBDOCKPALETTEWIDGET_H diff --git a/src/gui/UBLibWidget.cpp b/src/gui/UBLibWidget.cpp index 8e23613d..459de6c5 100644 --- a/src/gui/UBLibWidget.cpp +++ b/src/gui/UBLibWidget.cpp @@ -35,6 +35,7 @@ UBLibWidget::UBLibWidget(QWidget *parent, const char *name):UBDockPaletteWidget( { setObjectName(name); mName = "LibWidget"; + mVisibleState = true; setAttribute(Qt::WA_StyledBackground, true); setStyleSheet(UBApplication::globalStyleSheet()); diff --git a/src/gui/UBPageNavigationWidget.cpp b/src/gui/UBPageNavigationWidget.cpp index b0a4e444..77c378c2 100644 --- a/src/gui/UBPageNavigationWidget.cpp +++ b/src/gui/UBPageNavigationWidget.cpp @@ -31,6 +31,7 @@ UBPageNavigationWidget::UBPageNavigationWidget(QWidget *parent, const char *name { setObjectName(name); mName = "PageNavigator"; + mVisibleState = true; setAttribute(Qt::WA_StyledBackground, true); setStyleSheet(UBApplication::globalStyleSheet()); diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index 77b2ef58..bca8ffc5 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -36,6 +36,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock { setObjectName(name); mName = "TeacherBarWidget"; + mVisibleState = true; setAttribute(Qt::WA_StyledBackground, true); setStyleSheet(UBApplication::globalStyleSheet());