aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/class_dockwindow.cpp
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2008-01-16 13:47:18 +0000
committerGravatar Szymon Tomasz Stefanek2008-01-16 13:47:18 +0000
commit74f28ff4c6f7ea0687c2633007f98875ef8b5d30 (patch)
tree58f56c1aa95e09b7c46152487210c4bd1e14a58b /src/modules/objects/class_dockwindow.cpp
parentupdate (diff)
downloadKVIrc-74f28ff4c6f7ea0687c2633007f98875ef8b5d30.tar.gz
KVIrc-74f28ff4c6f7ea0687c2633007f98875ef8b5d30.tar.bz2
KVIrc-74f28ff4c6f7ea0687c2633007f98875ef8b5d30.zip
Selectively backporting Alexey's qmake branch work into trunk: no longer depending on Q3MainWindow, Q3ToolBar, Q3DockWindow etc...
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1092 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/class_dockwindow.cpp')
-rw-r--r--src/modules/objects/class_dockwindow.cpp61
1 files changed, 53 insertions, 8 deletions
diff --git a/src/modules/objects/class_dockwindow.cpp b/src/modules/objects/class_dockwindow.cpp
index a6067a505..2a79d109b 100644
--- a/src/modules/objects/class_dockwindow.cpp
+++ b/src/modules/objects/class_dockwindow.cpp
@@ -28,8 +28,8 @@
#include "kvi_locale.h"
#include "kvi_qstring.h"
#ifdef COMPILE_USE_QT4
- #include <q3dockwindow.h>
- #define QT_DOCK_WINDOW Q3DockWindow
+ #include <QDockWidget>
+ #define QT_DOCK_WINDOW QDockWidget
#else
#include <qdockwindow.h>
#define QT_DOCK_WINDOW QDockWindow
@@ -96,8 +96,13 @@ KVSO_END_DESTRUCTOR(KviKvsObject_dockwindow)
bool KviKvsObject_dockwindow::init(KviKvsRunTimeContext * pContext,KviKvsVariantList * pParams)
{
-
+#ifdef COMPILE_USE_QT4
+ QDockWidget * pWidget = new QDockWidget(g_pFrame);
+ pWidget->setObjectName(getName());
+ setObject(pWidget);
+#else //!COMPILE_USE_QT4
setObject(new QT_DOCK_WINDOW(g_pFrame,getName()),true);
+#endif //!COMPILE_USE_QT4
return true;
}
@@ -141,16 +146,23 @@ bool KviKvsObject_dockwindow::function_addWidget(KviKvsObjectFunctionCall *c)
c->warning(__tr2qs("The added widget is not a child of this dock window"));
}
+#ifdef COMPILE_USE_QT4
+ _pDockWindow->setWidget((QWidget *)(pWidget->object()));
+#else //!COMPILE_USE_QT4
_pDockWindow->boxLayout()->addWidget((QWidget *)(pWidget->object()));
((QWidget *)(pWidget->object()))->show();
-
+#endif //!COMPILE_USE_QT4
return true;
}
bool KviKvsObject_dockwindow::function_orientation(KviKvsObjectFunctionCall * c)
{
if(!widget())return true; // hum ? dead ?
+#ifdef COMPILE_USE_QT4
+ c->returnValue()->setString(QString("horizontal"));
+#else //!COMPILE_USE_QT4
c->returnValue()->setString(_pDockWindow->orientation() == Qt::Horizontal ? QString("horizontal") : QString("vertical"));
+#endif //!COMPILE_USE_QT4
return true;
}
@@ -162,16 +174,20 @@ bool KviKvsObject_dockwindow::function_setOrientation(KviKvsObjectFunctionCall *
KVSO_PARAMETERS_END(c)
if(!widget())return true; // hum ? dead ?
-
+#ifndef COMPILE_USE_QT4
_pDockWindow->setOrientation(KviQString::equalCI(szOrientation,"vertical") ? Qt::Vertical : Qt::Horizontal);
-
+#endif //!COMPILE_USE_QT4
return true;
}
bool KviKvsObject_dockwindow::function_resizeEnabled(KviKvsObjectFunctionCall * c)
{
if(!widget())return true; // hum ? dead ?
+#ifdef COMPILE_USE_QT4
+ c->returnValue()->setBoolean(false);
+#else //!COMPILE_USE_QT4
c->returnValue()->setBoolean(_pDockWindow->isResizeEnabled());
+#endif //!COMPILE_USE_QT4
return true;
}
@@ -184,8 +200,9 @@ bool KviKvsObject_dockwindow::function_setResizeEnabled(KviKvsObjectFunctionCall
if(!widget())return true; // hum ? dead ?
+#ifndef COMPILE_USE_QT4
_pDockWindow->setResizeEnabled(bResizeEnabled);
-
+#endif //!COMPILE_USE_QT4
return true;
}
@@ -198,12 +215,28 @@ bool KviKvsObject_dockwindow::function_setAllowedDockAreas(KviKvsObjectFunctionC
if(!widget())return true; // hum ? dead ?
+#ifdef COMPILE_USE_QT4
+ Qt::DockWidgetAreas fAreas = Qt::NoDockWidgetArea;
+ if(szFlags.find('t',false))fAreas |= Qt::TopDockWidgetArea;
+ if(szFlags.find('l',false))fAreas |= Qt::LeftDockWidgetArea;
+ if(szFlags.find('r',false))fAreas |= Qt::RightDockWidgetArea;
+ if(szFlags.find('b',false))fAreas |= Qt::BottomDockWidgetArea;
+ _pDockWindow->setAllowedAreas(fAreas);
+ QDockWidget::DockWidgetFeatures fFeatures = _pDockWindow->features();
+ if(szFlags.find('f',false))
+ fFeatures |= QDockWidget::DockWidgetFloatable;
+ else
+ fFeatures &= ~QDockWidget::DockWidgetFloatable;
+ // no support for minimized dock widgets
+ _pDockWindow->setFeatures(fFeatures);
+#else //!COMPILE_USE_QT4
g_pFrame->setDockEnabled(_pDockWindow,Qt::DockTop,szFlags.find('t',false) != -1);
g_pFrame->setDockEnabled(_pDockWindow,Qt::DockLeft,szFlags.find('l',false) != -1);
g_pFrame->setDockEnabled(_pDockWindow,Qt::DockRight,szFlags.find('r',false) != -1);
g_pFrame->setDockEnabled(_pDockWindow,Qt::DockBottom,szFlags.find('b',false) != -1);
g_pFrame->setDockEnabled(_pDockWindow,Qt::DockTornOff,szFlags.find('f',false) != -1);
g_pFrame->setDockEnabled(_pDockWindow,Qt::DockMinimized,szFlags.find('m',false) != -1);
+#endif //!COMPILE_USE_QT4
return true;
}
@@ -217,7 +250,18 @@ bool KviKvsObject_dockwindow::function_dock(KviKvsObjectFunctionCall * c)
KVSO_PARAMETERS_END(c)
if(!widget())return true; // hum ? dead ?
-
+#ifdef COMPILE_USE_QT4
+ g_pFrame->removeDockWidget(_pDockWindow);
+ if(szDock.find('m',false) == -1)_pDockWindow->setFloating(false);
+ if(szDock.find('t',false) != -1)g_pFrame->addDockWidget(Qt::TopDockWidgetArea,_pDockWindow);
+ else if(szDock.find('l',false) != -1)g_pFrame->addDockWidget(Qt::LeftDockWidgetArea,_pDockWindow);
+ else if(szDock.find('r',false) != -1)g_pFrame->addDockWidget(Qt::RightDockWidgetArea,_pDockWindow);
+ else if(szDock.find('b',false) != -1)g_pFrame->addDockWidget(Qt::BottomDockWidgetArea,_pDockWindow);
+ else if(szDock.find('f',false) != -1)_pDockWindow->setFloating(true);
+ else if(szDock.find('m',false) != -1)qDebug("Sorry: no support for minimized dock widgets in Qt4");
+ else c->warning(__tr2qs("Invalid dock area specified"));
+
+#else //!COMPILE_USE_QT4
if(szDock.find('t',false) != -1)g_pFrame->moveDockWindow(_pDockWindow,Qt::DockTop,false,100);
else if(szDock.find('l',false) != -1)g_pFrame->moveDockWindow(_pDockWindow,Qt::DockLeft,false,100);
else if(szDock.find('r',false) != -1)g_pFrame->moveDockWindow(_pDockWindow,Qt::DockRight,false,100);
@@ -225,6 +269,7 @@ bool KviKvsObject_dockwindow::function_dock(KviKvsObjectFunctionCall * c)
else if(szDock.find('f',false) != -1)g_pFrame->moveDockWindow(_pDockWindow,Qt::DockTornOff,false,100);
else if(szDock.find('m',false) != -1)g_pFrame->moveDockWindow(_pDockWindow,Qt::DockMinimized,false,100);
else c->warning(__tr2qs("Invalid dock area specified"));
+#endif //!COMPILE_USE_QT4
return true;
}