From 658a4d5a08a343a0c08f0cc1a113ccd5fc0d0ae3 Mon Sep 17 00:00:00 2001 From: rachytski Date: Wed, 3 Oct 2012 16:06:38 +0300 Subject: [PATCH] fixed compilation of EmacsMode plugin for QtCreator 2.5.2. --- tools/emacsmode/emacsmode.pluginspec | 8 +- tools/emacsmode/emacsmode.pro | 4 +- tools/emacsmode/emacsmodeplugin.cpp | 127 +++++++-------------------- 3 files changed, 40 insertions(+), 99 deletions(-) diff --git a/tools/emacsmode/emacsmode.pluginspec b/tools/emacsmode/emacsmode.pluginspec index 1f7e241306..dadfc12265 100644 --- a/tools/emacsmode/emacsmode.pluginspec +++ b/tools/emacsmode/emacsmode.pluginspec @@ -13,9 +13,9 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General Emacs-style keyboard navigation. - - - - + + + + diff --git a/tools/emacsmode/emacsmode.pro b/tools/emacsmode/emacsmode.pro index 3f66d94b84..4c71141c3d 100644 --- a/tools/emacsmode/emacsmode.pro +++ b/tools/emacsmode/emacsmode.pro @@ -1,5 +1,5 @@ -QTC_SOURCE = ../../../qt-creator-2.3.0-src -QTC_BUILD = ../../../qtcreator-build-desktop-release +QTC_SOURCE = ../../../qt-creator-2.5.2-src +QTC_BUILD = ../../../qtcreator-build-release TEMPLATE = lib TARGET = EmacsMode diff --git a/tools/emacsmode/emacsmodeplugin.cpp b/tools/emacsmode/emacsmodeplugin.cpp index a7dd79face..59b80dd8cc 100644 --- a/tools/emacsmode/emacsmodeplugin.cpp +++ b/tools/emacsmode/emacsmodeplugin.cpp @@ -31,38 +31,53 @@ #include "emacsmodehandler.h" - - -#include #include +#include #include +#include +#include #include -#include -#include -#include #include +#include +#include +#include +#include +#include #include -#include -#include +#include +#include +#include #include -#include #include #include #include -//#include #include +#include #include -#include +#include #include #include -//#include +#include +#include +#include +#include +#include +#include #include #include +#include #include +#include +#include +#include + +#include + +#include #include #include @@ -139,23 +154,6 @@ QWidget *EmacsModeOptionPage::createPage(QWidget *parent) void EmacsModeOptionPage::copyTextEditorSettings() { - TabSettings ts = TextEditorSettings::instance()->tabPreferences()->settings(); - - /* m_ui.checkBoxExpandTab->setChecked(ts.m_spacesForTabs); - m_ui.spinBoxTabStop->setValue(ts.m_tabSize); - m_ui.spinBoxShiftWidth->setValue(ts.m_indentSize); - m_ui.checkBoxSmartTab->setChecked(ts.m_smartBackspace); - m_ui.checkBoxAutoIndent->setChecked(true); - m_ui.checkBoxSmartIndent->setChecked(ts.m_autoIndent); - m_ui.checkBoxIncSearch->setChecked(true); - */ - m_ui.checkBoxExpandTab->setChecked(ts.m_spacesForTabs); - m_ui.lineEditTabStop->setText(QString::number(ts.m_tabSize)); - m_ui.lineEditShiftWidth->setText(QString::number(ts.m_indentSize)); - m_ui.checkBoxSmartTab->setChecked(ts.m_smartBackspace); - m_ui.checkBoxAutoIndent->setChecked(ts.m_autoIndent); - // FIXME: Not present in core - //m_ui.checkBoxIncSearch->setChecked(ts.m_incSearch); } void EmacsModeOptionPage::setQtStyle() @@ -215,15 +213,11 @@ bool EmacsModePluginPrivate::initialize() m_actionManager = core()->actionManager(); QTC_ASSERT(actionManager(), return false); -// m_wordCompletion = new WordCompletion; -// q->addAutoReleasedObject(m_wordCompletion); - Context globalcontext(Core::Constants::C_GLOBAL); m_emacsModeOptionsPage = new EmacsModeOptionPage; q->addObject(m_emacsModeOptionsPage); -// theEmacsModeSettings()->readSettings(Core::ICore::instance()->settings()); readSettings(); Core::Command *cmd = 0; @@ -235,17 +229,12 @@ bool EmacsModePluginPrivate::initialize() actionManager()->actionContainer(Core::Constants::M_EDIT_ADVANCED); advancedMenu->addAction(cmd, Core::Constants::G_EDIT_EDITOR); - connect(m_core, SIGNAL(coreAboutToClose()), this, SLOT(onCoreAboutToClose())); - - // EditorManager connect(editorManager(), SIGNAL(editorAboutToClose(Core::IEditor*)), this, SLOT(editorAboutToClose(Core::IEditor*))); connect(editorManager(), SIGNAL(editorOpened(Core::IEditor*)), this, SLOT(editorOpened(Core::IEditor*))); -// connect(theEmacsModeSetting(SettingsDialog), SIGNAL(triggered()), -// this, SLOT(showSettingsDialog())); connect(theEmacsModeSetting(ConfigUseEmacsMode), SIGNAL(valueChanged(QVariant)), this, SLOT(setUseEmacsMode(QVariant))); @@ -254,9 +243,6 @@ bool EmacsModePluginPrivate::initialize() this, SLOT(handleDelayedQuit(bool,Core::IEditor*)), Qt::QueuedConnection); connect(this, SIGNAL(delayedQuitAllRequested(bool)), this, SLOT(handleDelayedQuitAll(bool)), Qt::QueuedConnection); -// maybeReadVimRc(); - // << "MODE: " << theFakeVimSetting(ConfigUseFakeVim)->value(); - } void EmacsModePluginPrivate::readSettings() @@ -284,13 +270,13 @@ void EmacsModePluginPrivate::showSettingsDialog() void EmacsModePluginPrivate::triggerAction(const QString& code) { - Core::ActionManager *am = Core::ICore::instance()->actionManager(); + /*Core::ActionManager *am = Core::ICore::instance()->actionManager(); QTC_ASSERT(am, return); Core::Command *cmd = am->command(code); QTC_ASSERT(cmd, return); QAction *action = cmd->action(); QTC_ASSERT(action, return); - action->trigger(); + action->trigger();*/ } void EmacsModePluginPrivate::windowCommand(int key) @@ -384,7 +370,7 @@ void EmacsModePluginPrivate::editorOpened(Core::IEditor *editor) connect(handler, SIGNAL(handleExCommandRequested(QString)), this, SLOT(handleExCommand(QString))); - handler->setCurrentFileName(editor->file()->fileName()); + handler->setCurrentFileName(editor->document()->fileName()); handler->installEventFilter(); // pop up the bar @@ -439,59 +425,15 @@ void EmacsModePluginPrivate::writeFile(bool *handled, return; Core::IEditor *editor = m_editorToHandler.key(handler); - if (editor && editor->file()->fileName() == fileName) { - // Handle that as a special case for nicer interaction with core - Core::IFile *file = editor->file(); - Core::ICore::instance()->fileManager()->saveFile(file);/*blockFileChange(file); - file->save(fileName); - Core::ICore::instance()->fileManager()->unblockFileChange(file);*/ + if (editor && editor->document()->fileName() == fileName) { + DocumentManager::saveDocument(editor->document()); + *handled = true; } } void EmacsModePluginPrivate::handleExCommand(const QString &cmd) { - static QRegExp reNextFile("^n(ext)?!?( (.*))?$"); - static QRegExp rePreviousFile("^(N(ext)?|prev(ious)?)!?( (.*))?$"); - static QRegExp reWriteAll("^wa(ll)?!?$"); - static QRegExp reQuit("^q!?$"); - static QRegExp reQuitAll("^qa!?$"); - - using namespace Core; - - EmacsModeHandler *handler = qobject_cast(sender()); - if (!handler) - return; - - EditorManager *editorManager = EditorManager::instance(); - QTC_ASSERT(editorManager, return); - - if (reNextFile.indexIn(cmd) != -1) { - // :n - editorManager->goForwardInNavigationHistory(); - } else if (rePreviousFile.indexIn(cmd) != -1) { - // :N, :prev - editorManager->goBackInNavigationHistory(); - } else if (reWriteAll.indexIn(cmd) != -1) { - // :wa - FileManager *fm = ICore::instance()->fileManager(); - QList toSave = fm->modifiedFiles(); - QList failed = fm->saveModifiedFilesSilently(toSave); - if (failed.isEmpty()) - handler->showBlackMessage(tr("Saving succeeded")); - else - handler->showRedMessage(tr("%n files not saved", 0, failed.size())); - } else if (reQuit.indexIn(cmd) != -1) { - // :q - bool forced = cmd.contains(QChar('!')); - emit delayedQuitRequested(forced, m_editorToHandler.key(handler)); - } else if (reQuitAll.indexIn(cmd) != -1) { - // :qa - bool forced = cmd.contains(QChar('!')); - emit delayedQuitAllRequested(forced); - } else { - handler->showRedMessage(tr("Not an editor command: %1").arg(cmd)); - } } void EmacsModePluginPrivate::handleDelayedQuit(bool forced, Core::IEditor *editor) @@ -557,7 +499,6 @@ void EmacsModePluginPrivate::indentRegion(int *amount, int beginLine, int endLin TabSettings tabSettings; tabSettings.m_indentSize = theEmacsModeSetting(ConfigShiftWidth)->value().toInt(); tabSettings.m_tabSize = theEmacsModeSetting(ConfigTabStop)->value().toInt(); - tabSettings.m_spacesForTabs = theEmacsModeSetting(ConfigExpandTab)->value().toBool(); bt->setTabSettings(tabSettings); QTextDocument *doc = bt->document(); @@ -575,7 +516,7 @@ void EmacsModePluginPrivate::indentRegion(int *amount, int beginLine, int endLin while (!cursor.atBlockEnd()) cursor.deleteChar(); } else { - bt->indenter()->indentBlock(doc, block, typedChar, bt); + bt->indenter()->indentBlock(doc, block, typedChar, tabSettings); } block = block.next(); }