diff options
author | Lars Knoll <lars.knoll@nokia.com> | 2009-03-23 09:18:55 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-23 09:18:55 (GMT) |
commit | e5fcad302d86d316390c6b0f62759a067313e8a9 (patch) | |
tree | c2afbf6f1066b6ce261f14341cf6d310e5595bc1 /tools/designer/src/plugins/widgets/q3mainwindow | |
download | Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.zip Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.gz Qt-e5fcad302d86d316390c6b0f62759a067313e8a9.tar.bz2 |
Long live Qt 4.5!
Diffstat (limited to 'tools/designer/src/plugins/widgets/q3mainwindow')
4 files changed, 408 insertions, 0 deletions
diff --git a/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.cpp b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.cpp new file mode 100644 index 0000000..f0bebd5 --- /dev/null +++ b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.cpp @@ -0,0 +1,130 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Qt Designer of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "q3mainwindow_container.h" + +#include <Qt3Support/Q3MainWindow> + +#include <QtCore/qdebug.h> +#include <QtGui/QToolBar> +#include <QtGui/QMenuBar> +#include <QtGui/QStatusBar> + +#include <Qt3Support/Q3ToolBar> + +QT_BEGIN_NAMESPACE + +Q3MainWindowContainer::Q3MainWindowContainer(Q3MainWindow *widget, QObject *parent) + : QObject(parent), + m_mainWindow(widget) +{} + +int Q3MainWindowContainer::count() const +{ + return m_widgets.count(); +} + +QWidget *Q3MainWindowContainer::widget(int index) const +{ + if (index == -1) + return 0; + + return m_widgets.at(index); +} + +int Q3MainWindowContainer::currentIndex() const +{ + return m_mainWindow->centralWidget() ? 0 : -1; +} + +void Q3MainWindowContainer::setCurrentIndex(int index) +{ + Q_UNUSED(index); +} + +void Q3MainWindowContainer::addWidget(QWidget *widget) +{ + if (qobject_cast<QToolBar*>(widget)) { + m_widgets.append(widget); + } else if (qobject_cast<Q3ToolBar*>(widget)) { + m_widgets.append(widget); + } else if (qobject_cast<QMenuBar*>(widget)) { + (void) m_mainWindow->menuBar(); + m_widgets.append(widget); + } else if (qobject_cast<QStatusBar*>(widget)) { + (void) m_mainWindow->statusBar(); + m_widgets.append(widget); + } else { + Q_ASSERT(m_mainWindow->centralWidget() == 0); + widget->setParent(m_mainWindow); + m_mainWindow->setCentralWidget(widget); + m_widgets.prepend(widget); + } +} + +void Q3MainWindowContainer::insertWidget(int index, QWidget *widget) +{ + m_widgets.insert(index, widget); +} + +void Q3MainWindowContainer::remove(int index) +{ + m_widgets.removeAt(index); +} + +Q3MainWindowContainerFactory::Q3MainWindowContainerFactory(QExtensionManager *parent) + : QExtensionFactory(parent) +{ +} + +QObject *Q3MainWindowContainerFactory::createExtension(QObject *object, const QString &iid, QObject *parent) const +{ + if (iid != Q_TYPEID(QDesignerContainerExtension)) + return 0; + + if (Q3MainWindow *w = qobject_cast<Q3MainWindow*>(object)) + return new Q3MainWindowContainer(w, parent); + + return 0; +} + + +QT_END_NAMESPACE diff --git a/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.h b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.h new file mode 100644 index 0000000..ad44265 --- /dev/null +++ b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_container.h @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Qt Designer of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef Q3MAINWINDOW_CONTAINER_H +#define Q3MAINWINDOW_CONTAINER_H + +#include <QtDesigner/QDesignerContainerExtension> +#include <QtDesigner/QExtensionFactory> + +QT_BEGIN_NAMESPACE + +class Q3MainWindow; + +class Q3MainWindowContainer: public QObject, public QDesignerContainerExtension +{ + Q_OBJECT + Q_INTERFACES(QDesignerContainerExtension) +public: + explicit Q3MainWindowContainer(Q3MainWindow *widget, QObject *parent = 0); + + virtual int count() const; + virtual QWidget *widget(int index) const; + virtual int currentIndex() const; + virtual void setCurrentIndex(int index); + virtual void addWidget(QWidget *widget); + virtual void insertWidget(int index, QWidget *widget); + virtual void remove(int index); + +private: + Q3MainWindow *m_mainWindow; + QList<QWidget*> m_widgets; +}; + +class Q3MainWindowContainerFactory: public QExtensionFactory +{ + Q_OBJECT +public: + explicit Q3MainWindowContainerFactory(QExtensionManager *parent = 0); + +protected: + virtual QObject *createExtension(QObject *object, const QString &iid, QObject *parent) const; +}; + +QT_END_NAMESPACE + +#endif // Q3MAINWINDOW_CONTAINER_H diff --git a/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.cpp b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.cpp new file mode 100644 index 0000000..dd21833 --- /dev/null +++ b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.cpp @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Qt Designer of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "q3mainwindow_plugin.h" +#include "q3mainwindow_container.h" + +#include <QtDesigner/QDesignerFormEditorInterface> +#include <QtDesigner/QExtensionManager> + +#include <QtCore/qplugin.h> +#include <Qt3Support/Q3MainWindow> + +QT_BEGIN_NAMESPACE + +Q3MainWindowPlugin::Q3MainWindowPlugin(const QIcon &icon, QObject *parent) + : QObject(parent), m_initialized(false), m_icon(icon) +{} + +QString Q3MainWindowPlugin::name() const +{ return QLatin1String("Q3MainWindow"); } + +QString Q3MainWindowPlugin::group() const +{ return QLatin1String("[invisible]"); } + +QString Q3MainWindowPlugin::toolTip() const +{ return QString(); } + +QString Q3MainWindowPlugin::whatsThis() const +{ return QString(); } + +QString Q3MainWindowPlugin::includeFile() const +{ return QLatin1String("q3mainwindow.h"); } + +QIcon Q3MainWindowPlugin::icon() const +{ return m_icon; } + +bool Q3MainWindowPlugin::isContainer() const +{ return true; } + +QWidget *Q3MainWindowPlugin::createWidget(QWidget *parent) +{ return new Q3MainWindow(parent); } + +bool Q3MainWindowPlugin::isInitialized() const +{ return m_initialized; } + +void Q3MainWindowPlugin::initialize(QDesignerFormEditorInterface *core) +{ + Q_UNUSED(core); + + if (m_initialized) + return; + + m_initialized = true; + QExtensionManager *mgr = core->extensionManager(); + mgr->registerExtensions(new Q3MainWindowContainerFactory(mgr), Q_TYPEID(QDesignerContainerExtension)); +} + +QString Q3MainWindowPlugin::codeTemplate() const +{ return QString(); } + +QString Q3MainWindowPlugin::domXml() const +{ + return QLatin1String("\ +<ui language=\"c++\">\ + <widget class=\"Q3MainWindow\" name=\"mainWindow\">\ + <property name=\"geometry\">\ + <rect>\ + <x>0</x>\ + <y>0</y>\ + <width>100</width>\ + <height>80</height>\ + </rect>\ + </property>\ + <widget class=\"QWidget\" name=\"centralWidget\" />\ + </widget>\ +</ui>"); +} + + +QT_END_NAMESPACE diff --git a/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h new file mode 100644 index 0000000..524506f --- /dev/null +++ b/tools/designer/src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the Qt Designer of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef Q3MAINWINDOW_PLUGIN_H +#define Q3MAINWINDOW_PLUGIN_H + +#include <QtDesigner/QDesignerCustomWidgetInterface> + +QT_BEGIN_NAMESPACE + +class Q3MainWindowPlugin: public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT + Q_INTERFACES(QDesignerCustomWidgetInterface) +public: + Q3MainWindowPlugin(const QIcon &icon, QObject *parent = 0); + + virtual QString name() const; + virtual QString group() const; + virtual QString toolTip() const; + virtual QString whatsThis() const; + virtual QString includeFile() const; + virtual QIcon icon() const; + virtual bool isContainer() const; + virtual QWidget *createWidget(QWidget *parent); + virtual bool isInitialized() const; + virtual void initialize(QDesignerFormEditorInterface *core); + virtual QString codeTemplate() const; + virtual QString domXml() const; + +private: + bool m_initialized; + QIcon m_icon; +}; + +QT_END_NAMESPACE + +#endif // Q3MAINWINDOW_PLUGIN_H |