diff --git a/src/plugins/qmlinspector/inspectoroutputpane.cpp b/src/plugins/qmlinspector/inspectoroutputpane.cpp index 333c63eb5d4797a96340b82474fe3f88bbe97ff9..38fc464931d516168143c44a8589e3a4a4ecddc3 100644 --- a/src/plugins/qmlinspector/inspectoroutputpane.cpp +++ b/src/plugins/qmlinspector/inspectoroutputpane.cpp @@ -27,114 +27,63 @@ ** **************************************************************************/ #include "inspectoroutputpane.h" +#include <coreplugin/coreconstants.h> -#include <QtGui/qtextedit.h> +#include <QtGui/QTextEdit> +#include <QtGui/QContextMenuEvent> +#include <QtGui/QMenu> +#include <QtGui/QAction> +#include <QtGui/QIcon> using namespace Qml; -InspectorOutputPane::InspectorOutputPane(QObject *parent) - : Core::IOutputPane(parent), - m_textEdit(new QTextEdit) +InspectorOutputWidget::InspectorOutputWidget(QWidget *parent) + : QTextEdit(parent) { -} - -InspectorOutputPane::~InspectorOutputPane() -{ - delete m_textEdit; -} - -QWidget *InspectorOutputPane::outputWidget(QWidget *parent) -{ - Q_UNUSED(parent); - return m_textEdit; -} - -QList<QWidget*> InspectorOutputPane::toolBarWidgets() const -{ - return QList<QWidget *>(); -} - -QString InspectorOutputPane::name() const -{ - return tr("Inspector Output"); -} - -int InspectorOutputPane::priorityInStatusBar() const -{ - return 1; -} - -void InspectorOutputPane::clearContents() -{ - m_textEdit->clear(); -} - -void InspectorOutputPane::visibilityChanged(bool visible) -{ - Q_UNUSED(visible); -} - -void InspectorOutputPane::setFocus() -{ - m_textEdit->setFocus(); -} - -bool InspectorOutputPane::hasFocus() -{ - return m_textEdit->hasFocus(); -} + setWindowTitle(tr("Output")); -bool InspectorOutputPane::canFocus() -{ - return true; + m_clearContents = new QAction(QString(tr("Clear")), this); + m_clearContents->setIcon(QIcon(Core::Constants::ICON_CLEAR)); + connect(m_clearContents, SIGNAL(triggered()), SLOT(clear())); } -bool InspectorOutputPane::canNavigate() +InspectorOutputWidget::~InspectorOutputWidget() { - return false; -} -bool InspectorOutputPane::canNext() -{ - return false; } -bool InspectorOutputPane::canPrevious() +void InspectorOutputWidget::contextMenuEvent(QContextMenuEvent *e) { - return false; -} + QMenu *menu = createStandardContextMenu(e->globalPos()); -void InspectorOutputPane::goToNext() -{ -} - -void InspectorOutputPane::goToPrev() -{ + menu->addSeparator(); + menu->addAction(m_clearContents); + menu->exec(e->globalPos()); } -void InspectorOutputPane::addOutput(RunControl *, const QString &text) +void InspectorOutputWidget::addOutput(RunControl *, const QString &text) { - m_textEdit->insertPlainText(text); - m_textEdit->moveCursor(QTextCursor::End); + insertPlainText(text); + moveCursor(QTextCursor::End); } -void InspectorOutputPane::addOutputInline(RunControl *, const QString &text) +void InspectorOutputWidget::addOutputInline(RunControl *, const QString &text) { - m_textEdit->insertPlainText(text); - m_textEdit->moveCursor(QTextCursor::End); + insertPlainText(text); + moveCursor(QTextCursor::End); } -void InspectorOutputPane::addErrorOutput(RunControl *, const QString &text) +void InspectorOutputWidget::addErrorOutput(RunControl *, const QString &text) { - m_textEdit->append(text); - m_textEdit->moveCursor(QTextCursor::End); + append(text); + moveCursor(QTextCursor::End); } -void InspectorOutputPane::addInspectorStatus(const QString &text) +void InspectorOutputWidget::addInspectorStatus(const QString &text) { - m_textEdit->setTextColor(Qt::darkGreen); - m_textEdit->append(text); - m_textEdit->moveCursor(QTextCursor::End); - m_textEdit->setTextColor(Qt::black); + setTextColor(Qt::darkGreen); + append(text); + moveCursor(QTextCursor::End); + setTextColor(Qt::black); } diff --git a/src/plugins/qmlinspector/inspectoroutputpane.h b/src/plugins/qmlinspector/inspectoroutputpane.h index 0bc53d323120cb2ff0d0475b90e5565e57b23a87..0b2d58bb718f9f56b7ba3b90c8efc772d6cddd7a 100644 --- a/src/plugins/qmlinspector/inspectoroutputpane.h +++ b/src/plugins/qmlinspector/inspectoroutputpane.h @@ -26,43 +26,28 @@ ** contact the sales department at http://qt.nokia.com/contact. ** **************************************************************************/ -#ifndef INSPECTOROUTPUTPANE_H -#define INSPECTOROUTPUTPANE_H - -#include <coreplugin/ioutputpane.h> +#ifndef INSPECTOROUTPUTWIDGET_H +#define INSPECTOROUTPUTWIDGET_H #include <QtCore/QObject> +#include <QtGui/QTextEdit> + +QT_BEGIN_NAMESPACE +class QAction; +class QContextMenuEvent; +QT_END_NAMESPACE -QT_FORWARD_DECLARE_CLASS(QTextEdit); QT_FORWARD_DECLARE_CLASS(RunControl); namespace Qml { -class InspectorOutputPane : public Core::IOutputPane +class InspectorOutputWidget : public QTextEdit { Q_OBJECT -public: - InspectorOutputPane(QObject *parent = 0); - virtual ~InspectorOutputPane(); - - virtual QWidget *outputWidget(QWidget *parent); - virtual QList<QWidget*> toolBarWidgets() const; - virtual QString name() const; - - virtual int priorityInStatusBar() const; - virtual void clearContents(); - virtual void visibilityChanged(bool visible); - - virtual void setFocus(); - virtual bool hasFocus(); - virtual bool canFocus(); - - virtual bool canNavigate(); - virtual bool canNext(); - virtual bool canPrevious(); - virtual void goToNext(); - virtual void goToPrev(); +public: + InspectorOutputWidget(QWidget *parent = 0); + virtual ~InspectorOutputWidget(); public slots: void addOutput(RunControl *, const QString &text); @@ -71,11 +56,14 @@ public slots: void addErrorOutput(RunControl *, const QString &text); void addInspectorStatus(const QString &text); +protected: + void contextMenuEvent(QContextMenuEvent *e); + private: - QTextEdit *m_textEdit; + QAction *m_clearContents; }; } -#endif +#endif // INSPECTOROUTPUTWIDGET_H diff --git a/src/plugins/qmlinspector/qmlinspector.cpp b/src/plugins/qmlinspector/qmlinspector.cpp index d94bae2ecf7033298779be05ffd4f38896b27ba3..7d569fa36faa4101929fa4dfc89d59144ef1202c 100644 --- a/src/plugins/qmlinspector/qmlinspector.cpp +++ b/src/plugins/qmlinspector/qmlinspector.cpp @@ -29,6 +29,7 @@ #include "qmlinspectorconstants.h" #include "qmlinspector.h" #include "debugger/debuggermainwindow.h" +#include "inspectoroutputwidget.h" #include <debugger/debuggeruiswitcher.h> @@ -163,7 +164,11 @@ QmlInspector::QmlInspector(QObject *parent) m_conn(0), m_client(0), m_engineQuery(0), - m_contextQuery(0) + m_contextQuery(0), + m_objectTreeDock(0), + m_frameRateDock(0), + m_propertyWatcherDock(0), + m_inspectorOutputDock(0) { m_watchTableModel = new WatchTableModel(0, this); @@ -346,13 +351,20 @@ void QmlInspector::initWidgets() propSplitter->setStretchFactor(1, 1); propSplitter->setWindowTitle(tr("Properties and Watchers")); + + InspectorOutputWidget *inspectorOutput = new InspectorOutputWidget(); + connect(this, SIGNAL(statusMessage(QString)), + inspectorOutput, SLOT(addInspectorStatus(QString))); + m_objectTreeDock = Debugger::DebuggerUISwitcher::instance()->createDockWidget(Qml::Constants::LANG_QML, treeWindow, Qt::BottomDockWidgetArea); m_frameRateDock = Debugger::DebuggerUISwitcher::instance()->createDockWidget(Qml::Constants::LANG_QML, m_frameRateWidget, Qt::BottomDockWidgetArea); m_propertyWatcherDock = Debugger::DebuggerUISwitcher::instance()->createDockWidget(Qml::Constants::LANG_QML, propSplitter, Qt::BottomDockWidgetArea); - m_dockWidgets << m_objectTreeDock << m_frameRateDock << m_propertyWatcherDock; + m_inspectorOutputDock = Debugger::DebuggerUISwitcher::instance()->createDockWidget(Qml::Constants::LANG_QML, + inspectorOutput, Qt::BottomDockWidgetArea); + m_dockWidgets << m_objectTreeDock << m_frameRateDock << m_propertyWatcherDock << m_inspectorOutputDock; } void QmlInspector::setSimpleDockWidgetArrangement() @@ -381,6 +393,8 @@ void QmlInspector::setSimpleDockWidgetArrangement() } mainWindow->tabifyDockWidget(m_frameRateDock, m_propertyWatcherDock); + mainWindow->tabifyDockWidget(m_frameRateDock, m_inspectorOutputDock); + mainWindow->setTrackingEnabled(true); } diff --git a/src/plugins/qmlinspector/qmlinspector.h b/src/plugins/qmlinspector/qmlinspector.h index 8db7b233a617ee8ab3894822f8b0f007fea9654a..25091c19f7c0597f30d7baacac59ba45083949a3 100644 --- a/src/plugins/qmlinspector/qmlinspector.h +++ b/src/plugins/qmlinspector/qmlinspector.h @@ -107,6 +107,7 @@ private: QDockWidget *m_objectTreeDock; QDockWidget *m_frameRateDock; QDockWidget *m_propertyWatcherDock; + QDockWidget *m_inspectorOutputDock; QList<QDockWidget*> m_dockWidgets; }; diff --git a/src/plugins/qmlinspector/qmlinspector.pro b/src/plugins/qmlinspector/qmlinspector.pro index e382eb75d10b1c0371b8132fecdb231c480947d8..f0345dcc054455ec81d1479817624720762e3944 100644 --- a/src/plugins/qmlinspector/qmlinspector.pro +++ b/src/plugins/qmlinspector/qmlinspector.pro @@ -11,12 +11,12 @@ DEFINES += QMLINSPECTOR_LIBRARY HEADERS += qmlinspectorplugin.h \ qmlinspectorconstants.h \ qmlinspector.h \ - inspectoroutputpane.h \ + inspectoroutputwidget.h \ qmlinspector_global.h SOURCES += qmlinspectorplugin.cpp \ qmlinspector.cpp \ - inspectoroutputpane.cpp + inspectoroutputwidget.cpp OTHER_FILES += QmlInspector.pluginspec RESOURCES += qmlinspector.qrc diff --git a/src/plugins/qmlinspector/qmlinspectorplugin.cpp b/src/plugins/qmlinspector/qmlinspectorplugin.cpp index c99d42895f66284c6ec0ea5cf63c190afc5fc9c7..e7fb2ccef94fce751061bf9b66f8bea62ba47e27 100644 --- a/src/plugins/qmlinspector/qmlinspectorplugin.cpp +++ b/src/plugins/qmlinspector/qmlinspectorplugin.cpp @@ -28,7 +28,6 @@ **************************************************************************/ #include "qmlinspectorconstants.h" #include "qmlinspector.h" -#include "inspectoroutputpane.h" #include "qmlinspectorplugin.h" #include <debugger/debuggeruiswitcher.h> @@ -89,10 +88,6 @@ QmlInspectorPlugin::~QmlInspectorPlugin() void QmlInspectorPlugin::shutdown() { - removeObject(m_outputPane); - delete m_outputPane; - m_outputPane = 0; - removeObject(m_inspector); delete m_inspector; m_inspector = 0; @@ -115,12 +110,6 @@ bool QmlInspectorPlugin::initialize(const QStringList &arguments, QString *error connect(m_connectionTimer, SIGNAL(timeout()), SLOT(pollInspector())); - m_outputPane = new InspectorOutputPane; - addObject(m_outputPane); - - connect(m_inspector, SIGNAL(statusMessage(QString)), - m_outputPane, SLOT(addInspectorStatus(QString))); - return true; } diff --git a/src/plugins/qmlinspector/qmlinspectorplugin.h b/src/plugins/qmlinspector/qmlinspectorplugin.h index 5625e2d1a819b5b5fb2576180031db66abac5272..ee0958719a0e57fb64a7c6eac4cc6b23bfe2df68 100644 --- a/src/plugins/qmlinspector/qmlinspectorplugin.h +++ b/src/plugins/qmlinspector/qmlinspectorplugin.h @@ -47,7 +47,6 @@ namespace ProjectExplorer { namespace Qml { class QmlInspector; - class InspectorOutputPane; const int MaxConnectionAttempts = 20; @@ -74,7 +73,6 @@ private slots: private: QmlInspector *m_inspector; - InspectorOutputPane *m_outputPane; QTimer *m_connectionTimer; int m_connectionAttempts; };