diff --git a/dist/changes-1.1.0 b/dist/changes-1.1.0 index 207a086fb0635627fad115aea7f3051fa70bb7cc..28e9f0c9b612e0c27ce1f29f4ca580822e9dddac 100644 --- a/dist/changes-1.1.0 +++ b/dist/changes-1.1.0 @@ -77,5 +77,3 @@ Lots of improvements to Additional credits go to: * Martin Aumueller <aumuell@reserv.at> (FakeVim improvements) * Kris Wong (different patches) - -//TODO: this refers to commit c6419ff008bbf1afd2dfa4ed18a09de039cccef6 diff --git a/src/app/app.pro b/src/app/app.pro index ee298d521d664f6808bd82e0e04af420f5a647ae..69f677dacb7d94501b94c7a7806a5320ce2e094c 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -44,6 +44,7 @@ unix:!macx { } target.files += $$OUT_PWD/$$DESTDIR/$$IDE_APP_WRAPPER + target.files += $$OUT_PWD/$$DESTDIR/$$IDE_APP_TARGET target.path = /bin INSTALLS += target diff --git a/src/libs/cplusplus/ExpressionUnderCursor.cpp b/src/libs/cplusplus/ExpressionUnderCursor.cpp index 9cbaeb97539dbc61a1df3d2ad014db5e4a60e99d..53dc9b4f2d114efa47d7c8b9e868939eb97121bd 100644 --- a/src/libs/cplusplus/ExpressionUnderCursor.cpp +++ b/src/libs/cplusplus/ExpressionUnderCursor.cpp @@ -265,9 +265,14 @@ int ExpressionUnderCursor::startOfFunctionCall(const QTextCursor &cursor) break; else if (tk.is(T_LPAREN)) return startPosition + tk.position(); - else if (tk.is(T_RPAREN)) - index = startOfMatchingBrace(tokens, index); - else + else if (tk.is(T_RPAREN)) { + int matchingBrace = startOfMatchingBrace(tokens, index); + + if (matchingBrace == index) // If no matching brace found + return -1; + + index = matchingBrace; + } else --index; } diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 959bc243097b811a41fa59fa04836d83424e92c2..4629aa3d5fc4c7b2cada0d66392b04bc7f601621 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -171,9 +171,16 @@ QString CMakeManager::findQtDir(const ProjectExplorer::Environment &env) QFileInfo qmake(path + "/" + possibleCommand); if (qmake.exists()) { if (!qtVersionForQMake(qmake.absoluteFilePath()).isNull()) { - QDir dir(qmake.absoluteDir()); - dir.cdUp(); - return dir.absolutePath(); + QProcess proc; + proc.start(qmake.absoluteFilePath(), QStringList() << "-query" << "QT_INSTALL_DATA"); + if (proc.waitForFinished()) { + return proc.readAll().trimmed(); + } else { + proc.kill(); + QDir dir(qmake.absoluteDir()); + dir.cdUp(); + return dir.absolutePath(); + } } } } diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp index 930a20c2dfd4291cd85b6b969a9c1b129dc3091d..48edfc1a009c2bfbde20070664988b8e6bfe137d 100644 --- a/src/plugins/coreplugin/editormanager/editorview.cpp +++ b/src/plugins/coreplugin/editormanager/editorview.cpp @@ -835,6 +835,24 @@ QSize SplitterOrView::minimumSizeHint() const return QSize(64, 64); } +QSplitter *SplitterOrView::takeSplitter() +{ + QSplitter *oldSplitter = m_splitter; + if (m_splitter) + m_layout->removeWidget(m_splitter); + m_splitter = 0; + return oldSplitter; +} + +EditorView *SplitterOrView::takeView() +{ + EditorView *oldView = m_view; + if (m_view) + m_layout->removeWidget(m_view); + m_view = 0; + return oldView; +} + void SplitterOrView::split(Qt::Orientation orientation) { Q_ASSERT(m_view && m_splitter == 0); @@ -903,13 +921,12 @@ void SplitterOrView::unsplit() Q_ASSERT(m_splitter->count() == 1); EditorManager *em = CoreImpl::instance()->editorManager(); SplitterOrView *childSplitterOrView = qobject_cast<SplitterOrView*>(m_splitter->widget(0)); - QSplitter *oldSplitter = m_splitter; m_splitter = 0; if (childSplitterOrView->isSplitter()) { Q_ASSERT(childSplitterOrView->view() == 0); - m_splitter = childSplitterOrView->splitter(); + m_splitter = childSplitterOrView->takeSplitter(); m_layout->addWidget(m_splitter); m_layout->setCurrentWidget(m_splitter); } else { @@ -923,8 +940,7 @@ void SplitterOrView::unsplit() } em->emptyView(childView); } else { - m_view = childView; - childSplitterOrView->m_layout->removeWidget(m_view); + m_view = childSplitterOrView->takeView(); m_layout->addWidget(m_view); } m_layout->setCurrentWidget(m_view); diff --git a/src/plugins/coreplugin/editormanager/editorview.h b/src/plugins/coreplugin/editormanager/editorview.h index d198155ca3d95921fe3dfb67c3168df904a3321f..13eb957b299a1655e6eb14bfa1e8e720b6a91c0b 100644 --- a/src/plugins/coreplugin/editormanager/editorview.h +++ b/src/plugins/coreplugin/editormanager/editorview.h @@ -197,6 +197,8 @@ public: inline bool hasEditors() const { return m_view && m_view->editorCount() != 0; } inline EditorView *view() const { return m_view; } inline QSplitter *splitter() const { return m_splitter; } + QSplitter *takeSplitter(); + EditorView *takeView(); SplitterOrView *findView(Core::IEditor *editor); diff --git a/src/plugins/coreplugin/ioutputpane.h b/src/plugins/coreplugin/ioutputpane.h index 5977ce14d24c20ecbc6d17a9c22c494ed2fe7161..e38e9fbe8b36269d1757d8d7041f5f14bea718e0 100644 --- a/src/plugins/coreplugin/ioutputpane.h +++ b/src/plugins/coreplugin/ioutputpane.h @@ -47,7 +47,7 @@ public: virtual ~IOutputPane() {} virtual QWidget *outputWidget(QWidget *parent) = 0; - virtual QList<QWidget*> toolBarWidgets(void) const = 0; + virtual QList<QWidget*> toolBarWidgets() const = 0; virtual QString name() const = 0; // -1 don't show in statusBar diff --git a/src/plugins/coreplugin/messageoutputwindow.h b/src/plugins/coreplugin/messageoutputwindow.h index a537366f3fc7c422cd0b06556d534c38c33bf908..70e1308e0dd577003f60dc6b08e768c690cfe6bf 100644 --- a/src/plugins/coreplugin/messageoutputwindow.h +++ b/src/plugins/coreplugin/messageoutputwindow.h @@ -48,7 +48,7 @@ public: ~MessageOutputWindow(); QWidget *outputWidget(QWidget *parent); - QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); } + QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); } QString name() const; int priorityInStatusBar() const; diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index c616a7b8a9395e371e61930dda2641005e2f5e31..8ca868ad75d03907eff91a5399ac5d0a4516c27b 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1073,20 +1073,6 @@ void CPPEditor::unCommentSelection() cursor.endEditBlock(); } -int CPPEditor::endOfNameAtPosition(int pos) -{ - if (pos == -1) - pos = position(); - - QChar chr = characterAt(pos); - - // Skip to the start of a name - while (chr.isLetterOrNumber() || chr == QLatin1Char('_')) - chr = characterAt(++pos); - - return pos; -} - CPPEditor::Link CPPEditor::linkToSymbol(CPlusPlus::Symbol *symbol) { const QString fileName = QString::fromUtf8(symbol->fileName(), diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index bd30f3031f9dd72a1fd172e7ff0202d44e43894a..ae352b8d6d503e9b7afa6b47ffb4d24ef4be6f84 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -127,8 +127,6 @@ private: void createToolBar(CPPEditorEditable *editable); - int endOfNameAtPosition(int pos); - struct Link { Link(const QString &fileName = QString(), diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp index 308d565a3e9d89c421e2f4fde8cbfd9879f40055..a571fafae506cdd1d1f34c16786e99fb1ca493fd 100644 --- a/src/plugins/debugger/breakwindow.cpp +++ b/src/plugins/debugger/breakwindow.cpp @@ -85,15 +85,15 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev) { QMenu menu; QModelIndex index = indexAt(ev->pos()); - QAction *act0 = new QAction("Delete breakpoint", &menu); + QAction *act0 = new QAction(tr("Delete breakpoint"), &menu); act0->setEnabled(index.isValid()); - QAction *act1 = new QAction("Adjust column widths to contents", &menu); - QAction *act2 = new QAction("Always adjust column widths to contents", &menu); + QAction *act1 = new QAction(tr("Adjust column widths to contents"), &menu); + QAction *act2 = new QAction(tr("Always adjust column widths to contents"), &menu); act2->setCheckable(true); act2->setChecked(m_alwaysResizeColumnsToContents); - QAction *act3 = new QAction("Edit condition...", &menu); + QAction *act3 = new QAction(tr("Edit condition..."), &menu); act0->setEnabled(index.isValid()); - QAction *act4 = new QAction("Syncronize breakpoints", &menu); + QAction *act4 = new QAction(tr("Syncronize breakpoints"), &menu); menu.addAction(act0); menu.addAction(act3); diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp index ce5bc8e52779f8317dd174a52f74c557a56fc6cd..a2e2b6f06146be8cc98db6c69d9aedcaa640b89c 100644 --- a/src/plugins/debugger/debuggeractions.cpp +++ b/src/plugins/debugger/debuggeractions.cpp @@ -96,16 +96,7 @@ QString DebuggerSettings::dump() return out; } - - -////////////////////////////////////////////////////////////////////////// -// -// Debugger specific actions and settings -// -////////////////////////////////////////////////////////////////////////// - - -DebuggerSettings *theDebuggerSettings() +DebuggerSettings *DebuggerSettings::instance() { static DebuggerSettings *instance = 0; if (instance) @@ -117,18 +108,18 @@ DebuggerSettings *theDebuggerSettings() item = new SavedAction(instance); instance->insertItem(SettingsDialog, item); - item->setText(QObject::tr("Debugger properties...")); + item->setText(tr("Debugger properties...")); // // View // item = new SavedAction(instance); instance->insertItem(AdjustColumnWidths, item); - item->setText(QObject::tr("Adjust column widths to contents")); + item->setText(tr("Adjust column widths to contents")); item = new SavedAction(instance); instance->insertItem(AlwaysAdjustColumnWidths, item); - item->setText(QObject::tr("Always adjust column widths to contents")); + item->setText(tr("Always adjust column widths to contents")); item->setCheckable(true); // @@ -136,15 +127,15 @@ DebuggerSettings *theDebuggerSettings() // item = new SavedAction(instance); instance->insertItem(WatchExpression, item); - item->setTextPattern(QObject::tr("Watch expression \"%1\"")); + item->setTextPattern(tr("Watch expression \"%1\"")); item = new SavedAction(instance); instance->insertItem(RemoveWatchExpression, item); - item->setTextPattern(QObject::tr("Remove watch expression \"%1\"")); + item->setTextPattern(tr("Remove watch expression \"%1\"")); item = new SavedAction(instance); instance->insertItem(WatchExpressionInWindow, item); - item->setTextPattern(QObject::tr("Watch expression \"%1\" in separate window")); + item->setTextPattern(tr("Watch expression \"%1\" in separate window")); item = new SavedAction(instance); instance->insertItem(AssignValue, item); @@ -154,11 +145,11 @@ DebuggerSettings *theDebuggerSettings() item = new SavedAction(instance); instance->insertItem(ExpandItem, item); - item->setText(QObject::tr("Expand item")); + item->setText(tr("Expand item")); item = new SavedAction(instance); instance->insertItem(CollapseItem, item); - item->setText(QObject::tr("Collapse item")); + item->setText(tr("Collapse item")); // // DebuggingHelper @@ -167,7 +158,7 @@ DebuggerSettings *theDebuggerSettings() instance->insertItem(UseDebuggingHelpers, item); item->setDefaultValue(true); item->setSettingsKey("DebugMode", "UseDebuggingHelper"); - item->setText(QObject::tr("Use Debugging Helper")); + item->setText(tr("Use Debugging Helper")); item->setCheckable(true); item->setDefaultValue(true); @@ -183,19 +174,19 @@ DebuggerSettings *theDebuggerSettings() item = new SavedAction(instance); instance->insertItem(DebugDebuggingHelpers, item); item->setSettingsKey("DebugMode", "DebugDebuggingHelpers"); - item->setText(QObject::tr("Debug debugging helper")); + item->setText(tr("Debug debugging helper")); item->setCheckable(true); item = new SavedAction(instance); - item->setText(QObject::tr("Recheck debugging helper availability")); + item->setText(tr("Recheck debugging helper availability")); instance->insertItem(RecheckDebuggingHelpers, item); // // Breakpoints // item = new SavedAction(instance); - item->setText(QObject::tr("Syncronize breakpoints")); + item->setText(tr("Syncronize breakpoints")); instance->insertItem(SynchronizeBreakpoints, item); // @@ -206,7 +197,7 @@ DebuggerSettings *theDebuggerSettings() registerFormatGroup->setExclusive(true); item = new SavedAction(instance); - item->setText(QObject::tr("Hexadecimal")); + item->setText(tr("Hexadecimal")); item->setCheckable(true); item->setSettingsKey("DebugMode", "FormatHexadecimal"); item->setChecked(true); @@ -214,35 +205,35 @@ DebuggerSettings *theDebuggerSettings() registerFormatGroup->addAction(item); item = new SavedAction(instance); - item->setText(QObject::tr("Decimal")); + item->setText(tr("Decimal")); item->setCheckable(true); item->setSettingsKey("DebugMode", "FormatDecimal"); instance->insertItem(FormatDecimal, item); registerFormatGroup->addAction(item); item = new SavedAction(instance); - item->setText(QObject::tr("Octal")); + item->setText(tr("Octal")); item->setCheckable(true); item->setSettingsKey("DebugMode", "FormatOctal"); instance->insertItem(FormatOctal, item); registerFormatGroup->addAction(item); item = new SavedAction(instance); - item->setText(QObject::tr("Binary")); + item->setText(tr("Binary")); item->setCheckable(true); item->setSettingsKey("DebugMode", "FormatBinary"); instance->insertItem(FormatBinary, item); registerFormatGroup->addAction(item); item = new SavedAction(instance); - item->setText(QObject::tr("Raw")); + item->setText(tr("Raw")); item->setCheckable(true); item->setSettingsKey("DebugMode", "FormatRaw"); instance->insertItem(FormatRaw, item); registerFormatGroup->addAction(item); item = new SavedAction(instance); - item->setText(QObject::tr("Natural")); + item->setText(tr("Natural")); item->setCheckable(true); item->setSettingsKey("DebugMode", "FormatNatural"); instance->insertItem(FormatNatural, item); @@ -266,13 +257,13 @@ DebuggerSettings *theDebuggerSettings() item = new SavedAction(instance); item->setSettingsKey("DebugMode", "AutoQuit"); - item->setText(QObject::tr("Automatically quit debugger")); + item->setText(tr("Automatically quit debugger")); item->setCheckable(true); instance->insertItem(AutoQuit, item); item = new SavedAction(instance); item->setSettingsKey("DebugMode", "UseToolTips"); - item->setText(QObject::tr("Use tooltips when debugging")); + item->setText(tr("Use tooltips when debugging")); item->setCheckable(true); instance->insertItem(UseToolTips, item); @@ -283,13 +274,13 @@ DebuggerSettings *theDebuggerSettings() item = new SavedAction(instance); item->setSettingsKey("DebugMode", "ListSourceFiles"); - item->setText(QObject::tr("List source files")); + item->setText(tr("List source files")); item->setCheckable(true); instance->insertItem(ListSourceFiles, item); item = new SavedAction(instance); item->setSettingsKey("DebugMode", "SkipKnownFrames"); - item->setText(QObject::tr("Skip known frames")); + item->setText(tr("Skip known frames")); item->setCheckable(true); instance->insertItem(SkipKnownFrames, item); @@ -315,29 +306,35 @@ DebuggerSettings *theDebuggerSettings() instance->insertItem(MaximalStackDepth, item); item = new SavedAction(instance); - item->setText(QObject::tr("Reload full stack")); + item->setText(tr("Reload full stack")); instance->insertItem(ExpandStack, item); item = new SavedAction(instance); - item->setText(QObject::tr("Execute line")); + item->setText(tr("Execute line")); instance->insertItem(ExecuteCommand, item); return instance; } +////////////////////////////////////////////////////////////////////////// +// +// DebuggerActions +// +////////////////////////////////////////////////////////////////////////// + SavedAction *theDebuggerAction(int code) { - return theDebuggerSettings()->item(code); + return DebuggerSettings::instance()->item(code); } bool theDebuggerBoolSetting(int code) { - return theDebuggerSettings()->item(code)->value().toBool(); + return DebuggerSettings::instance()->item(code)->value().toBool(); } QString theDebuggerStringSetting(int code) { - return theDebuggerSettings()->item(code)->value().toString(); + return DebuggerSettings::instance()->item(code)->value().toString(); } } // namespace Internal diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h index 44b9343c1748c0a9ffb9bf8f0bebd2015002d5d0..4b0ebd66c86f71b5331b6c720921c3421a482118 100644 --- a/src/plugins/debugger/debuggeractions.h +++ b/src/plugins/debugger/debuggeractions.h @@ -50,6 +50,8 @@ public: QString dump(); + static DebuggerSettings *instance(); + public slots: void readSettings(QSettings *settings); void writeSettings(QSettings *settings); @@ -121,7 +123,6 @@ enum DebuggerActionCode }; // singleton access -DebuggerSettings *theDebuggerSettings(); Core::Utils::SavedAction *theDebuggerAction(int code); // convienience diff --git a/src/plugins/debugger/debuggeroutputwindow.h b/src/plugins/debugger/debuggeroutputwindow.h index 904e04561996f72491356eef68ace8dc250a7fd7..a912b7e2a47b1a215431369e6c33e312111d87b9 100644 --- a/src/plugins/debugger/debuggeroutputwindow.h +++ b/src/plugins/debugger/debuggeroutputwindow.h @@ -46,7 +46,7 @@ public: DebuggerOutputWindow(QWidget *parent = 0); QWidget *outputWidget(QWidget *) { return this; } - QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); } + QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); } QString name() const { return windowTitle(); } void visibilityChanged(bool /*visible*/) {} diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 7cff0f557ede015385f2daf91046f89c1dc63723..ea41b9854eae2b38c0c852d0a49e5b2a199363d9 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -498,8 +498,9 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess m_gdbRunningContext = uidm->uniqueIdentifier(Constants::GDBRUNNING); + // FIXME: make this a global action m_breakpointMarginAction = new QAction(this); - m_breakpointMarginAction->setText("Toggle Breakpoint"); + m_breakpointMarginAction->setText(tr("Toggle Breakpoint")); //m_breakpointMarginAction->setIcon(QIcon(":/gdbdebugger/images/breakpoint.svg")); connect(m_breakpointMarginAction, SIGNAL(triggered()), this, SLOT(breakpointMarginActionTriggered())); @@ -976,7 +977,7 @@ void DebuggerPlugin::writeSettings() const QTC_ASSERT(m_manager->mainWindow(), return); QSettings *s = settings(); - theDebuggerSettings()->writeSettings(s); + DebuggerSettings::instance()->writeSettings(s); s->beginGroup(QLatin1String("DebugMode")); s->setValue("State", m_manager->mainWindow()->saveState()); s->setValue("Locked", m_toggleLockedAction->isChecked()); @@ -986,7 +987,7 @@ void DebuggerPlugin::writeSettings() const void DebuggerPlugin::readSettings() { QSettings *s = settings(); - theDebuggerSettings()->readSettings(s); + DebuggerSettings::instance()->readSettings(s); QString defaultCommand("gdb"); #if defined(Q_OS_WIN32) diff --git a/src/plugins/debugger/disassemblerhandler.cpp b/src/plugins/debugger/disassemblerhandler.cpp index 36306eaa9e0ef417faef05c523df49f791b25236..9ef9efec9c636bba22cc46ecc407537b7f204e5d 100644 --- a/src/plugins/debugger/disassemblerhandler.cpp +++ b/src/plugins/debugger/disassemblerhandler.cpp @@ -121,13 +121,11 @@ QVariant DisassemblerModel::headerData(int section, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { - static const char * const headers[] = { - QT_TR_NOOP("Address"), - QT_TR_NOOP("Symbol"), - QT_TR_NOOP("Mnemonic"), + switch (section) { + case 1: return DisassemblerHandler::tr("Address"); + case 2: return DisassemblerHandler::tr("Symbol"); + case 3: return DisassemblerHandler::tr("Mnemonic"); }; - if (section < 3) - return tr(headers[section]); } return QVariant(); } diff --git a/src/plugins/debugger/disassemblerwindow.cpp b/src/plugins/debugger/disassemblerwindow.cpp index ef01b179d7d14a477a65665de52edf69c4c68f84..b65613c4df88403e3f3a7ee3620117e8c92de3c5 100644 --- a/src/plugins/debugger/disassemblerwindow.cpp +++ b/src/plugins/debugger/disassemblerwindow.cpp @@ -28,6 +28,7 @@ **************************************************************************/ #include "disassemblerwindow.h" +#include "debuggeractions.h" #include <QAction> #include <QDebug> @@ -68,24 +69,23 @@ void DisassemblerWindow::resizeEvent(QResizeEvent *ev) void DisassemblerWindow::contextMenuEvent(QContextMenuEvent *ev) { QMenu menu; - //QTreeWidgetItem *item = itemAt(ev->pos()); - QAction *act1 = new QAction("Adjust column widths to contents", &menu); - QAction *act2 = new QAction("Always adjust column widths to contents", &menu); + + QAction *act1 = new QAction(tr("Adjust column widths to contents"), &menu); + QAction *act2 = new QAction(tr("Always adjust column widths to contents"), &menu); act2->setCheckable(true); + // FIXME: make this a SavedAction act2->setChecked(m_alwaysResizeColumnsToContents); - QAction *act3 = new QAction("Reload disassembler listing", &menu); - QAction *act4 = new QAction("Always reload disassembler listing", &menu); + QAction *act3 = new QAction(tr("Reload disassembler listing"), &menu); + QAction *act4 = new QAction(tr("Always reload disassembler listing"), &menu); act4->setCheckable(true); act4->setChecked(m_alwaysReloadContents); - //if (item) { - // menu.addAction(act0); - // menu.addSeparator(); - //} menu.addAction(act3); //menu.addAction(act4); menu.addSeparator(); menu.addAction(act1); menu.addAction(act2); + menu.addSeparator(); + menu.addAction(theDebuggerAction(SettingsDialog)); QAction *act = menu.exec(ev->globalPos()); diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index ecab614f453d91a4de4c177da405bc262660ef71..906b38a72b1fb8398b381b3ab16e486b5fd794c8 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -47,6 +47,7 @@ #include "debuggerdialogs.h" #include <utils/qtcassert.h> +#include <coreplugin/icore.h> #include <QtCore/QDebug> #include <QtCore/QDir> @@ -60,6 +61,8 @@ #include <QtGui/QMainWindow> #include <QtGui/QMessageBox> #include <QtGui/QToolTip> +#include <QtGui/QDialogButtonBox> +#include <QtGui/QPushButton> #if defined(Q_OS_LINUX) || defined(Q_OS_MAC) #include <unistd.h> @@ -233,6 +236,8 @@ void GdbEngine::initializeConnections() connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()), this, SLOT(reloadFullStack())); + connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()), + this, SLOT(reloadFullStack())); } void GdbEngine::initializeVariables() @@ -1534,7 +1539,7 @@ int GdbEngine::currentFrame() const bool GdbEngine::startDebugger() { - debugMessage(theDebuggerSettings()->dump()); + debugMessage(DebuggerSettings::instance()->dump()); QStringList gdbArgs; if (m_gdbProc.state() != QProcess::NotRunning) { @@ -2727,7 +2732,7 @@ void GdbEngine::setToolTipExpression(const QPoint &pos, const QString &exp0) if (!hasLetterOrNumber(exp)) { QToolTip::showText(m_toolTipPos, - "'" + exp + "' contains no identifier"); + tr("'%1' contains no identifier").arg(exp)); return; } @@ -2750,8 +2755,8 @@ void GdbEngine::setToolTipExpression(const QPoint &pos, const QString &exp0) if (hasSideEffects(exp)) { QToolTip::showText(m_toolTipPos, - "Cowardly refusing to evaluate expression '" + exp - + "' with potential side effects"); + tr("Cowardly refusing to evaluate expression '%1' " + "with potential side effects").arg(exp)); return; } @@ -2763,7 +2768,7 @@ void GdbEngine::setToolTipExpression(const QPoint &pos, const QString &exp0) qDebug() << "THIS IN ROW " << i; if (m_currentLocals.childAt(i).type.startsWith(exp)) { QToolTip::showText(m_toolTipPos, - exp + ": type of current 'this'"); + tr("%1: type of current 'this'").arg(exp)); qDebug() << " TOOLTIP CRASH SUPPRESSED"; return; } @@ -3001,12 +3006,10 @@ void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren) } else if (outertype == m_namespace + "QObjectSlot" || outertype == m_namespace + "QObjectSignal") { // we need the number out of something like - // iname="local.ob.slots.[2]deleteLater()" - int lastOpened = data.iname.lastIndexOf('['); - int lastClosed = data.iname.lastIndexOf(']'); - QString slotNumber = "-1"; - if (lastOpened != -1 && lastClosed != -1) - slotNumber = data.iname.mid(lastOpened + 1, lastClosed - lastOpened - 1); + // iname="local.ob.slots.2" // ".deleteLater()"? + int pos = data.iname.lastIndexOf('.'); + QString slotNumber = data.iname.mid(pos + 1); + QTC_ASSERT(slotNumber.toInt() != -1, /**/); extraArgs[0] = slotNumber; } else if (outertype == m_namespace + "QMap" || outertype == m_namespace + "QMultiMap") { QString nodetype; @@ -3329,7 +3332,7 @@ void GdbEngine::updateWatchModel2() "(" + data->type + ") " + data->exp + " = " + data->value); } else { QToolTip::showText(m_toolTipPos, - "Cannot evaluate expression: " + m_toolTipExpression); + tr("Cannot evaluate expression: %1").arg(m_toolTipExpression)); } } } @@ -3952,9 +3955,23 @@ void GdbEngine::handleVarListChildren(const GdbResultRecord &record, foreach (const GdbMi &child, children.children()) handleVarListChildrenHelper(child, data); - if (!isAccessSpecifier(data.variable.split('.').takeLast())) { + if (children.children().isEmpty()) { + // happens e.g. if no debug information is present or + // if the class really has no children + WatchData data1; + data1.iname = data.iname + ".child"; + data1.value = tr("<no information>"); + data1.childCount = 0; + data1.setAllUnneeded(); + insertData(data1); + data.setAllUnneeded(); + insertData(data); + } else if (!isAccessSpecifier(data.variable.split('.').takeLast())) { data.setChildrenUnneeded(); insertData(data); + } else { + // this skips the spurious "public", "private" etc levels + // gdb produces } } else if (record.resultClass == GdbResultError) { data.setError(record.data.findChild("msg").data()); @@ -4040,6 +4057,29 @@ QString GdbEngine::dumperLibraryName() const return q->m_dumperLib; } +void GdbEngine::showDebuggingHelperWarning() +{ + QMessageBox dialog(q->mainWindow()); + QPushButton *qtPref = dialog.addButton(tr("Open Qt preferences"), QMessageBox::ActionRole); + QPushButton *helperOff = dialog.addButton(tr("Turn helper usage off"), QMessageBox::ActionRole); + QPushButton *justContinue = dialog.addButton(tr("Continue anyway"), QMessageBox::AcceptRole); + dialog.setDefaultButton(justContinue); + dialog.setWindowTitle(tr("Debugging helper missing")); + dialog.setText(tr("The debugger did not find the debugging helper library.")); + dialog.setInformativeText(tr("The debugging helper is used to nicely format the values of Qt " + "data types and some STL data types. " + "It must be compiled for each Qt version, " + "you can do this in the Qt preferences page by selecting " + "a Qt installation and clicking on 'Rebuild' for the debugging " + "helper.")); + dialog.exec(); + if (dialog.clickedButton() == qtPref) { + Core::ICore::instance()->showOptionsDialog("Qt4", "Qt Versions"); + } else if (dialog.clickedButton() == helperOff) { + theDebuggerAction(UseDebuggingHelpers)->setValue(qVariantFromValue(false), false); + } +} + void GdbEngine::tryLoadDebuggingHelpers() { if (m_debuggingHelperState != DebuggingHelperUninitialized) @@ -4055,6 +4095,8 @@ void GdbEngine::tryLoadDebuggingHelpers() " %1 EXISTS: %2, EXECUTABLE: %3").arg(lib) .arg(QFileInfo(lib).exists()) .arg(QFileInfo(lib).isExecutable())); + if (theDebuggerBoolSetting(UseDebuggingHelpers)) + showDebuggingHelperWarning(); return; } diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h index 3b4b84fa59be049b4d4892f56b766bcbd2813350..aebb5da6373ad95f508c4a944fe4adf162330988 100644 --- a/src/plugins/debugger/gdbengine.h +++ b/src/plugins/debugger/gdbengine.h @@ -136,6 +136,7 @@ private: // // Own stuff // + void showDebuggingHelperWarning(); int currentFrame() const; QString currentWorkingDirectory() const { return m_pwd; } diff --git a/src/plugins/debugger/registerhandler.cpp b/src/plugins/debugger/registerhandler.cpp index 12dd1d213162b36a8d5ecd0d32866ca594fe7912..2bb3ab289a7277ceca5a563d1537e947add38c76 100644 --- a/src/plugins/debugger/registerhandler.cpp +++ b/src/plugins/debugger/registerhandler.cpp @@ -75,10 +75,8 @@ QVariant RegisterHandler::data(const QModelIndex &index, int role) const if (role == Qt::DisplayRole) { switch (index.column()) { - case 0: - return reg.name; - case 1: - return reg.value; + case 0: return reg.name; + case 1: return reg.value; } } if (role == Qt::TextColorRole && reg.changed && index.column() == 1) @@ -90,12 +88,10 @@ QVariant RegisterHandler::headerData(int section, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { - static const char * const headers[] = { - QT_TR_NOOP("Name"), - QT_TR_NOOP("Value"), + switch (section) { + case 0: return tr("Name"); + case 1: return tr("Value"); }; - if (section < 2) - return tr(headers[section]); } return QVariant(); } diff --git a/src/plugins/debugger/registerwindow.cpp b/src/plugins/debugger/registerwindow.cpp index 03239d8875ab176e9e968505a81fcf8676fa8390..9af893b9e164508a1e8709b2182c8132d796234a 100644 --- a/src/plugins/debugger/registerwindow.cpp +++ b/src/plugins/debugger/registerwindow.cpp @@ -81,15 +81,15 @@ void RegisterWindow::contextMenuEvent(QContextMenuEvent *ev) //QString format = model()->property(PROPERTY_REGISTER_FORMAT).toString(); //qDebug() << "FORMAT: " << format; - actions[Adjust] = menu.addAction("Adjust column widths to contents"); + actions[Adjust] = menu.addAction(tr("Adjust column widths to contents")); - actions[AlwaysAdjust] = menu.addAction("Always adjust column widths to contents"); + actions[AlwaysAdjust] = menu.addAction(tr("Always adjust column widths to contents")); actions[AlwaysAdjust]->setCheckable(true); actions[AlwaysAdjust]->setChecked(m_alwaysResizeColumnsToContents); - actions[Reload] = menu.addAction("Reload register listing"); + actions[Reload] = menu.addAction(tr("Reload register listing")); - actions[AlwaysReload] = menu.addAction("Always reload register listing"); + actions[AlwaysReload] = menu.addAction(tr("Always reload register listing")); actions[AlwaysReload]->setCheckable(true); actions[AlwaysReload]->setChecked(m_alwaysReloadContents); diff --git a/src/plugins/debugger/scriptengine.cpp b/src/plugins/debugger/scriptengine.cpp index 55b21cc7cc706d0ee6995249103d59933d1bbb9b..3ee8b7f8697b7a7a5e47e45d90340baef5637c2e 100644 --- a/src/plugins/debugger/scriptengine.cpp +++ b/src/plugins/debugger/scriptengine.cpp @@ -489,8 +489,8 @@ void ScriptEngine::setToolTipExpression(const QPoint &pos, const QString &exp0) if (hasSideEffects(exp)) { QToolTip::showText(m_toolTipPos, - "Cowardly refusing to evaluate expression '" + exp - + "' with potential side effects"); + tr("Cowardly refusing to evaluate expression '%1' " + "with potential side effects").arg(exp)); return; } diff --git a/src/plugins/debugger/stackhandler.cpp b/src/plugins/debugger/stackhandler.cpp index a02a80a3523dfff4a6cc69911706b67537c93c88..052d97b5151890180a3e03d3b55a1663946c44fc 100644 --- a/src/plugins/debugger/stackhandler.cpp +++ b/src/plugins/debugger/stackhandler.cpp @@ -53,10 +53,11 @@ bool StackFrame::isUsable() const //////////////////////////////////////////////////////////////////////// StackHandler::StackHandler(QObject *parent) - : QAbstractTableModel(parent), m_currentIndex(0) + : QAbstractTableModel(parent), + m_positionIcon(QIcon(":/gdbdebugger/images/location.svg")), + m_emptyIcon(QIcon(":/gdbdebugger/images/empty.svg")) { - m_emptyIcon = QIcon(":/gdbdebugger/images/empty.svg"); - m_positionIcon = QIcon(":/gdbdebugger/images/location.svg"); + m_currentIndex = 0; m_canExpand = false; } @@ -78,7 +79,11 @@ QVariant StackHandler::data(const QModelIndex &index, int role) const if (index.row() == m_stackFrames.size()) { if (role == Qt::DisplayRole && index.column() == 0) - return "<...>"; + return tr("..."); + if (role == Qt::DisplayRole && index.column() == 1) + return tr("<More>"); + if (role == Qt::DecorationRole && index.column() == 0) + return m_emptyIcon; return QVariant(); } @@ -115,15 +120,13 @@ QVariant StackHandler::data(const QModelIndex &index, int role) const QVariant StackHandler::headerData(int section, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { - static const char * const headers[] = { - QT_TR_NOOP("Level"), - QT_TR_NOOP("Function"), - QT_TR_NOOP("File"), - QT_TR_NOOP("Line"), - QT_TR_NOOP("Address") + switch (section) { + case 0: return tr("Level"); + case 1: return tr("Function"); + case 2: return tr("File"); + case 3: return tr("Line"); + case 4: return tr("Address"); }; - if (section < 5) - return tr(headers[section]); } return QVariant(); } @@ -229,7 +232,7 @@ QVariant ThreadsHandler::data(const QModelIndex &index, int role) const return "???"; } } else if (role == Qt::ToolTipRole) { - return "Thread: " + QString::number(m_threads.at(index.row()).id); + return tr("Thread: %1").arg(m_threads.at(index.row()).id); } else if (role == Qt::DecorationRole && index.column() == 0) { // Return icon that indicates whether this is the active stack frame return (index.row() == m_currentIndex) ? m_positionIcon : m_emptyIcon; @@ -241,11 +244,8 @@ QVariant ThreadsHandler::data(const QModelIndex &index, int role) const QVariant ThreadsHandler::headerData(int section, Qt::Orientation orientation, int role) const { if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { - static const char * const headers[] = { - QT_TR_NOOP("Thread ID"), - }; if (section < 1) - return tr(headers[section]); + return tr("Thread ID"); } return QVariant(); } diff --git a/src/plugins/debugger/stackhandler.h b/src/plugins/debugger/stackhandler.h index 920436deef22079ba4618fb90becc413544f1af6..ba88b15b44771feff8b5389d4cfe202650b574b1 100644 --- a/src/plugins/debugger/stackhandler.h +++ b/src/plugins/debugger/stackhandler.h @@ -86,8 +86,8 @@ private: QList<StackFrame> m_stackFrames; int m_currentIndex; - QIcon m_positionIcon; - QIcon m_emptyIcon; + const QVariant m_positionIcon; + const QVariant m_emptyIcon; bool m_canExpand; }; diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index b618b98c55df4d6437addae36b7fb9433c30d7ae..9ccfb791d624198cae8e2de1a2506afb9d9f15d2 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -293,7 +293,7 @@ static QList<WatchData> initialSet() root.state = 0; root.level = 0; root.row = 0; - root.name = QLatin1String("Root"); + root.name = WatchHandler::tr("Root"); root.parentIndex = -1; root.childIndex.append(1); root.childIndex.append(2); @@ -302,7 +302,7 @@ static QList<WatchData> initialSet() WatchData local; local.iname = QLatin1String("local"); - local.name = QLatin1String("Locals"); + local.name = WatchHandler::tr("Locals"); local.state = 0; local.level = 1; local.row = 0; @@ -311,7 +311,7 @@ static QList<WatchData> initialSet() WatchData tooltip; tooltip.iname = QLatin1String("tooltip"); - tooltip.name = QLatin1String("Tooltip"); + tooltip.name = WatchHandler::tr("Tooltip"); tooltip.state = 0; tooltip.level = 1; tooltip.row = 1; @@ -320,7 +320,7 @@ static QList<WatchData> initialSet() WatchData watch; watch.iname = QLatin1String("watch"); - watch.name = QLatin1String("Watchers"); + watch.name = WatchHandler::tr("Watchers"); watch.state = 0; watch.level = 1; watch.row = 2; @@ -711,13 +711,13 @@ void WatchHandler::rebuildModel() dummy.row = 0; if (i == 1) { dummy.iname = QLatin1String("local.dummy"); - dummy.name = QLatin1String("<No Locals>"); + dummy.name = tr("<No Locals>"); } else if (i == 2) { dummy.iname = QLatin1String("tooltip.dummy"); - dummy.name = QLatin1String("<No Tooltip>"); + dummy.name = tr("<No Tooltip>"); } else { dummy.iname = QLatin1String("watch.dummy"); - dummy.name = QLatin1String("<No Watchers>"); + dummy.name = tr("<No Watchers>"); } dummy.level = 2; dummy.parentIndex = i; diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index 75c9c8c1336105e26c422ae459d96b9eeac67085..f6e2fd01cb831ffe6efd1398af0ca399fddfc5ec 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -164,8 +164,8 @@ void WatchWindow::keyPressEvent(QKeyEvent *ev) void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) { QMenu menu; - QAction *act1 = new QAction("Adjust column widths to contents", &menu); - QAction *act2 = new QAction("Always adjust column widths to contents", &menu); + QAction *act1 = new QAction(tr("Adjust column widths to contents"), &menu); + QAction *act2 = new QAction(tr("Always adjust column widths to contents"), &menu); act2->setCheckable(true); act2->setChecked(m_alwaysResizeColumnsToContents); @@ -201,7 +201,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) else if (act == act2) setAlwaysResizeColumnsToContents(!m_alwaysResizeColumnsToContents); else if (act == act3) - theDebuggerAction(WatchExpression)->trigger("<Edit>"); + theDebuggerAction(WatchExpression)->trigger(tr("<Edit>")); } void WatchWindow::resizeColumnsToContents() diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 44bb76028f1edc2c4d6bcf931f895e15c21139bd..f26d0ffcff491b143885be871cd3b1d25f338703 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -278,9 +278,9 @@ public: typedef QTextCursor::MoveMode MoveMode; void moveToEndOfDocument() { m_tc.movePosition(EndOfDocument, MoveAnchor); } void moveToStartOfLine() { m_tc.movePosition(StartOfLine, MoveAnchor); } - void moveToEndOfLine() { m_tc.movePosition(EndOfLine, MoveAnchor); } - void moveUp(int n = 1) { m_tc.movePosition(Up, MoveAnchor, n); } - void moveDown(int n = 1) { m_tc.movePosition(Down, MoveAnchor, n); } + void moveToEndOfLine(); + void moveUp(int n = 1) { moveDown(-n); } + void moveDown(int n = 1); // { m_tc.movePosition(Down, MoveAnchor, n); } void moveRight(int n = 1) { m_tc.movePosition(Right, MoveAnchor, n); } void moveLeft(int n = 1) { m_tc.movePosition(Left, MoveAnchor, n); } void setAnchor() { m_anchor = m_tc.position(); } @@ -289,7 +289,7 @@ public: void handleFfTt(int key); - // helper function for handleCommand. return 1 based line index. + // helper function for handleExCommand. return 1 based line index. int readLineCode(QString &cmd); void selectRange(int beginLine, int endLine); @@ -351,7 +351,7 @@ public: bool m_needMoreUndo; // extra data for '.' - void replay(const QString &text); + void replay(const QString &text, int count); QString m_dotCommand; bool m_inReplay; // true if we are executing a '.' @@ -411,10 +411,13 @@ QStringList FakeVimHandler::Private::m_commandHistory; FakeVimHandler::Private::Private(FakeVimHandler *parent, QWidget *widget) { q = parent; - m_textedit = qobject_cast<QTextEdit *>(widget); m_plaintextedit = qobject_cast<QPlainTextEdit *>(widget); + init(); +} +void FakeVimHandler::Private::init() +{ m_mode = CommandMode; m_submode = NoSubMode; m_subsubmode = NoSubSubMode; @@ -592,7 +595,6 @@ EventResult FakeVimHandler::Private::handleKey(int key, int unmodified, const QString &text) { //qDebug() << "KEY: " << key << text << "POS: " << m_tc.position(); - //qDebug() << "\nUNDO: " << m_undoStack << "\nREDO: " << m_redoStack; if (m_mode == InsertMode) return handleInsertMode(key, unmodified, text); if (m_mode == CommandMode) @@ -603,6 +605,26 @@ EventResult FakeVimHandler::Private::handleKey(int key, int unmodified, return EventUnhandled; } +void FakeVimHandler::Private::moveDown(int n) +{ + // m_tc.movePosition(Down, MoveAnchor, n); does not work for "hidden" + // documents like in the autotests + const QTextBlock &block = m_tc.block(); + const int col = m_tc.position() - block.position(); + const int line = block.blockNumber(); + const int pos = m_tc.document()->findBlockByNumber(line + n).position(); + setPosition(pos + qMin(block.length(), col)); + setPosition(pos); +} + +void FakeVimHandler::Private::moveToEndOfLine() +{ + // m_tc.movePosition(EndOfLine, MoveAnchor) does not work for "hidden" + // documents like in the autotests + const QTextBlock &block = m_tc.block(); + setPosition(block.position() + block.length() - 1); +} + void FakeVimHandler::Private::finishMovement(const QString &dotCommand) { //qDebug() << "ANCHOR: " << position() << anchor(); @@ -1012,7 +1034,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified, qDebug() << "REPEATING" << m_dotCommand; QString savedCommand = m_dotCommand; m_dotCommand.clear(); - replay(savedCommand); + replay(savedCommand, count()); enterCommandMode(); m_dotCommand = savedCommand; } else if (key == '<' && m_visualMode == NoVisualMode) { @@ -1647,6 +1669,7 @@ void FakeVimHandler::Private::selectRange(int beginLine, int endLine) void FakeVimHandler::Private::handleCommand(const QString &cmd) { m_tc = EDITOR(textCursor()); + init(); handleExCommand(cmd); EDITOR(setTextCursor(m_tc)); } @@ -1780,7 +1803,8 @@ void FakeVimHandler::Private::handleExCommand(const QString &cmd0) updateMiniBuffer(); } else if (reNormal.indexIn(cmd) != -1) { // :normal enterCommandMode(); - replay(reNormal.cap(3)); + //qDebug() << "REPLAY: " << reNormal.cap(3); + replay(reNormal.cap(3), 1); } else if (reSet.indexIn(cmd) != -1) { // :set showBlackMessage(QString()); QString arg = reSet.cap(2); @@ -2353,11 +2377,11 @@ void FakeVimHandler::Private::handleStartOfLine() moveToFirstNonBlankOnLine(); } -void FakeVimHandler::Private::replay(const QString &command) +void FakeVimHandler::Private::replay(const QString &command, int n) { //qDebug() << "REPLAY: " << command; m_inReplay = true; - for (int i = count(); --i >= 0; ) + for (int i = n; --i >= 0; ) foreach (QChar c, command) handleKey(c.unicode(), c.unicode(), QString(c)); m_inReplay = false; diff --git a/src/plugins/find/searchresulttreeitemdelegate.cpp b/src/plugins/find/searchresulttreeitemdelegate.cpp index 533b47e5c91694b8c1fe25992ba47a948e4d826f..d72ca5c2b0fa5842c9403e9c3f14dec0268044e5 100644 --- a/src/plugins/find/searchresulttreeitemdelegate.cpp +++ b/src/plugins/find/searchresulttreeitemdelegate.cpp @@ -72,7 +72,7 @@ void SearchResultTreeItemDelegate::paint(QPainter *painter, const QStyleOptionVi } int SearchResultTreeItemDelegate::drawLineNumber(QPainter *painter, const QStyleOptionViewItemV3 &option, - const QModelIndex &index) const + const QModelIndex &index) const { static const int lineNumberAreaHorizontalPadding = 4; const bool isSelected = option.state & QStyle::State_Selected; @@ -90,10 +90,10 @@ int SearchResultTreeItemDelegate::drawLineNumber(QPainter *painter, const QStyle else if (!(option.state & QStyle::State_Enabled)) cg = QPalette::Disabled; - painter->fillRect(lineNumberAreaRect, QBrush(isSelected? - option.palette.brush(cg, QPalette::Highlight):QBrush(qRgb(230, 230, 230)))); - painter->setPen(isSelected? - option.palette.color(cg, QPalette::HighlightedText):Qt::darkGray); + painter->fillRect(lineNumberAreaRect, QBrush(isSelected ? + option.palette.brush(cg, QPalette::Highlight) : QBrush(qRgb(230, 230, 230)))); + painter->setPen(isSelected ? + option.palette.color(cg, QPalette::HighlightedText) : Qt::darkGray); painter->drawText(lineNumberAreaRect.adjusted(0, 0, -lineNumberAreaHorizontalPadding, 0), Qt::AlignRight, QString::number(lineNumber)); @@ -101,7 +101,7 @@ int SearchResultTreeItemDelegate::drawLineNumber(QPainter *painter, const QStyle } void SearchResultTreeItemDelegate::drawMarker(QPainter *painter, const QModelIndex &index, const QString text, - const QRect &rect) const + const QRect &rect) const { const int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; int searchTermStart = index.model()->data(index, ItemDataRoles::SearchTermStartRole).toInt(); diff --git a/src/plugins/find/searchresulttreeitemroles.h b/src/plugins/find/searchresulttreeitemroles.h index fd9450e6c0bd3475c60eab9031520ea96eb7d4a5..486e7907c6f45e89c96ae6db127fd062c81603e9 100644 --- a/src/plugins/find/searchresulttreeitemroles.h +++ b/src/plugins/find/searchresulttreeitemroles.h @@ -34,7 +34,7 @@ namespace Find { namespace Internal { namespace ItemDataRoles { -enum roles +enum Roles { TypeRole = Qt::UserRole, FileNameRole, @@ -49,6 +49,6 @@ enum roles } // namespace Internal } // namespace Find -} // namespace itemDataRoles +} // namespace ItemDataRoles #endif // SEARCHRESULTTREEITEMROLES_H diff --git a/src/plugins/find/searchresulttreeitems.cpp b/src/plugins/find/searchresulttreeitems.cpp index dbdef04ee1ea780bff05abcd9562123019440575..986767666b32a94fba723d856da1040a8b4027fc 100644 --- a/src/plugins/find/searchresulttreeitems.cpp +++ b/src/plugins/find/searchresulttreeitems.cpp @@ -31,7 +31,7 @@ using namespace Find::Internal; -SearchResultTreeItem::SearchResultTreeItem(SearchResultTreeItem::itemType type, const SearchResultTreeItem *parent) +SearchResultTreeItem::SearchResultTreeItem(SearchResultTreeItem::ItemType type, const SearchResultTreeItem *parent) : m_type(type), m_parent(parent) { } @@ -41,33 +41,33 @@ SearchResultTreeItem::~SearchResultTreeItem() clearChildren(); } -void SearchResultTreeItem::clearChildren(void) +void SearchResultTreeItem::clearChildren() { qDeleteAll(m_children); m_children.clear(); } -SearchResultTreeItem::itemType SearchResultTreeItem::getItemType(void) const +SearchResultTreeItem::ItemType SearchResultTreeItem::itemType() const { return m_type; } -int SearchResultTreeItem::getChildrenCount(void) const +int SearchResultTreeItem::childrenCount() const { return m_children.count(); } -int SearchResultTreeItem::getRowOfItem(void) const +int SearchResultTreeItem::rowOfItem() const { - return (m_parent?m_parent->m_children.indexOf(const_cast<SearchResultTreeItem*>(this)):0); + return (m_parent ? m_parent->m_children.indexOf(const_cast<SearchResultTreeItem*>(this)):0); } -const SearchResultTreeItem* SearchResultTreeItem::getChild(int index) const +const SearchResultTreeItem* SearchResultTreeItem::childAt(int index) const { return m_children.at(index); } -const SearchResultTreeItem *SearchResultTreeItem::getParent(void) const +const SearchResultTreeItem *SearchResultTreeItem::parent() const { return m_parent; } @@ -78,8 +78,10 @@ void SearchResultTreeItem::appendChild(SearchResultTreeItem *child) } SearchResultTextRow::SearchResultTextRow(int index, int lineNumber, - const QString &rowText, int searchTermStart, int searchTermLength, const SearchResultTreeItem *parent) -: SearchResultTreeItem(resultRow, parent), + const QString &rowText, + int searchTermStart, int searchTermLength, + const SearchResultTreeItem *parent): + SearchResultTreeItem(ResultRow, parent), m_index(index), m_lineNumber(lineNumber), m_rowText(rowText), @@ -113,12 +115,13 @@ int SearchResultTextRow::searchTermLength() const return m_searchTermLength; } -SearchResultFile::SearchResultFile(const QString &fileName, const SearchResultTreeItem *parent) - : SearchResultTreeItem(resultFile, parent), m_fileName(fileName) +SearchResultFile::SearchResultFile(const QString &fileName, const SearchResultTreeItem *parent): + SearchResultTreeItem(ResultFile, parent), + m_fileName(fileName) { } -QString SearchResultFile::getFileName(void) const +QString SearchResultFile::fileName() const { return m_fileName; } @@ -126,6 +129,7 @@ QString SearchResultFile::getFileName(void) const void SearchResultFile::appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart, int searchTermLength) { - SearchResultTreeItem *child = new SearchResultTextRow(index, lineNumber, rowText, searchTermStart, searchTermLength, this); + SearchResultTreeItem *child = new SearchResultTextRow(index, lineNumber, rowText, + searchTermStart, searchTermLength, this); appendChild(child); } diff --git a/src/plugins/find/searchresulttreeitems.h b/src/plugins/find/searchresulttreeitems.h index a33974fee8cadde8151cee3c17ecd7532d54e2ad..cf792d897abcd605544b3f613e425cb0ef03650b 100644 --- a/src/plugins/find/searchresulttreeitems.h +++ b/src/plugins/find/searchresulttreeitems.h @@ -42,35 +42,35 @@ class SearchResultTreeItem; class SearchResultTreeItem { public: - enum itemType + enum ItemType { - root, - resultRow, - resultFile + Root, + ResultRow, + ResultFile }; - SearchResultTreeItem(itemType type = root, const SearchResultTreeItem *parent = NULL); + SearchResultTreeItem(ItemType type = Root, const SearchResultTreeItem *parent = NULL); virtual ~SearchResultTreeItem(); - itemType getItemType() const; - const SearchResultTreeItem *getParent() const; - const SearchResultTreeItem *getChild(int index) const; + ItemType itemType() const; + const SearchResultTreeItem *parent() const; + const SearchResultTreeItem *childAt(int index) const; void appendChild(SearchResultTreeItem *child); - int getChildrenCount() const; - int getRowOfItem() const; + int childrenCount() const; + int rowOfItem() const; void clearChildren(); private: - itemType m_type; + ItemType m_type; const SearchResultTreeItem *m_parent; QList<SearchResultTreeItem *> m_children; }; -class SearchResultTextRow: public SearchResultTreeItem +class SearchResultTextRow : public SearchResultTreeItem { public: SearchResultTextRow(int index, int lineNumber, const QString &rowText, int searchTermStart, - int searchTermLength, const SearchResultTreeItem *parent); + int searchTermLength, const SearchResultTreeItem *parent); int index() const; QString rowText() const; int lineNumber() const; @@ -85,13 +85,13 @@ private: int m_searchTermLength; }; -class SearchResultFile: public SearchResultTreeItem +class SearchResultFile : public SearchResultTreeItem { public: SearchResultFile(const QString &fileName, const SearchResultTreeItem *parent); - QString getFileName() const; + QString fileName() const; void appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart, - int searchTermLength); + int searchTermLength); private: QString m_fileName; diff --git a/src/plugins/find/searchresulttreemodel.cpp b/src/plugins/find/searchresulttreemodel.cpp index 03fb1c5c0175095bb1031bf43878244cb0c323ab..68beb2afb8f3ace34b4a9fa0fbd5f25ae9d03962 100644 --- a/src/plugins/find/searchresulttreemodel.cpp +++ b/src/plugins/find/searchresulttreemodel.cpp @@ -37,9 +37,11 @@ using namespace Find::Internal; SearchResultTreeModel::SearchResultTreeModel(QObject *parent) - : QAbstractItemModel(parent), m_lastAppendedResultFile(0) + : QAbstractItemModel(parent) + , m_lastAppendedResultFile(0) { m_rootItem = new SearchResultTreeItem(); + m_textEditorFont = QFont("Courier"); } SearchResultTreeModel::~SearchResultTreeModel() @@ -47,8 +49,13 @@ SearchResultTreeModel::~SearchResultTreeModel() delete m_rootItem; } +void SearchResultTreeModel::setTextEditorFont(const QFont &font) +{ + m_textEditorFont = font; +} + QModelIndex SearchResultTreeModel::index(int row, int column, - const QModelIndex &parent) const + const QModelIndex &parent) const { if (!hasIndex(row, column, parent)) return QModelIndex(); @@ -60,7 +67,7 @@ QModelIndex SearchResultTreeModel::index(int row, int column, else parentItem = static_cast<const SearchResultTreeItem*>(parent.internalPointer()); - const SearchResultTreeItem *childItem = parentItem->getChild(row); + const SearchResultTreeItem *childItem = parentItem->childAt(row); if (childItem) return createIndex(row, column, (void *)childItem); else @@ -73,12 +80,12 @@ QModelIndex SearchResultTreeModel::parent(const QModelIndex &index) const return QModelIndex(); const SearchResultTreeItem *childItem = static_cast<const SearchResultTreeItem*>(index.internalPointer()); - const SearchResultTreeItem *parentItem = childItem->getParent(); + const SearchResultTreeItem *parentItem = childItem->parent(); if (parentItem == m_rootItem) return QModelIndex(); - return createIndex(parentItem->getRowOfItem(), 0, (void *)parentItem); + return createIndex(parentItem->rowOfItem(), 0, (void *)parentItem); } int SearchResultTreeModel::rowCount(const QModelIndex &parent) const @@ -93,7 +100,7 @@ int SearchResultTreeModel::rowCount(const QModelIndex &parent) const else parentItem = static_cast<const SearchResultTreeItem*>(parent.internalPointer()); - return parentItem->getChildrenCount(); + return parentItem->childrenCount(); } int SearchResultTreeModel::columnCount(const QModelIndex &parent) const @@ -111,12 +118,12 @@ QVariant SearchResultTreeModel::data(const QModelIndex &index, int role) const QVariant result; - if (item->getItemType() == SearchResultTreeItem::resultRow) + if (item->itemType() == SearchResultTreeItem::ResultRow) { const SearchResultTextRow *row = static_cast<const SearchResultTextRow *>(item); result = data(row, role); } - else if (item->getItemType() == SearchResultTreeItem::resultFile) + else if (item->itemType() == SearchResultTreeItem::ResultFile) { const SearchResultFile *file = static_cast<const SearchResultFile *>(item); result = data(file, role); @@ -135,7 +142,7 @@ QVariant SearchResultTreeModel::data(const SearchResultTextRow *row, int role) c result = row->rowText().trimmed(); break; case Qt::FontRole: - result = QFont("courier"); + result = m_textEditorFont; break; case ItemDataRoles::ResultLineRole: case Qt::DisplayRole: @@ -158,8 +165,8 @@ QVariant SearchResultTreeModel::data(const SearchResultTextRow *row, int role) c break; case ItemDataRoles::FileNameRole: { - const SearchResultFile *file = dynamic_cast<const SearchResultFile *>(row->getParent()); - result = file->getFileName(); + const SearchResultFile *file = dynamic_cast<const SearchResultFile *>(row->parent()); + result = file->fileName(); break; } default: @@ -179,22 +186,15 @@ QVariant SearchResultTreeModel::data(const SearchResultFile *file, int role) con case Qt::BackgroundRole: result = QColor(qRgb(245, 245, 245)); break; - case Qt::FontRole: - { - QFont font; - font.setPointSize(font.pointSize() + 1); - result = font; - break; - } case Qt::DisplayRole: - result = file->getFileName() + " (" + QString::number(file->getChildrenCount()) + ")"; + result = file->fileName() + " (" + QString::number(file->childrenCount()) + ")"; break; case ItemDataRoles::FileNameRole: case Qt::ToolTipRole: - result = file->getFileName(); + result = file->fileName(); break; case ItemDataRoles::ResultLinesCountRole: - result = file->getChildrenCount(); + result = file->childrenCount(); break; case ItemDataRoles::TypeRole: result = "file"; @@ -220,20 +220,20 @@ void SearchResultTreeModel::appendResultFile(const QString &fileName) { m_lastAppendedResultFile = new SearchResultFile(fileName, m_rootItem); - beginInsertRows(QModelIndex(), m_rootItem->getChildrenCount(), m_rootItem->getChildrenCount()); + beginInsertRows(QModelIndex(), m_rootItem->childrenCount(), m_rootItem->childrenCount()); m_rootItem->appendChild(m_lastAppendedResultFile); endInsertRows(); } -void SearchResultTreeModel::appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart, - int searchTermLength) +void SearchResultTreeModel::appendResultLine(int index, int lineNumber, const QString &rowText, + int searchTermStart, int searchTermLength) { if (!m_lastAppendedResultFile) return; - QModelIndex lastFile(createIndex(m_lastAppendedResultFile->getRowOfItem(), 0, m_lastAppendedResultFile)); + QModelIndex lastFile(createIndex(m_lastAppendedResultFile->rowOfItem(), 0, m_lastAppendedResultFile)); - beginInsertRows(lastFile, m_lastAppendedResultFile->getChildrenCount(), m_lastAppendedResultFile->getChildrenCount()); + beginInsertRows(lastFile, m_lastAppendedResultFile->childrenCount(), m_lastAppendedResultFile->childrenCount()); m_lastAppendedResultFile->appendResultLine(index, lineNumber, rowText, searchTermStart, searchTermLength); endInsertRows(); @@ -241,15 +241,15 @@ void SearchResultTreeModel::appendResultLine(int index, int lineNumber, const QS } void SearchResultTreeModel::appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText, - int searchTermStart, int searchTermLength) + int searchTermStart, int searchTermLength) { - if (!m_lastAppendedResultFile || (m_lastAppendedResultFile->getFileName() != fileName)) + if (!m_lastAppendedResultFile || (m_lastAppendedResultFile->fileName() != fileName)) appendResultFile(fileName); appendResultLine(index, lineNumber, rowText, searchTermStart, searchTermLength); } -void SearchResultTreeModel::clear(void) +void SearchResultTreeModel::clear() { m_lastAppendedResultFile = NULL; m_rootItem->clearChildren(); diff --git a/src/plugins/find/searchresulttreemodel.h b/src/plugins/find/searchresulttreemodel.h index cd32d55a7e3ef1c076ccf45815ad88b240ed9853..b4036c0e7b64b91525292d328399100af3ab3957 100644 --- a/src/plugins/find/searchresulttreemodel.h +++ b/src/plugins/find/searchresulttreemodel.h @@ -31,6 +31,7 @@ #define SEARCHRESULTTREEMODEL_H #include <QtCore/QAbstractItemModel> +#include <QtGui/QFont> namespace Find { namespace Internal { @@ -47,8 +48,9 @@ public: SearchResultTreeModel(QObject *parent = 0); ~SearchResultTreeModel(); - QModelIndex index(int row, int column, - const QModelIndex &parent = QModelIndex()) const; + void setTextEditorFont(const QFont &font); + + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex parent(const QModelIndex &child) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; @@ -57,25 +59,26 @@ public: signals: void jumpToSearchResult(const QString &fileName, int lineNumber, - int searchTermStart, int searchTermLength); + int searchTermStart, int searchTermLength); void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); public slots: void clear(); - void appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart, - int searchTermLength); - void appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText, int searchTermStart, - int searchTermLength); + void appendResultLine(int index, int lineNumber, const QString &rowText, + int searchTermStart, int searchTermLength); + void appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText, + int searchTermStart, int searchTermLength); private: void appendResultFile(const QString &fileName); QVariant data(const SearchResultTextRow *row, int role) const; QVariant data(const SearchResultFile *file, int role) const; - void initializeData(void); - void disposeData(void); + void initializeData(); + void disposeData(); SearchResultTreeItem *m_rootItem; SearchResultFile *m_lastAppendedResultFile; + QFont m_textEditorFont; }; } // namespace Internal diff --git a/src/plugins/find/searchresulttreeview.cpp b/src/plugins/find/searchresulttreeview.cpp index e74458593ddf6965ceb60b2b673193bd173f755f..b12e3f15885a0f33c8f5833132eb9b2ed7dcaf4e 100644 --- a/src/plugins/find/searchresulttreeview.cpp +++ b/src/plugins/find/searchresulttreeview.cpp @@ -37,7 +37,8 @@ using namespace Find::Internal; SearchResultTreeView::SearchResultTreeView(QWidget *parent) - : QTreeView(parent), m_autoExpandResults(false) + : QTreeView(parent) + , m_autoExpandResults(false) { m_model = new SearchResultTreeModel(this); setModel(m_model); @@ -46,7 +47,7 @@ SearchResultTreeView::SearchResultTreeView(QWidget *parent) setIndentation(14); header()->hide(); - connect (this, SIGNAL(activated(QModelIndex)), this, SLOT(emitJumpToSearchResult(QModelIndex))); + connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(emitJumpToSearchResult(QModelIndex))); } void SearchResultTreeView::setAutoExpandResults(bool expand) @@ -54,13 +55,18 @@ void SearchResultTreeView::setAutoExpandResults(bool expand) m_autoExpandResults = expand; } -void SearchResultTreeView::clear(void) +void SearchResultTreeView::setTextEditorFont(const QFont &font) +{ + m_model->setTextEditorFont(font); +} + +void SearchResultTreeView::clear() { m_model->clear(); } void SearchResultTreeView::appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText, - int searchTermStart, int searchTermLength) + int searchTermStart, int searchTermLength) { int rowsBefore = m_model->rowCount(); m_model->appendResultLine(index, fileName, lineNumber, rowText, searchTermStart, searchTermLength); diff --git a/src/plugins/find/searchresulttreeview.h b/src/plugins/find/searchresulttreeview.h index a7ff9b4b11c4cb31648c436d9360c220cb24acca..1fcf03599f4d148b2ebe414da3f02d5e45afc1e9 100644 --- a/src/plugins/find/searchresulttreeview.h +++ b/src/plugins/find/searchresulttreeview.h @@ -44,16 +44,18 @@ class SearchResultTreeView : public QTreeView public: SearchResultTreeView(QWidget *parent = 0); + void setAutoExpandResults(bool expand); + void setTextEditorFont(const QFont &font); signals: void jumpToSearchResult(int index, const QString &fileName, int lineNumber, - int searchTermStart, int searchTermLength); + int searchTermStart, int searchTermLength); public slots: void clear(); void appendResultLine(int index, const QString &fileName, int lineNumber, const QString &lineText, - int searchTermStart, int searchTermLength); + int searchTermStart, int searchTermLength); private slots: void emitJumpToSearchResult(const QModelIndex &index); diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp index 908bf7031584e709e0f9d146e8902f82362a1446..19c252a417792f8054bd6c7eda754a37f6ea32fe 100644 --- a/src/plugins/find/searchresultwindow.cpp +++ b/src/plugins/find/searchresultwindow.cpp @@ -82,22 +82,6 @@ SearchResultWindow::~SearchResultWindow() m_items.clear(); } -bool SearchResultWindow::hasFocus() -{ - return m_searchResultTreeView->hasFocus(); -} - -bool SearchResultWindow::canFocus() -{ - return !m_items.isEmpty(); -} - -void SearchResultWindow::setFocus() -{ - if (!m_items.isEmpty()) - m_searchResultTreeView->setFocus(); -} - void SearchResultWindow::visibilityChanged(bool /*visible*/) { } @@ -107,7 +91,7 @@ QWidget *SearchResultWindow::outputWidget(QWidget *) return m_widget; } -QList<QWidget*> SearchResultWindow::toolBarWidgets(void) const +QList<QWidget*> SearchResultWindow::toolBarWidgets() const { return QList<QWidget*>() << m_expandCollapseToolButton; } @@ -120,7 +104,7 @@ void SearchResultWindow::clearContents() m_items.clear(); } -void SearchResultWindow::showNoMatchesFound(void) +void SearchResultWindow::showNoMatchesFound() { m_widget->setCurrentWidget(m_noMatchesFoundDisplay); } @@ -135,6 +119,27 @@ int SearchResultWindow::numberOfResults() const return m_searchResultTreeView->model()->rowCount(); } +bool SearchResultWindow::hasFocus() +{ + return m_searchResultTreeView->hasFocus(); +} + +bool SearchResultWindow::canFocus() +{ + return !m_items.isEmpty(); +} + +void SearchResultWindow::setFocus() +{ + if (!m_items.isEmpty()) + m_searchResultTreeView->setFocus(); +} + +void SearchResultWindow::setTextEditorFont(const QFont &font) +{ + m_searchResultTreeView->setTextEditorFont(font); +} + void SearchResultWindow::handleJumpToSearchResult(int index, const QString &fileName, int lineNumber, int searchTermStart, int searchTermLength) { @@ -169,7 +174,7 @@ void SearchResultWindow::handleExpandCollapseToolButton(bool checked) m_searchResultTreeView->collapseAll(); } -void SearchResultWindow::readSettings(void) +void SearchResultWindow::readSettings() { QSettings *s = Core::ICore::instance()->settings(); if (s) { @@ -179,7 +184,7 @@ void SearchResultWindow::readSettings(void) } } -void SearchResultWindow::writeSettings(void) +void SearchResultWindow::writeSettings() { QSettings *s = Core::ICore::instance()->settings(); if (s) { diff --git a/src/plugins/find/searchresultwindow.h b/src/plugins/find/searchresultwindow.h index c6022f951e9eb0c2da4d6bbcbae790bff047b117..da371971cf795910ca7880f139381461512ed3bc 100644 --- a/src/plugins/find/searchresultwindow.h +++ b/src/plugins/find/searchresultwindow.h @@ -64,7 +64,7 @@ public: ~SearchResultWindow(); QWidget *outputWidget(QWidget *); - QList<QWidget*> toolBarWidgets(void) const; + QList<QWidget*> toolBarWidgets() const; QString name() const { return tr("Search Results"); } int priorityInStatusBar() const; @@ -75,11 +75,13 @@ public: bool canFocus(); void setFocus(); + void setTextEditorFont(const QFont &font); + public slots: void clearContents(); void showNoMatchesFound(); ResultWindowItem *addResult(const QString &fileName, int lineNumber, const QString &lineText, - int searchTermStart, int searchTermLength); + int searchTermStart, int searchTermLength); private slots: void handleExpandCollapseToolButton(bool checked); diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp index 780ce46858668ad296294e4dc3d3c862f69676fb..1c13ec7fbf75644c2b9d3596c9bd4033d68e9117 100644 --- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp +++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp @@ -50,7 +50,7 @@ using namespace Core::Utils; namespace { -class DirModel: public QDirModel +class DirModel : public QDirModel { public: DirModel(QObject *parent) @@ -121,11 +121,11 @@ private: GenericProjectWizardDialog::GenericProjectWizardDialog(QWidget *parent) : QWizard(parent) { - setWindowTitle(tr("Import Existing Project")); + setWindowTitle(tr("Import of Makefile-based Project")); // first page m_firstPage = new FileWizardPage; - m_firstPage->setTitle(tr("Import Project")); + m_firstPage->setTitle(tr("Generic Project")); m_firstPage->setNameLabel(tr("Project name:")); m_firstPage->setPathLabel(tr("Location:")); @@ -178,6 +178,11 @@ QString GenericProjectWizardDialog::path() const return m_firstPage->path(); } +void GenericProjectWizardDialog::setPath(const QString &path) +{ + m_firstPage->setPath(path); +} + QString GenericProjectWizardDialog::projectName() const { return m_firstPage->name(); @@ -201,6 +206,7 @@ void GenericProjectWizardDialog::updateFilesView(const QModelIndex ¤t, void GenericProjectWizardDialog::initializePage(int id) { + Q_UNUSED(id) #if 0 if (id == m_secondPageId) { using namespace Core::Utils; @@ -237,8 +243,8 @@ Core::BaseFileWizardParameters GenericProjectWizard::parameters() { static Core::BaseFileWizardParameters parameters(ProjectWizard); parameters.setIcon(QIcon(":/wizards/images/console.png")); - parameters.setName(tr("Existing Project")); - parameters.setDescription(tr("Import Existing Project")); + parameters.setName(tr("Import of Makefile-based Project")); + parameters.setDescription(tr("Creates a generic project, supporting any build system.")); parameters.setCategory(QLatin1String("Projects")); parameters.setTrCategory(tr("Projects")); return parameters; @@ -251,6 +257,8 @@ QWizard *GenericProjectWizard::createWizardDialog(QWidget *parent, GenericProjectWizardDialog *wizard = new GenericProjectWizardDialog(parent); setupWizard(wizard); + wizard->setPath(defaultPath); + foreach (QWizardPage *p, extensionPages) wizard->addPage(p); @@ -302,6 +310,8 @@ bool GenericProjectWizard::isValidDir(const QFileInfo &fileInfo) const Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w, QString *errorMessage) const { + Q_UNUSED(errorMessage) + const GenericProjectWizardDialog *wizard = qobject_cast<const GenericProjectWizardDialog *>(w); const QString projectPath = wizard->path(); const QDir dir(projectPath); diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.h b/src/plugins/genericprojectmanager/genericprojectwizard.h index ffbb74d5420c66a87f50652bc6f559c4014f0ef0..f15790bcf85ea7eed198d9c0bbf48847a144de17 100644 --- a/src/plugins/genericprojectmanager/genericprojectwizard.h +++ b/src/plugins/genericprojectmanager/genericprojectwizard.h @@ -64,6 +64,8 @@ public: virtual ~GenericProjectWizardDialog(); QString path() const; + void setPath(const QString &path); + QString projectName() const; private Q_SLOTS: diff --git a/src/plugins/perforce/perforceoutputwindow.h b/src/plugins/perforce/perforceoutputwindow.h index d738dabec71d3315e3642ee28df3b8de52f60d13..d88d5b57789648a532cadf3b2c463938c66c5566 100644 --- a/src/plugins/perforce/perforceoutputwindow.h +++ b/src/plugins/perforce/perforceoutputwindow.h @@ -50,7 +50,7 @@ public: ~PerforceOutputWindow(); QWidget *outputWidget(QWidget *parent); - QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); } + QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); } QString name() const; int priorityInStatusBar() const; diff --git a/src/plugins/projectexplorer/compileoutputwindow.h b/src/plugins/projectexplorer/compileoutputwindow.h index 4687bf3816b67ace2a98ca3854e7ad15615e7eb2..55a4b988b004c0a35151f8eadafbe3470e4d41dd 100644 --- a/src/plugins/projectexplorer/compileoutputwindow.h +++ b/src/plugins/projectexplorer/compileoutputwindow.h @@ -47,7 +47,7 @@ class CompileOutputWindow : public Core::IOutputPane public: CompileOutputWindow(BuildManager *bm); QWidget *outputWidget(QWidget *); - QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); } + QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); } QString name() const { return tr("Compile Output"); } int priorityInStatusBar() const; void clearContents(); diff --git a/src/plugins/projectexplorer/outputwindow.h b/src/plugins/projectexplorer/outputwindow.h index 67f71e7c68540c1368a6d13209b4dfa585a77b50..7542269bfc54559ef1b597b891c0128c1aceeb2c 100644 --- a/src/plugins/projectexplorer/outputwindow.h +++ b/src/plugins/projectexplorer/outputwindow.h @@ -61,7 +61,7 @@ public: ~OutputPane(); QWidget *outputWidget(QWidget *); - QList<QWidget*> toolBarWidgets(void) const; + QList<QWidget*> toolBarWidgets() const; QString name() const; int priorityInStatusBar() const; void clearContents(); diff --git a/src/plugins/projectexplorer/removefiledialog.ui b/src/plugins/projectexplorer/removefiledialog.ui index 6f5ecee1d42e52360c849d3d409129fc638e1d74..2e0c072d86862759c6f0742b3311e7ba9ba4fdd4 100644 --- a/src/plugins/projectexplorer/removefiledialog.ui +++ b/src/plugins/projectexplorer/removefiledialog.ui @@ -2,13 +2,11 @@ <ui version="4.0"> <class>ProjectExplorer::Internal::RemoveFileDialog</class> <widget class="QDialog" name="ProjectExplorer::Internal::RemoveFileDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>237</width> - <height>171</height> - </rect> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> <property name="windowTitle"> <string>Remove File</string> @@ -16,13 +14,25 @@ <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QLabel" name="fileToDeleteLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> - <string>File to delete:</string> + <string>File to remove:</string> </property> </widget> </item> <item> <widget class="QLabel" name="fileNameLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="font"> <font> <family>Courier New</family> @@ -65,6 +75,12 @@ </item> <item> <widget class="QDialogButtonBox" name="buttonBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> @@ -75,27 +91,7 @@ </item> </layout> </widget> - <resources> - <include location="../../libs/cplusplus/cplusplus.qrc"/> - <include location="../../libs/extensionsystem/pluginview.qrc"/> - <include location="../bookmarks/bookmarks.qrc"/> - <include location="../coreplugin/core.qrc"/> - <include location="../coreplugin/fancyactionbar.qrc"/> - <include location="../cppeditor/cppeditor.qrc"/> - <include location="../cpptools/cpptools.qrc"/> - <include location="../designer/designer.qrc"/> - <include location="../find/find.qrc"/> - <include location="../gdbdebugger/gdbdebugger.qrc"/> - <include location="../help/help.qrc"/> - <include location="../perforce/perforce.qrc"/> - <include location="projectexplorer.qrc"/> - <include location="../../../shared/proparser/proparser.qrc"/> - <include location="../qt4projectmanager/qt4projectmanager.qrc"/> - <include location="../qt4projectmanager/wizards/wizards.qrc"/> - <include location="../quickopen/quickopen.qrc"/> - <include location="../resourceeditor/resourceeditor.qrc"/> - <include location="../texteditor/texteditor.qrc"/> - </resources> + <resources/> <connections> <connection> <sender>buttonBox</sender> diff --git a/src/plugins/projectexplorer/taskwindow.h b/src/plugins/projectexplorer/taskwindow.h index b76c158f1f45df41ca17c483d26617f70d9ac5cf..fffd6904e77cebc86de0ec6ed4f24b4d17d6c01b 100644 --- a/src/plugins/projectexplorer/taskwindow.h +++ b/src/plugins/projectexplorer/taskwindow.h @@ -56,7 +56,7 @@ public: ~TaskWindow(); QWidget *outputWidget(QWidget *); - QList<QWidget*> toolBarWidgets(void) const; + QList<QWidget*> toolBarWidgets() const; QString name() const { return tr("Build Issues"); } int priorityInStatusBar() const; diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp index f3cfed8002550f0edef83a514537cb94b12a440a..451b1b4a6c348a9688945f5a45f824c7ced38086 100644 --- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp @@ -226,7 +226,7 @@ QWidget *Qt4RunConfiguration::configurationWidget() void Qt4RunConfiguration::save(PersistentSettingsWriter &writer) const { - QDir projectDir(QFileInfo(project()->file()->fileName()).absoluteDir()); + const QDir projectDir = QFileInfo(project()->file()->fileName()).absoluteDir(); writer.saveValue("CommandLineArguments", m_commandLineArguments); writer.saveValue("ProFile", projectDir.relativeFilePath(m_proFilePath)); writer.saveValue("UserSetName", m_userSetName); @@ -238,7 +238,7 @@ void Qt4RunConfiguration::save(PersistentSettingsWriter &writer) const void Qt4RunConfiguration::restore(const PersistentSettingsReader &reader) { ApplicationRunConfiguration::restore(reader); - QDir projectDir(QFileInfo(project()->file()->fileName()).absoluteDir()); + const QDir projectDir = QFileInfo(project()->file()->fileName()).absoluteDir(); m_commandLineArguments = reader.restoreValue("CommandLineArguments").toStringList(); m_proFilePath = projectDir.filePath(reader.restoreValue("ProFile").toString()); m_userSetName = reader.restoreValue("UserSetName").toBool(); diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index a716fed9e2b1b18b7dc7ee18ec61bb1f10b9a8a5..fe4e3d4877051c09ae48ce6dc603f6093f909334 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -870,9 +870,12 @@ void QtVersion::setPath(const QString &path) QString QtVersion::dumperLibrary() const { uint hash = qHash(path()); + QString qtInstallData = versionInfo().value("QT_INSTALL_DATA"); + if (qtInstallData.isEmpty()) + qtInstallData = path(); QStringList directories; directories - << (path() + "/qtc-debugging-helper/") + << (qtInstallData + "/qtc-debugging-helper/") << (QApplication::applicationDirPath() + "/../qtc-debugging-helper/" + QString::number(hash)) + "/" << (QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash)) + "/"; foreach(const QString &directory, directories) { @@ -1375,6 +1378,12 @@ bool QtVersion::hasDebuggingHelper() const return m_hasDebuggingHelper; } + +// TODO buildDebuggingHelperLibrary needs to be accessible outside of the +// qt4versionmanager +// That probably means moving qt4version management into either the projectexplorer +// (The Projectexplorer plugin probably needs some splitting up, most of the stuff +// could be in a plugin shared by qt4projectmanager, cmakemanager and debugger.) QString QtVersion::buildDebuggingHelperLibrary() { // Locations to try: @@ -1384,9 +1393,12 @@ QString QtVersion::buildDebuggingHelperLibrary() QString output; uint hash = qHash(path()); + QString qtInstallData = versionInfo().value("QT_INSTALL_DATA"); + if (qtInstallData.isEmpty()) + qtInstallData = path(); QStringList directories; directories - << path() + "/qtc-debugging-helper/" + << qtInstallData + "/qtc-debugging-helper/" << QApplication::applicationDirPath() + "/../qtc-debugging-helper/" + QString::number(hash) +"/" << QDesktopServices::storageLocation (QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash) +"/"; @@ -1420,6 +1432,21 @@ QString QtVersion::buildDebuggingHelperLibrary() ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); addToEnvironment(env); + // TODO this is a hack to get, to be removed and rewritten for 1.2 + // + // For MSVC and MINGW, we need a toolchain to get the right environment + ProjectExplorer::ToolChain *toolChain = 0; + ProjectExplorer::ToolChain::ToolChainType t = toolchainType(); + if (t == ProjectExplorer::ToolChain::MinGW) + toolChain = ProjectExplorer::ToolChain::createMinGWToolChain("g++", mingwDirectory()); + else if(t == ProjectExplorer::ToolChain::MSVC) + toolChain = ProjectExplorer::ToolChain::createMSVCToolChain(msvcVersion()); + if (toolChain) { + toolChain->addToEnvironment(env); + delete toolChain; + toolChain = 0; + } + qmake.setEnvironment(env.toStringList()); qmake.setWorkingDirectory(directory); qmake.setProcessChannelMode(QProcess::MergedChannels); @@ -1437,7 +1464,6 @@ QString QtVersion::buildDebuggingHelperLibrary() // and think about how to fix that later QString make; - ProjectExplorer::ToolChain::ToolChainType t = toolchainType(); if (t == ProjectExplorer::ToolChain::MinGW) make = "mingw32-make.exe"; else if(t == ProjectExplorer::ToolChain::MSVC || t == ProjectExplorer::ToolChain::WINCE) diff --git a/src/plugins/qt4projectmanager/speinfo.cpp b/src/plugins/qt4projectmanager/speinfo.cpp index 8ab9d128373156059b6e1361d285fe435a4758f0..3367eea3137b3e2bd0fc7e3d81f44b00b83673ef 100644 --- a/src/plugins/qt4projectmanager/speinfo.cpp +++ b/src/plugins/qt4projectmanager/speinfo.cpp @@ -56,21 +56,21 @@ class InfoItemConfigurationCross : public SPEInfoItem { public: InfoItemConfigurationCross(): SPEInfoItem("", Configuration) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Debug and Release"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Debug and Release"); } }; class InfoItemConfigurationDebug : public SPEInfoItem { public: InfoItemConfigurationDebug(): SPEInfoItem("debug", Configuration) {} - QString name(void) const {return QCoreApplication::translate("SimpleProEditor", "Debug specific");} + QString name() const {return QCoreApplication::translate("SimpleProEditor", "Debug specific");} }; class InfoItemConfigurationRelease : public SPEInfoItem { public: InfoItemConfigurationRelease(): SPEInfoItem("release", Configuration) {} - QString name(void) const {return QCoreApplication::translate("SimpleProEditor", "Release specific");} + QString name() const {return QCoreApplication::translate("SimpleProEditor", "Release specific");} }; @@ -79,28 +79,28 @@ class InfoItemPlatformCross : public SPEInfoItem { public: InfoItemPlatformCross(): SPEInfoItem("", Platform) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "All platforms"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "All platforms"); } }; class InfoItemPlatformWindows : public SPEInfoItem { public: InfoItemPlatformWindows(): SPEInfoItem("win32", Platform) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "MS Windows specific"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "MS Windows specific"); } }; class InfoItemPlatformUnix : public SPEInfoItem { public: InfoItemPlatformUnix(): SPEInfoItem("unix", Platform) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Linux/Unix specific"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Linux/Unix specific"); } }; class InfoItemPlatformOSX : public SPEInfoItem { public: InfoItemPlatformOSX(): SPEInfoItem("macx", Platform) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Mac OSX specific"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Mac OSX specific"); } }; @@ -113,8 +113,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/target.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Target Options");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Target Options");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Type and name of the target."); @@ -129,8 +129,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/defines.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Preprocessor Definitions");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Preprocessor Definitions");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Setting of the preprocessor definitions."); @@ -146,8 +146,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/includes.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Include path"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Include path"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Setting of the pathes where the header files are located."); @@ -162,8 +162,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/libs.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Libraries");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Libraries");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Defining the libraries to link the target against and the pathes where these are located."); @@ -179,8 +179,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/sources.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Source Files");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Source Files");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", ""); @@ -196,8 +196,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/headers.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Header Files");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Header Files");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", ""); @@ -213,8 +213,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/forms.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Forms");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Forms");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", ""); @@ -229,8 +229,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/qtmodules.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Qt Modules");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Qt Modules");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Setting up which of the Qt modules will be used in the target application."); @@ -246,8 +246,8 @@ public: m_data.insert(keyImageFileName, ":/variableimages/images/resources.png"); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Resource files");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Resource files");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", ""); @@ -258,8 +258,8 @@ class InfoItemVariableTarget : public SPEInfoItem { public: InfoItemVariableTarget(): SPEInfoItem("TARGET", Variable) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Target name");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Target name");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", "The name of the resulting target."); @@ -270,8 +270,8 @@ class InfoItemVariableConfig : public SPEInfoItem { public: InfoItemVariableConfig(): SPEInfoItem("CONFIG", Variable) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Configuration");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Configuration");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Configuration."); @@ -282,8 +282,8 @@ class InfoItemVariableDestdir : public SPEInfoItem { public: InfoItemVariableDestdir(): SPEInfoItem("DESTDIR", Variable) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Destination directory");} - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Destination directory");} + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Where the resulting target will be created."); @@ -300,8 +300,8 @@ public: m_data.insert(keyIncludedByDefault, true); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtCore Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtCore Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Core non-GUI classes used by other modules"); @@ -316,8 +316,8 @@ public: m_data.insert(keyIncludedByDefault, true); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtGui Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtGui Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Graphical user interface components"); @@ -332,8 +332,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtNetwork Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtNetwork Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes for network programming"); @@ -348,8 +348,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtOpenGL Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtOpenGL Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "OpenGL support classes"); @@ -364,8 +364,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtSql Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtSql Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes for database integration using SQL"); @@ -380,8 +380,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtScript Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtScript Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes for evaluating Qt Scripts"); @@ -396,8 +396,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtSvg Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtSvg Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes for displaying the contents of SVG files"); @@ -412,8 +412,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtWebKit Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtWebKit Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes for displaying and editing Web content"); @@ -428,8 +428,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtXml Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtXml Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes for handling XML"); @@ -444,8 +444,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtXmlPatterns Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtXmlPatterns Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "An XQuery/XPath engine for XML and custom data models"); @@ -460,8 +460,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Phonon Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Phonon Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Multimedia framework classes"); @@ -476,8 +476,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Qt3Support Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Qt3Support Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes that ease porting from Qt 3 to Qt 4"); @@ -492,8 +492,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtTest Module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtTest Module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Tool classes for unit testing"); @@ -508,8 +508,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtDBus module"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtDBus module"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Classes for Inter-Process Communication using the D-Bus"); @@ -526,8 +526,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Application"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Application"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Create a standalone application"); @@ -542,8 +542,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Dynamic Library"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Dynamic Library"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Create a dynamic library for usage in other applications"); @@ -558,8 +558,8 @@ public: m_data.insert(keyIncludedByDefault, false); } - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Static Library"); } - QString description(void) const + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Static Library"); } + QString description() const { return QCoreApplication::translate("SimpleProEditor", "Create a static library for usage in other applications"); @@ -571,35 +571,35 @@ class InfoItemOperatorsAdd : public SPEInfoItem { public: InfoItemOperatorsAdd(): SPEInfoItem("+=", Operator) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Add Operator"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Add Operator"); } }; class InfoItemOperatorsRemove : public SPEInfoItem { public: InfoItemOperatorsRemove(): SPEInfoItem("-=", Operator) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Remove Operator"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Remove Operator"); } }; class InfoItemOperatorsReplace : public SPEInfoItem { public: InfoItemOperatorsReplace(): SPEInfoItem("~=", Operator) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Replace Operator"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Replace Operator"); } }; class InfoItemOperatorsSet : public SPEInfoItem { public: InfoItemOperatorsSet(): SPEInfoItem("=", Operator) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Set Operator"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Set Operator"); } }; class InfoItemOperatorsUniqueAdd : public SPEInfoItem { public: InfoItemOperatorsUniqueAdd(): SPEInfoItem("*=", Operator) {} - QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Unique Add Operator"); } + QString name() const { return QCoreApplication::translate("SimpleProEditor", "Unique Add Operator"); } }; @@ -625,7 +625,7 @@ QVariant SPEInfoItem::data(const QString &key) const return m_data.value(key); } -const SPEInfoItem *SPEInfoItem::parentItem(void) const +const SPEInfoItem *SPEInfoItem::parentItem() const { return m_parentItem; } @@ -651,7 +651,7 @@ QString SPEInfoItem::id() const return m_id; } -SPEInfoItem::InfoKind SPEInfoItem::infoKind(void) const +SPEInfoItem::InfoKind SPEInfoItem::infoKind() const { return m_infoKind; } @@ -686,7 +686,7 @@ void SPEInfo::addListToHash(const QList<SPEInfoItem*> &list) m_itemHash.insert(qMakePair(item->infoKind(), item->id()), item); } -void SPEInfo::initializeLists(void) +void SPEInfo::initializeLists() { InfoItemConfigurationCross *infoItemConfigurationCross = new InfoItemConfigurationCross; InfoItemConfigurationDebug *infoItemConfigurationDebug = new InfoItemConfigurationDebug; @@ -762,7 +762,7 @@ void SPEInfo::initializeLists(void) m_listsInitialized = true; } -void SPEInfo::deleteLists(void) +void SPEInfo::deleteLists() { m_itemHash.clear(); diff --git a/src/plugins/qt4projectmanager/speinfo.h b/src/plugins/qt4projectmanager/speinfo.h index 4a21ee9bc003ba2281fefc23348d23c81fd59472..a4395212916789b9b2ab6dec7d6e3e8708e9d76b 100644 --- a/src/plugins/qt4projectmanager/speinfo.h +++ b/src/plugins/qt4projectmanager/speinfo.h @@ -52,12 +52,12 @@ public: SPEInfoItem(const QString &id, InfoKind kind); virtual ~SPEInfoItem() {} - QString id(void) const; - InfoKind infoKind(void) const; - virtual QString name(void) const; - virtual QString description(void) const; + QString id() const; + InfoKind infoKind() const; + virtual QString name() const; + virtual QString description() const; QVariant data(const QString &key) const; - const SPEInfoItem *parentItem(void) const; + const SPEInfoItem *parentItem() const; void setParentItem(const SPEInfoItem *parentItem); bool isAncestorOf(const SPEInfoItem *ancestor) const; @@ -92,8 +92,8 @@ public: private: static void addListToHash(const QList<SPEInfoItem*> &list); - static void initializeLists(void); - static void deleteLists(void); + static void initializeLists(); + static void deleteLists(); static QList<SPEInfoItem*> m_configurationList; static QList<SPEInfoItem*> m_platformList; diff --git a/src/plugins/subversion/subversionoutputwindow.h b/src/plugins/subversion/subversionoutputwindow.h index 85d59afcbbdbf6b451034217f3f005fbea94fece..fc5b76eec46310347f8de6b35ca662b458e2d104 100644 --- a/src/plugins/subversion/subversionoutputwindow.h +++ b/src/plugins/subversion/subversionoutputwindow.h @@ -50,7 +50,7 @@ public: ~SubversionOutputWindow(); QWidget *outputWidget(QWidget *parent); - QList<QWidget*> toolBarWidgets(void) const { + QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); } diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp index 12e3ef9282520cf58b9af4c1625562085398df30..d1e4ce5c8fd4546a2294f63992b43e6ad5ffd55e 100644 --- a/src/plugins/texteditor/texteditorplugin.cpp +++ b/src/plugins/texteditor/texteditorplugin.cpp @@ -48,6 +48,7 @@ #include <coreplugin/editormanager/editormanager.h> #include <extensionsystem/pluginmanager.h> #include <texteditor/texteditoractionhandler.h> +#include <find/searchresultwindow.h> #include <utils/qtcassert.h> #include <QtCore/QtPlugin> @@ -63,7 +64,8 @@ TextEditorPlugin::TextEditorPlugin() : m_settings(0), m_wizard(0), m_editorFactory(0), - m_lineNumberFilter(0) + m_lineNumberFilter(0), + m_searchResultWindow(0) { QTC_ASSERT(!m_instance, return); m_instance = this; @@ -137,6 +139,13 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe void TextEditorPlugin::extensionsInitialized() { m_editorFactory->actionHandler()->initializeActions(); + + m_searchResultWindow = ExtensionSystem::PluginManager::instance()->getObject<Find::SearchResultWindow>(); + + connect(m_settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)), + this, SLOT(updateSearchResultsFont(TextEditor::FontSettings))); + + updateSearchResultsFont(m_settings->fontSettings()); } void TextEditorPlugin::initializeEditor(PlainTextEditor *editor) @@ -155,5 +164,10 @@ void TextEditorPlugin::invokeCompletion() editor->triggerCompletions(); } +void TextEditorPlugin::updateSearchResultsFont(const FontSettings &settings) +{ + if (m_searchResultWindow) + m_searchResultWindow->setTextEditorFont(QFont(settings.family(), settings.fontSize())); +} Q_EXPORT_PLUGIN(TextEditorPlugin) diff --git a/src/plugins/texteditor/texteditorplugin.h b/src/plugins/texteditor/texteditorplugin.h index 73fb4538bb0aef572adcf82c8aa8602eab789580..17f601dd24cf9651ae6ceec569331820769cb946 100644 --- a/src/plugins/texteditor/texteditorplugin.h +++ b/src/plugins/texteditor/texteditorplugin.h @@ -32,6 +32,10 @@ #include <extensionsystem/iplugin.h> +namespace Find { +class SearchResultWindow; +} + namespace TextEditor { class FontSettings; @@ -65,6 +69,7 @@ public: private slots: void invokeCompletion(); + void updateSearchResultsFont(const TextEditor::FontSettings &); private: static TextEditorPlugin *m_instance; @@ -72,6 +77,7 @@ private: TextFileWizard *m_wizard; PlainTextEditorFactory *m_editorFactory; LineNumberFilter *m_lineNumberFilter; + Find::SearchResultWindow *m_searchResultWindow; }; } // namespace Internal diff --git a/src/shared/qrceditor/qrceditor.cpp b/src/shared/qrceditor/qrceditor.cpp index 9a09761a23233a6aafe801909a9e5d8ca42daaa9..d6a16e41aa3c0d6b6de9927099595e2a79f00f17 100644 --- a/src/shared/qrceditor/qrceditor.cpp +++ b/src/shared/qrceditor/qrceditor.cpp @@ -177,6 +177,7 @@ void QrcEditor::resolveLocationIssues(QStringList &files) const QString dotdotSlash = QLatin1String("../"); int i = 0; int count = files.count(); + int initialCount = files.count(); // Find first troublesome file for (; i < count; i++) { @@ -213,10 +214,14 @@ void QrcEditor::resolveLocationIssues(QStringList &files) message.setWindowTitle(tr("Invalid file")); message.setIcon(QMessageBox::Warning); QPushButton * const copyButton = message.addButton(tr("Copy"), QMessageBox::ActionRole); - QPushButton * const skipButton = message.addButton(tr("Don't add"), QMessageBox::DestructiveRole); + QPushButton * skipButton = NULL; + if (initialCount > 1) + { + skipButton = message.addButton(tr("Skip"), QMessageBox::DestructiveRole); + message.setEscapeButton(skipButton); + } QPushButton * const abortButton = message.addButton(tr("Abort"), QMessageBox::RejectRole); message.setDefaultButton(copyButton); - message.setEscapeButton(skipButton); message.setText(tr("The file %1 is not in a subdirectory of the resource file. Continuing will result in an invalid resource file.") .arg(QDir::toNativeSeparators(file))); message.exec(); @@ -226,7 +231,12 @@ void QrcEditor::resolveLocationIssues(QStringList &files) i--; // Compensate i++ } else if (message.clickedButton() == copyButton) { const QFileInfo fi(file); - const QFileInfo suggestion(dir, fi.fileName()); + QFileInfo suggestion; + QDir tmpTarget(dir.path() + QString(QDir::separator()) + QString("Resources"));; + if (tmpTarget.exists()) + suggestion.setFile(tmpTarget, fi.fileName()); + else + suggestion.setFile(dir, fi.fileName()); const QString copyName = QFileDialog::getSaveFileName(this, tr("Choose copy location"), suggestion.absoluteFilePath()); if (!copyName.isEmpty()) { diff --git a/src/shared/qrceditor/resourceview.cpp b/src/shared/qrceditor/resourceview.cpp index 4ad1ad2900fbc3446c08ede0c7a46360860a92c7..c641082d9ff717b2a33fac55976f2309ceae6d60 100644 --- a/src/shared/qrceditor/resourceview.cpp +++ b/src/shared/qrceditor/resourceview.cpp @@ -199,9 +199,8 @@ ResourceView::ResourceView(QUndoStack *history, QWidget *parent) : enableContextMenu(true); } -ResourceView::~ResourceView(void) +ResourceView::~ResourceView() { - } void ResourceView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) @@ -477,7 +476,7 @@ void ResourceView::onEditAlias() changeAlias(index); } -bool ResourceView::load(QString fileName) +bool ResourceView::load(const QString &fileName) { const QFileInfo fi(fileName); m_qrcModel->setFileName(fi.absoluteFilePath()); @@ -488,7 +487,7 @@ bool ResourceView::load(QString fileName) return m_qrcModel->reload(); } -bool ResourceView::save(void) +bool ResourceView::save() { return m_qrcModel->save(); } diff --git a/src/shared/qrceditor/resourceview.h b/src/shared/qrceditor/resourceview.h index bd99cacc3400e0bf997bf04ff1b4ca2a1034477e..034aef16d7c0cd2db39a231e5351466b5d0880ac 100644 --- a/src/shared/qrceditor/resourceview.h +++ b/src/shared/qrceditor/resourceview.h @@ -84,10 +84,10 @@ public: }; ResourceView(QUndoStack *history, QWidget *parent = 0); - ~ResourceView(void); + ~ResourceView(); - bool load(QString fileName); - bool save(void); + bool load(const QString &fileName); + bool save(); QString fileName() const; void setFileName(const QString &fileName); @@ -114,9 +114,9 @@ public: bool defaultAddFileEnabled() const; void findSamePlacePostDeletionModelIndex(int &row, QModelIndex &parent) const; - EntryBackup * removeEntry(const QModelIndex &index); + EntryBackup *removeEntry(const QModelIndex &index); void addFiles(int prefixIndex, const QStringList &fileNames, int cursorFile, - int &firstFile, int &lastFile); + int &firstFile, int &lastFile); void removeFiles(int prefixIndex, int firstFileIndex, int lastFileIndex); QStringList fileNamesToAdd(); QModelIndex addPrefix(); @@ -158,8 +158,8 @@ public: void changeValue(const QModelIndex &nodeIndex, NodeProperty property, const QString &value); private: - void addUndoCommand(const QModelIndex &nodeIndex, NodeProperty property, const QString &before, - const QString &after); + void addUndoCommand(const QModelIndex &nodeIndex, NodeProperty property, + const QString &before, const QString &after); QPoint m_releasePos; diff --git a/tests/auto/fakevim/main.cpp b/tests/auto/fakevim/main.cpp index 700b25d63db3ca76dc35a322466a5c8163a8e2ce..b82f1a13bcb22769b586e2848939fc846dfde9e6 100644 --- a/tests/auto/fakevim/main.cpp +++ b/tests/auto/fakevim/main.cpp @@ -45,31 +45,35 @@ class tst_FakeVim : public QObject public: tst_FakeVim(); - void setup(); - void send(const QString &command); // send a normal command - void sendEx(const QString &command); // send an ex command - - QString cleaned(QString wanted) { wanted.remove('$'); return wanted; } - public slots: void changeStatusData(const QString &info) { m_statusData = info; } void changeStatusMessage(const QString &info) { m_statusMessage = info; } void changeExtraInformation(const QString &info) { m_infoMessage = info; } -public: - QString m_statusMessage; - QString m_statusData; - QString m_infoMessage; - private slots: void commandI(); void commandDollar(); + void commandDown(); + void commandUp(); private: + void setup(); + void send(const QString &command); // send a normal command + void sendEx(const QString &command); // send an ex command + + bool checkContentsHelper(QString expected, const char* file, int line); + bool checkHelper(bool isExCommand, QString cmd, QString expected, + const char* file, int line); + QString insertCursor(const QString &needle0); + QPlainTextEdit m_editor; FakeVimHandler m_handler; QList<QTextEdit::ExtraSelection> m_selection; + QString m_statusMessage; + QString m_statusData; + QString m_infoMessage; + static const QString lines; static const QString escape; }; @@ -91,7 +95,6 @@ const QString tst_FakeVim::escape = QChar(27); tst_FakeVim::tst_FakeVim() : m_handler(&m_editor, this) { - QObject::connect(&m_handler, SIGNAL(commandBufferChanged(QString)), this, SLOT(changeStatusMessage(QString))); QObject::connect(&m_handler, SIGNAL(extraInformationChanged(QString)), @@ -106,6 +109,12 @@ void tst_FakeVim::setup() m_statusData.clear(); m_infoMessage.clear(); m_editor.setPlainText(lines); + QTextCursor tc = m_editor.textCursor(); + tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor); + m_editor.setTextCursor(tc); + m_editor.setPlainText(lines); + //m_editor.show(); + //qApp->exec(); QCOMPARE(m_editor.toPlainText(), lines); } @@ -119,75 +128,118 @@ void tst_FakeVim::sendEx(const QString &command) m_handler.handleCommand(command); } -#define checkContents(wanted) \ - do { QString want = cleaned(wanted); \ - QString got = m_editor.toPlainText(); \ - QStringList wantlist = want.split('\n'); \ - QStringList gotlist = got.split('\n'); \ - QCOMPARE(gotlist.size(), wantlist.size()); \ - for (int i = 0; i < wantlist.size() && i < gotlist.size(); ++i) { \ - QString g = QString("line %1: %2").arg(i + 1).arg(gotlist.at(i)); \ - QString w = QString("line %1: %2").arg(i + 1).arg(wantlist.at(i)); \ - QCOMPARE(g, w); \ - } \ - } while (0) - -#define checkText(cmd, wanted) \ - do { \ - send(cmd); \ - checkContents(wanted); \ - int p = (wanted).indexOf('$'); \ - QCOMPARE(m_editor.textCursor().position(), p); \ - } while (0) - -#define checkTextEx(cmd, wanted) \ - do { \ - sendEx(cmd); \ - checkContents(wanted); \ - int p = (wanted).indexOf('$'); \ - QCOMPARE(m_editor.textCursor().position(), p); \ - } while (0) - -#define checkPosition(cmd, pos) \ - do { \ - send(cmd); \ - QCOMPARE(m_editor.textCursor().position(), pos); \ - } while (0) +bool tst_FakeVim::checkContentsHelper(QString want, const char* file, int line) +{ + QString got = m_editor.toPlainText(); + int pos = m_editor.textCursor().position(); + got = got.left(pos) + "@" + got.mid(pos); + QStringList wantlist = want.split('\n'); + QStringList gotlist = got.split('\n'); + if (!QTest::qCompare(gotlist.size(), wantlist.size(), "", "", file, line)) { + qDebug() << "WANT: " << want; + qDebug() << "GOT: " << got; + return false; + } + for (int i = 0; i < wantlist.size() && i < gotlist.size(); ++i) { + QString g = QString("line %1: %2").arg(i + 1).arg(gotlist.at(i)); + QString w = QString("line %1: %2").arg(i + 1).arg(wantlist.at(i)); + if (!QTest::qCompare(g, w, "", "", file, line)) { + qDebug() << "WANT: " << want; + qDebug() << "GOT: " << got; + return false; + } + } + return true; +} + +bool tst_FakeVim::checkHelper(bool ex, QString cmd, QString expected, + const char *file, int line) +{ + if (ex) + sendEx(cmd); + else + send(cmd); + return checkContentsHelper(expected, file, line); +} + + +#define checkContents(expected) \ + do { if (!checkContentsHelper(expected, __FILE__, __LINE__)) return; } while (0) + +// Runs a "normal" command and checks the result. +// Cursor position is marked by a '@' in the expected contents. +#define check(cmd, expected) \ + do { if (!checkHelper(false, cmd, expected, __FILE__, __LINE__)) \ + return; } while (0) + +// Runs an ex command and checks the result. +// Cursor position is marked by a '@' in the expected contents. +#define checkEx(cmd, expected) \ + do { if (!checkHelper(true, cmd, expected, __FILE__, __LINE__)) \ + return; } while (0) + +QString tst_FakeVim::insertCursor(const QString &needle0) +{ + QString needle = needle0; + needle.remove('@'); + QString lines0 = lines; + lines0.replace(needle, needle0); + //qDebug() << "LINES: " << lines0; + return lines0; +} void tst_FakeVim::commandI() { + return; setup(); // empty insertion at start of document - checkText("i" + escape, "$" + lines); - checkText("u", "$" + lines); + check("i" + escape, "@" + lines); + check("u", "@" + lines); // small insertion at start of document - checkText("ix" + escape, "$x" + lines); - checkText("u", "$" + lines); + check("ix" + escape, "@x" + lines); + check("u", "@" + lines); // small insertion at start of document - checkText("ixxx" + escape, "xx$x" + lines); - checkText("u", "$" + lines); + check("ixxx" + escape, "xx@x" + lines); + check("u", "@" + lines); // combine insertions - checkText("ia" + escape, "$a" + lines); - checkText("ibx" + escape, "b$xa" + lines); - checkText("icyy" + escape, "bcy$yxa" + lines); - checkText("u", "b$xa" + lines); - checkText("u", "$a" + lines); // undo broken - checkTextEx("redo", "b$xa" + lines); - checkText("u", "$a" + lines); - checkText("u", "$" + lines); + check("ia" + escape, "@a" + lines); + check("ibx" + escape, "b@xa" + lines); + check("icyy" + escape, "bcy@yxa" + lines); + check("u", "b@xa" + lines); + check("u", "@a" + lines); // undo broken + checkEx("redo", "b@xa" + lines); + check("u", "@a" + lines); + check("u", "@" + lines); } void tst_FakeVim::commandDollar() { setup(); - checkPosition("$", 0); - checkPosition("j", 2); + check("j$", insertCursor("<QtCore>@")); + //check("j", insertCursor("<QtGui>@")); +} + +void tst_FakeVim::commandDown() +{ + setup(); + check("j", insertCursor("@#include <QtCore")); + check("3j", insertCursor("@int main")); + check("4j", insertCursor("@ return app.exec()")); } +void tst_FakeVim::commandUp() +{ + setup(); + check("j", insertCursor("@#include <QtCore")); + check("3j", insertCursor("@int main")); + check("4j", insertCursor("@ return app.exec()")); +} + + QTEST_MAIN(tst_FakeVim) diff --git a/tests/manual/gdbdebugger/helper/helper.pro b/tests/manual/gdbdebugger/helper/helper.pro new file mode 100644 index 0000000000000000000000000000000000000000..57e1272b6554d893ea234b43daf6f75b05c5d696 --- /dev/null +++ b/tests/manual/gdbdebugger/helper/helper.pro @@ -0,0 +1,5 @@ + +TEMPLATE = app + +SOURCES += ../../../../share/qtcreator/gdbmacros/gdbmacros.cpp +SOURCES += main.cpp diff --git a/tests/manual/gdbdebugger/helper/main.cpp b/tests/manual/gdbdebugger/helper/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2c00c1278032ac64f67acaef3fe74297719ee043 --- /dev/null +++ b/tests/manual/gdbdebugger/helper/main.cpp @@ -0,0 +1,19 @@ + +#include <QApplication> + +extern "C" +void qDumpObjectData440( + int protocolVersion, + int token, + void *data, + bool dumpChildren, + int extraInt0, + int extraInt1, + int extraInt2, + int extraInt3); + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + return 0; +} diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp index 3cdc0518db6c994bef9a3f29dfd268bc2ccc9e2a..427cbf452fee6153b115b781928db7b21a6d356d 100644 --- a/tests/manual/gdbdebugger/simple/app.cpp +++ b/tests/manual/gdbdebugger/simple/app.cpp @@ -419,7 +419,7 @@ void testQObject(int &argc, char *argv[]) t += "y"; t += "y"; -/* +#if 1 QObject ob(&app); ob.setObjectName("An Object"); QObject ob1; @@ -434,7 +434,7 @@ void testQObject(int &argc, char *argv[]) obs.append(0); obs.append(&app); ob1.setObjectName("A Subobject"); -*/ +#endif QString str = QString::fromUtf8("XXXXXXXXXXXXXXyyXXX ö"); QLabel l(str); l.show(); diff --git a/tests/manual/gdbdebugger/simple/app/app.pro b/tests/manual/gdbdebugger/simple/app/app.pro index 2210857b6a2cf2a7adaafea0b08f739034cac8df..4de736cad4f9a702f020552f0b6bb8f338186047 100644 --- a/tests/manual/gdbdebugger/simple/app/app.pro +++ b/tests/manual/gdbdebugger/simple/app/app.pro @@ -6,6 +6,7 @@ DESTDIR = .. # Input SOURCES += ../app.cpp +#SOURCES += ../../../../../share/qtcreator/gdbmacros/gdbmacros.cpp QT += network message("this says <foo & bar>")