From b5a9d6469eb82f72a449a35f53d72764bab99ff7 Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Wed, 28 Dec 2011 17:15:39 +0200 Subject: [PATCH] Sankore-316 --- src/board/UBBoardPaletteManager.cpp | 6 ++++++ src/gui/UBDockPalette.cpp | 10 +++++++++- src/gui/UBDockPalette.h | 8 ++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index db756be1..483fbbac 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -743,6 +743,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is mLeftPalette->setVisible(true); mRightPalette->setVisible(true); +#ifdef Q_WS_WIN + mRightPalette->setAdditionalVOffset(0); +#endif if( !isInit ) containerResized(); @@ -772,6 +775,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is mLeftPalette->setVisible(false); mRightPalette->setVisible(true); +#ifdef Q_WS_WIN + mRightPalette->setAdditionalVOffset(30); +#endif if( !isInit ) UBApplication::applicationController->uninotesController()->TransparentWidgetResized(); diff --git a/src/gui/UBDockPalette.cpp b/src/gui/UBDockPalette.cpp index 4822099f..ef6b0344 100644 --- a/src/gui/UBDockPalette.cpp +++ b/src/gui/UBDockPalette.cpp @@ -688,7 +688,7 @@ void UBDockPalette::moveTabs() } } - QPoint origin(width(), mHTab); + QPoint origin(width(), mHTab + mTabPalette->mVerticalOffset); switch (mOrientation) { case eUBDockOrientation_Left: @@ -732,6 +732,8 @@ void UBDockPalette::setVisible(bool visible) UBTabDockPalete::UBTabDockPalete(UBDockPalette *dockPalette, QWidget *parent) : QWidget(parent) , dock(dockPalette) + , mVerticalOffset(0) + , mFlotable(false) { int numTabs = dock->mTabWidgets.size(); resize(2 * dock->border(), (numTabs * TABSIZE) + qMax(numTabs - 1, 0) * dock->tabSpacing()); @@ -846,6 +848,12 @@ void UBTabDockPalete::mouseMoveEvent(QMouseEvent *event) if(dock->mCanResize && ((dock->mMousePressPos - p).manhattanLength() > QApplication::startDragDistance())) { + if (qAbs(dock->mMousePressPos.y() - p.y()) > 10 && mFlotable) { + qDebug() << "y differences" << dock->mMousePressPos.y() << p.y(); + mVerticalOffset += p.y() - dock->mMousePressPos.y(); + move(this->pos().x(), p.y()); + } + switch(dock->mOrientation) { case eUBDockOrientation_Left: diff --git a/src/gui/UBDockPalette.h b/src/gui/UBDockPalette.h index 0e00ad14..c89747fa 100644 --- a/src/gui/UBDockPalette.h +++ b/src/gui/UBDockPalette.h @@ -71,6 +71,8 @@ protected: private: UBDockPalette *dock; + int mVerticalOffset; + bool mFlotable; }; class UBDockPalette : public QWidget @@ -107,6 +109,12 @@ public: QVector GetWidgetsList() { return mRegisteredWidgets; } +public: + bool isTabFlotable() {return mTabPalette->mFlotable;} + void setTabFlotable(bool newFlotable) {mTabPalette->mFlotable = newFlotable;} + int getAdditionalVOffset() const {return mTabPalette->mVerticalOffset;} + void setAdditionalVOffset(int newOffset) {mTabPalette->mVerticalOffset = newOffset;} + public slots: void onShowTabWidget(const QString& widgetName); void onHideTabWidget(const QString& widgetName);