From 74f28ff4c6f7ea0687c2633007f98875ef8b5d30 Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Wed, 16 Jan 2008 13:47:18 +0000 Subject: 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 --- src/modules/objects/class_dockwindow.cpp | 61 +++++++++++++++++++++++++++----- src/modules/objects/class_mainwindow.cpp | 6 +++- src/modules/objects/class_toolbar.cpp | 3 ++ 3 files changed, 61 insertions(+), 9 deletions(-) (limited to 'src/modules/objects') 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 - #define QT_DOCK_WINDOW Q3DockWindow + #include + #define QT_DOCK_WINDOW QDockWidget #else #include #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; } diff --git a/src/modules/objects/class_mainwindow.cpp b/src/modules/objects/class_mainwindow.cpp index 90f91731c..7a215f7ba 100644 --- a/src/modules/objects/class_mainwindow.cpp +++ b/src/modules/objects/class_mainwindow.cpp @@ -108,6 +108,7 @@ bool KviKvsObject_mainwindow::functionsetDockEnabled(KviKvsObjectFunctionCall *c KVSO_PARAMETERS_END(c) if(widget()) { +#ifndef COMPILE_USE_QT4 if(KviQString::equalCI(szDockarea,"Top")) ((KviTalMainWindow *)widget())->setDockEnabled(Qt::DockTop,bFlag); else if(KviQString::equalCI(szDockarea,"Left")) @@ -123,6 +124,7 @@ bool KviKvsObject_mainwindow::functionsetDockEnabled(KviKvsObjectFunctionCall *c else if(KviQString::equalCI(szDockarea,"Unmanaged")) ((KviTalMainWindow *)widget())->setDockEnabled(Qt::DockUnmanaged,bFlag); else c->warning(__tr2qs("Unknown dock area '%Q'"),&szDockarea); +#endif } return true; @@ -131,11 +133,12 @@ bool KviKvsObject_mainwindow::functionisDockEnabled(KviKvsObjectFunctionCall *c) { QString szDockarea; - bool bFlag; + bool bFlag = false; KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("dock_area",KVS_PT_STRING,0,szDockarea) KVSO_PARAMETERS_END(c) if(!widget()) return true; +#ifndef COMPILE_USE_QT4 if(KviQString::equalCI(szDockarea,"Top")) bFlag=((KviTalMainWindow *)widget())->isDockEnabled(Qt::DockTop); else if(KviQString::equalCI(szDockarea,"Left")) bFlag=((KviTalMainWindow *)widget())->isDockEnabled(Qt::DockLeft); else if(KviQString::equalCI(szDockarea,"Right")) bFlag=((KviTalMainWindow *)widget())->isDockEnabled(Qt::DockRight); @@ -148,6 +151,7 @@ bool KviKvsObject_mainwindow::functionisDockEnabled(KviKvsObjectFunctionCall *c) c->warning(__tr2qs("Unknown dock area '%Q'"),&szDockarea); return true; } +#endif c->returnValue()->setBoolean(bFlag); return true; diff --git a/src/modules/objects/class_toolbar.cpp b/src/modules/objects/class_toolbar.cpp index e8e3292e6..a6cb24c99 100644 --- a/src/modules/objects/class_toolbar.cpp +++ b/src/modules/objects/class_toolbar.cpp @@ -139,7 +139,10 @@ bool KviKvsObject_toolbar::functionsetStretchableWidget(KviKvsObjectFunctionCall c->warning(__tr2qs("Widget object required")); return TRUE; } +#ifndef COMPILE_USE_QT4 + // FIXME: no support for this in Qt4 ? if(widget()) ((KviTalToolBar *)widget())->setStretchableWidget(((QWidget *)(ob->object()))); +#endif //!COMPILE_USE_QT4 return true; } bool KviKvsObject_toolbar::functionclear(KviKvsObjectFunctionCall *c) -- cgit v1.3.1-10-gc9f91