diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index 251655ba7a1b6cb3f2bc6024a9a190dc641941cf..cf44f63885dc7dfecc0e76a9667ce0905f5af944 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -195,6 +195,14 @@ public: return QLatin1String(Constants::C_BINEDITOR_MIMETYPE); } + bool setContents(const QByteArray &contents) + { + if (!contents.isEmpty()) + return false; + m_widget->clear(); + return true; + } + bool save(QString *errorString, const QString &fn, bool autoSave) { QTC_ASSERT(!autoSave, return true); // bineditor does not support autosave - it would be a bit expensive @@ -342,11 +350,6 @@ public: delete m_widget; } - bool createNew(const QString & /* contents */ = QString()) { - m_widget->clear(); - m_file->setFilePath(QString()); - return true; - } bool open(QString *errorString, const QString &fileName, const QString &realFileName) { QTC_ASSERT(fileName == realFileName, return false); // The bineditor can do no autosaving return m_file->open(errorString, fileName); diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 8019652691d3c64f2222df20f59516a9cae84c4b..baf323a54bb205cb717fc1c67b8a4ff69d3181df 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -929,7 +929,7 @@ void ClearCasePlugin::ccDiffWithPred(const QString &workingDir, const QStringLis if (files.count() == 1) { // Show in the same editor if diff has been executed before if (Core::IEditor *existingEditor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - existingEditor->createNew(result); + existingEditor->document()->setContents(result.toUtf8()); Core::EditorManager::activateEditor(existingEditor); setDiffBaseDirectory(existingEditor, workingDir); return; @@ -1189,7 +1189,7 @@ void ClearCasePlugin::history(const QString &workingDir, const QString id = VcsBase::VcsBaseEditorWidget::getTitleId(workingDir, files); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, files); if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(response.stdOut); + editor->document()->setContents(response.stdOut.toUtf8()); Core::EditorManager::activateEditor(editor); } else { const QString title = QString::fromLatin1("cc history %1").arg(id); @@ -1301,7 +1301,7 @@ void ClearCasePlugin::vcsAnnotate(const QString &workingDir, const QString &file const QStringList files = QStringList(file); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::AnnotateOutput, workingDir, files); if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(res); + editor->document()->setContents(res.toUtf8()); VcsBase::VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber); Core::EditorManager::activateEditor(editor); } else { @@ -1338,7 +1338,7 @@ void ClearCasePlugin::describe(const QString &source, const QString &changeNr) // the common usage pattern of continuously changing and diffing a file const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, source, QStringList(), changeNr); if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(description); + editor->document()->setContents(description.toUtf8()); Core::EditorManager::activateEditor(editor); } else { const QString title = QString::fromLatin1("cc describe %1").arg(id); @@ -1397,7 +1397,7 @@ Core::IEditor *ClearCasePlugin::showOutputInEditor(const QString& title, const Q qDebug() << "ClearCasePlugin::showOutputInEditor" << title << id.name() << "Size= " << output.size() << " Type=" << editorType << debugCodec(codec); QString s = title; - Core::IEditor *editor = Core::EditorManager::openEditorWithContents(id, &s, output); + Core::IEditor *editor = Core::EditorManager::openEditorWithContents(id, &s, output.toUtf8()); connect(editor, SIGNAL(annotateRevisionRequested(QString,QString,int)), this, SLOT(annotateVersion(QString,QString,int))); ClearCaseEditor *e = qobject_cast<ClearCaseEditor*>(editor->widget()); diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 6cc7a85bf0bab00734e57fb69d7ef7a3a0b408a5..cde356c18e9c408962a7eddc83306d5a21f121bb 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1627,7 +1627,7 @@ QStringList EditorManager::getOpenFileNames() const IEditor *EditorManager::openEditorWithContents(const Id &editorId, QString *titlePattern, - const QString &contents) + const QByteArray &contents) { if (debugEditorManager) qDebug() << Q_FUNC_INFO << editorId.name() << titlePattern << contents; @@ -1669,7 +1669,7 @@ IEditor *EditorManager::openEditorWithContents(const Id &editorId, return 0; } - if (!edt->createNew(contents)) { + if (!edt->document()->setContents(contents)) { QApplication::restoreOverrideCursor(); delete edt; edt = 0; diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h index 9836d565631e1162c13f8325ba794139188cd3d7..ad7a091821e83a94d2a82a2abaf7cb24093c24f3 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.h +++ b/src/plugins/coreplugin/editormanager/editormanager.h @@ -115,7 +115,7 @@ public: const Id &editorId = Id(), OpenEditorFlags flags = 0, bool *newEditor = 0); static IEditor *openEditorWithContents(const Id &editorId, - QString *titlePattern = 0, const QString &contents = QString()); + QString *titlePattern = 0, const QByteArray &contents = QByteArray()); static bool openExternalEditor(const QString &fileName, const Id &editorId); diff --git a/src/plugins/coreplugin/editormanager/ieditor.h b/src/plugins/coreplugin/editormanager/ieditor.h index ca36b092ba1b6b47b2b4a907a69d06e471c4b577..af9252321733b74934e9b47dab1b226d7b87375b 100644 --- a/src/plugins/coreplugin/editormanager/ieditor.h +++ b/src/plugins/coreplugin/editormanager/ieditor.h @@ -47,7 +47,6 @@ public: IEditor(QObject *parent = 0) : IContext(parent) {} virtual ~IEditor() {} - virtual bool createNew(const QString &contents = QString()) = 0; virtual bool open(QString *errorString, const QString &fileName, const QString &realFileName) = 0; virtual IDocument *document() = 0; virtual Core::Id id() const = 0; diff --git a/src/plugins/coreplugin/idocument.cpp b/src/plugins/coreplugin/idocument.cpp index 9b4ce965b71446bd978be4f5a6b3cc3d65acc445..3d1f9e82dca46e2fbf5f80eb4882ba8affaeb758 100644 --- a/src/plugins/coreplugin/idocument.cpp +++ b/src/plugins/coreplugin/idocument.cpp @@ -57,6 +57,18 @@ IDocument::~IDocument() delete m_infoBar; } +/*! + Used for example by EditorManager::openEditorWithContents() to set the contents + of this document. + Returns if setting the contents was successful. + The base implementation does nothing and returns false. +*/ +bool IDocument::setContents(const QByteArray &contents) +{ + Q_UNUSED(contents) + return false; +} + IDocument::ReloadBehavior IDocument::reloadBehavior(ChangeTrigger state, ChangeType type) const { if (type == TypePermissions) diff --git a/src/plugins/coreplugin/idocument.h b/src/plugins/coreplugin/idocument.h index d257626a17c1e69028f636cb03601c768fd3092c..3178268389882d3d21abfd901f5686e035feec6d 100644 --- a/src/plugins/coreplugin/idocument.h +++ b/src/plugins/coreplugin/idocument.h @@ -82,6 +82,8 @@ public: virtual ~IDocument(); virtual bool save(QString *errorString, const QString &fileName = QString(), bool autoSave = false) = 0; + virtual bool setContents(const QByteArray &contents); + QString filePath() const { return m_filePath; } virtual void setFilePath(const QString &filePath); QString displayName() const; diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index 75e49af81f05e8e25461a421d1f35796ee097395..d29efd5af6b8fb2bd581c8e123d9c45861d981f9 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -591,7 +591,7 @@ void CvsPlugin::cvsDiff(const CvsDiffParameters &p) // Show in the same editor if diff has been executed before const QString tag = VcsBaseEditorWidget::editorTag(DiffOutput, p.workingDir, p.files); if (IEditor *existingEditor = VcsBaseEditorWidget::locateEditorByTag(tag)) { - existingEditor->createNew(output); + existingEditor->document()->setContents(output.toUtf8()); EditorManager::activateEditor(existingEditor); setDiffBaseDirectory(existingEditor, p.workingDir); return; @@ -859,7 +859,7 @@ void CvsPlugin::filelog(const QString &workingDir, // the common usage pattern of continuously changing and diffing a file const QString tag = VcsBaseEditorWidget::editorTag(LogOutput, workingDir, files); if (Core::IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(response.stdOut); + editor->document()->setContents(response.stdOut.toUtf8()); Core::EditorManager::activateEditor(editor); } else { const QString title = QString::fromLatin1("cvs log %1").arg(id); @@ -1001,7 +1001,7 @@ void CvsPlugin::annotate(const QString &workingDir, const QString &file, const QString tag = VcsBaseEditorWidget::editorTag(AnnotateOutput, workingDir, QStringList(file), revision); if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(response.stdOut); + editor->document()->setContents(response.stdOut.toUtf8()); VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber); EditorManager::activateEditor(editor); } else { @@ -1197,7 +1197,7 @@ bool CvsPlugin::describe(const QString &repositoryPath, // the common usage pattern of continuously changing and diffing a file const QString commitId = entries.front().revisions.front().commitId; if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(commitId)) { - editor->createNew(output); + editor->document()->setContents(output.toUtf8()); EditorManager::activateEditor(editor); setDiffBaseDirectory(editor, repositoryPath); } else { @@ -1270,7 +1270,7 @@ IEditor *CvsPlugin::showOutputInEditor(const QString& title, const QString &outp qDebug() << "CVSPlugin::showOutputInEditor" << title << id.name() << "source=" << source << "Size= " << output.size() << " Type=" << editorType << debugCodec(codec); QString s = title; - IEditor *editor = EditorManager::openEditorWithContents(id, &s, output); + IEditor *editor = EditorManager::openEditorWithContents(id, &s, output.toUtf8()); connect(editor, SIGNAL(annotateRevisionRequested(QString,QString,int)), this, SLOT(vcsAnnotate(QString,QString,int))); CvsEditor *e = qobject_cast<CvsEditor*>(editor->widget()); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index f31de7d97748d0018694ac799abed8bdded59b6e..2de263e2027fef4640233ef7b051b67c7dc47438 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -2530,7 +2530,7 @@ void DebuggerPluginPrivate::openTextEditor(const QString &titlePattern0, return; QString titlePattern = titlePattern0; IEditor *editor = EditorManager::openEditorWithContents( - CC::K_DEFAULT_TEXT_EDITOR_ID, &titlePattern, contents); + CC::K_DEFAULT_TEXT_EDITOR_ID, &titlePattern, contents.toUtf8()); QTC_ASSERT(editor, return); EditorManager::activateEditor(editor, EditorManager::IgnoreNavigationHistory); } diff --git a/src/plugins/debugger/sourceagent.cpp b/src/plugins/debugger/sourceagent.cpp index daa966204a70de2be87876662837cd7618df0655..fcf4b4ca59abaa6570e6f1f7fe71b3652479b979 100644 --- a/src/plugins/debugger/sourceagent.cpp +++ b/src/plugins/debugger/sourceagent.cpp @@ -115,7 +115,7 @@ void SourceAgent::setContent(const QString &filePath, const QString &content) d->editor = qobject_cast<ITextEditor *>( EditorManager::openEditorWithContents( CppEditor::Constants::CPPEDITOR_ID, - &titlePattern, content)); + &titlePattern, content.toUtf8())); QTC_ASSERT(d->editor, return); d->editor->document()->setProperty(Debugger::Constants::OPENED_BY_DEBUGGER, true); diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp index 60c83dd585b79724adf82b7a666426deffafd997..dd6f24aed652de4e1dd2c16f16ee882bc3d518e8 100644 --- a/src/plugins/designer/formwindoweditor.cpp +++ b/src/plugins/designer/formwindoweditor.cpp @@ -38,16 +38,10 @@ #include <utils/qtcassert.h> -#if QT_VERSION >= 0x050000 -# include <QDesignerFormWindowInterface> -# include <QBuffer> -#else -# include "qt_private/formwindowbase_p.h" -#endif - +#include <QBuffer> #include <QDebug> +#include <QDesignerFormWindowInterface> #include <QFileInfo> -#include <QApplication> namespace Designer { @@ -74,47 +68,6 @@ FormWindowEditor::~FormWindowEditor() delete d; } -bool FormWindowEditor::createNew(const QString &contents) -{ - if (Designer::Constants::Internal::debug) - qDebug() << "FormWindowEditor::createNew" << contents.size(); - - syncXmlEditor(QString()); - - QDesignerFormWindowInterface *form = d->m_widget->formWindowFile()->formWindow(); - QTC_ASSERT(form, return false); - - if (contents.isEmpty()) - return false; - - // If we have an override cursor, reset it over Designer loading, - // should it pop up messages about missing resources or such. - const bool hasOverrideCursor = QApplication::overrideCursor(); - QCursor overrideCursor; - if (hasOverrideCursor) { - overrideCursor = QCursor(*QApplication::overrideCursor()); - QApplication::restoreOverrideCursor(); - } - -#if QT_VERSION >= 0x050000 - const bool success = form->setContents(contents); -#else - form->setContents(contents); - const bool success = form->mainContainer() != 0; -#endif - - if (hasOverrideCursor) - QApplication::setOverrideCursor(overrideCursor); - - if (!success) - return false; - - syncXmlEditor(contents); - d->m_widget->formWindowFile()->setFilePath(QString()); - d->m_widget->formWindowFile()->setShouldAutoSave(false); - return true; -} - void FormWindowEditor::slotOpen(QString *errorString, const QString &fileName) { open(errorString, fileName, fileName); @@ -152,7 +105,7 @@ bool FormWindowEditor::open(QString *errorString, const QString &fileName, const return false; #endif form->setDirty(fileName != realFileName); - syncXmlEditor(contents); + d->m_widget->formWindowFile()->syncXmlFromFormWindow(); d->m_widget->formWindowFile()->setFilePath(absfileName); d->m_widget->formWindowFile()->setShouldAutoSave(false); @@ -167,12 +120,7 @@ void FormWindowEditor::syncXmlEditor() { if (Designer::Constants::Internal::debug) qDebug() << "FormWindowEditor::syncXmlEditor" << d->m_widget->formWindowFile()->filePath(); - syncXmlEditor(contents()); -} - -void FormWindowEditor::syncXmlEditor(const QString &contents) -{ - editorWidget()->document()->setPlainText(contents); + d->m_widget->formWindowFile()->syncXmlFromFormWindow(); } Core::Id FormWindowEditor::id() const @@ -187,17 +135,7 @@ QWidget *FormWindowEditor::toolBar() QString FormWindowEditor::contents() const { -#if QT_VERSION >= 0x050000 // TODO: No warnings about spacers here - const QDesignerFormWindowInterface *fw = d->m_widget->formWindowFile()->formWindow(); - QTC_ASSERT(fw, return QString()); - return fw->contents(); -#else - // No warnings about spacers here - const qdesigner_internal::FormWindowBase *fw = - qobject_cast<const qdesigner_internal::FormWindowBase *>(d->m_widget->formWindowFile()->formWindow()); - QTC_ASSERT(fw, return QString()); - return fw->fileContents(); -#endif + return d->m_widget->formWindowFile()->formWindowContents(); } bool FormWindowEditor::isDesignModePreferred() const diff --git a/src/plugins/designer/formwindoweditor.h b/src/plugins/designer/formwindoweditor.h index 8188bcb736fb7eb5db8ae1b89a039990bf6d10d0..a2f0549d869dcf5f309c2276f7a0d062571929b7 100644 --- a/src/plugins/designer/formwindoweditor.h +++ b/src/plugins/designer/formwindoweditor.h @@ -66,7 +66,6 @@ public: virtual ~FormWindowEditor(); // IEditor - virtual bool createNew(const QString &contents = QString()); virtual bool open(QString *errorString, const QString &fileName, const QString &realFileName); virtual Core::Id id() const; @@ -84,8 +83,6 @@ private slots: void slotOpen(QString *errorString, const QString &fileName); private: - void syncXmlEditor(const QString &contents); - FormWindowEditorPrivate *d; }; diff --git a/src/plugins/designer/formwindowfile.cpp b/src/plugins/designer/formwindowfile.cpp index 3a91695dfdd2ba7d23f75fb06811127a74e795e5..45a966569fda5e72c22024b7381c2a4e47ee7d11 100644 --- a/src/plugins/designer/formwindowfile.cpp +++ b/src/plugins/designer/formwindowfile.cpp @@ -32,13 +32,16 @@ #include <utils/qtcassert.h> +#include <QApplication> #include <QDesignerFormWindowInterface> #include <QDesignerFormWindowManagerInterface> #include <QDesignerFormEditorInterface> #if QT_VERSION < 0x050000 # include "qt_private/qsimpleresource_p.h" +# include "qt_private/formwindowbase_p.h" #endif +#include <QTextDocument> #include <QUndoStack> #include <QFileInfo> @@ -103,6 +106,45 @@ bool FormWindowFile::save(QString *errorString, const QString &name, bool autoSa return true; } +bool FormWindowFile::setContents(const QByteArray &contents) +{ + if (Designer::Constants::Internal::debug) + qDebug() << Q_FUNC_INFO << contents.size(); + + document()->setPlainText(QString()); + + QTC_ASSERT(m_formWindow, return false); + + if (contents.isEmpty()) + return false; + + // If we have an override cursor, reset it over Designer loading, + // should it pop up messages about missing resources or such. + const bool hasOverrideCursor = QApplication::overrideCursor(); + QCursor overrideCursor; + if (hasOverrideCursor) { + overrideCursor = QCursor(*QApplication::overrideCursor()); + QApplication::restoreOverrideCursor(); + } + +#if QT_VERSION >= 0x050000 + const bool success = m_formWindow->setContents(QString::fromUtf8(contents)); +#else + m_formWindow->setContents(QString::fromUtf8(contents)); + const bool success = m_formWindow->mainContainer() != 0; +#endif + + if (hasOverrideCursor) + QApplication::setOverrideCursor(overrideCursor); + + if (!success) + return false; + + syncXmlFromFormWindow(); + setShouldAutoSave(false); + return true; +} + void FormWindowFile::setFilePath(const QString &newName) { m_formWindow->setFileName(newName); @@ -184,6 +226,25 @@ QDesignerFormWindowInterface *FormWindowFile::formWindow() const return m_formWindow; } +void FormWindowFile::syncXmlFromFormWindow() +{ + document()->setPlainText(formWindowContents()); +} + +QString FormWindowFile::formWindowContents() const +{ +#if QT_VERSION >= 0x050000 // TODO: No warnings about spacers here + QTC_ASSERT(m_formWindow, return QString()); + return m_formWindow->contents(); +#else + // No warnings about spacers here + const qdesigner_internal::FormWindowBase *fw = + qobject_cast<const qdesigner_internal::FormWindowBase *>(m_formWindow); + QTC_ASSERT(fw, return QString()); + return fw->fileContents(); +#endif +} + void FormWindowFile::slotFormWindowRemoved(QDesignerFormWindowInterface *w) { // Release formwindow as soon as the FormWindowManager removes diff --git a/src/plugins/designer/formwindowfile.h b/src/plugins/designer/formwindowfile.h index 351e1357e1456d9b9750d6294b29fc4008e40c11..6edbc37418e9a728c2c3466d44c6ed45dc93f584 100644 --- a/src/plugins/designer/formwindowfile.h +++ b/src/plugins/designer/formwindowfile.h @@ -51,14 +51,15 @@ public: ~FormWindowFile() { } // IDocument - virtual bool save(QString *errorString, const QString &fileName, bool autoSave); - virtual bool shouldAutoSave() const; - virtual bool isModified() const; - virtual bool isSaveAsAllowed() const; + bool save(QString *errorString, const QString &fileName, bool autoSave); + bool setContents(const QByteArray &contents); + bool shouldAutoSave() const; + bool isModified() const; + bool isSaveAsAllowed() const; bool reload(QString *errorString, ReloadFlag flag, ChangeType type); - virtual QString defaultPath() const; - virtual QString suggestedFileName() const; - virtual QString mimeType() const; + QString defaultPath() const; + QString suggestedFileName() const; + QString mimeType() const; // Internal void setSuggestedFileName(const QString &fileName); @@ -66,6 +67,8 @@ public: bool writeFile(const QString &fileName, QString *errorString) const; QDesignerFormWindowInterface *formWindow() const; + void syncXmlFromFormWindow(); + QString formWindowContents() const; signals: // Internal diff --git a/src/plugins/diffeditor/diffeditor.cpp b/src/plugins/diffeditor/diffeditor.cpp index d51c44997fba3eda8818a375ec75cdfea65a6229..4d06370d8717a7d6a3a11badd7ee3f8d8bc6f8b3 100644 --- a/src/plugins/diffeditor/diffeditor.cpp +++ b/src/plugins/diffeditor/diffeditor.cpp @@ -67,12 +67,6 @@ DiffEditor::~DiffEditor() delete m_widget; } -bool DiffEditor::createNew(const QString &contents) -{ - Q_UNUSED(contents) - return true; -} - bool DiffEditor::open(QString *errorString, const QString &fileName, const QString &realFileName) { Q_UNUSED(errorString) diff --git a/src/plugins/diffeditor/diffeditor.h b/src/plugins/diffeditor/diffeditor.h index c8f49444077b803dafacaab8713dee9fc355d316..0b469b4c79454f9d32057511e02a6e32456e11b2 100644 --- a/src/plugins/diffeditor/diffeditor.h +++ b/src/plugins/diffeditor/diffeditor.h @@ -60,7 +60,6 @@ public: void clear(const QString &message); // Core::IEditor - bool createNew(const QString &contents); bool open(QString *errorString, const QString &fileName, const QString &realFileName); Core::IDocument *document(); Core::Id id() const; diff --git a/src/plugins/diffeditor/diffeditorfile.cpp b/src/plugins/diffeditor/diffeditorfile.cpp index 7a52f708426eb79a595dba892f55cafffa29386b..6e9bc622ca4d546a510beb8cd129b873c14eb92d 100644 --- a/src/plugins/diffeditor/diffeditorfile.cpp +++ b/src/plugins/diffeditor/diffeditorfile.cpp @@ -46,6 +46,12 @@ DiffEditorFile::DiffEditorFile(const QString &mimeType, QObject *parent) : setTemporary(true); } +bool DiffEditorFile::setContents(const QByteArray &contents) +{ + Q_UNUSED(contents); + return false; +} + void DiffEditorFile::setModified(bool modified) { if (m_modified == modified) diff --git a/src/plugins/diffeditor/diffeditorfile.h b/src/plugins/diffeditor/diffeditorfile.h index 081253e6f9ec2faa3a37dd7331df2163769902eb..261701c2bdd75b4d729dd7be26d85e813b2a1fdf 100644 --- a/src/plugins/diffeditor/diffeditorfile.h +++ b/src/plugins/diffeditor/diffeditorfile.h @@ -48,6 +48,7 @@ public: explicit DiffEditorFile(const QString &mimeType, QObject *parent = 0); + bool setContents(const QByteArray &contents); QString defaultPath() const { return QString(); } QString suggestedFileName() const { return QString(); } diff --git a/src/plugins/diffeditor/diffeditorplugin.cpp b/src/plugins/diffeditor/diffeditorplugin.cpp index 784e0810e69ac4c10293bc9a3b5ac3684316acc8..191c6a88c168bf1639957f3aea54093b040201f3 100644 --- a/src/plugins/diffeditor/diffeditorplugin.cpp +++ b/src/plugins/diffeditor/diffeditorplugin.cpp @@ -103,7 +103,7 @@ void DiffEditorPlugin::diff() //: Editor title QString title = tr("Diff \"%1\", \"%2\"").arg(fileName1).arg(fileName2); DiffEditor *editor = qobject_cast<DiffEditor *> - (Core::EditorManager::openEditorWithContents(editorId, &title, QString())); + (Core::EditorManager::openEditorWithContents(editorId, &title)); if (!editor) return; diff --git a/src/plugins/diffeditor/diffshoweditor.h b/src/plugins/diffeditor/diffshoweditor.h index fedd94fc5ec25c9ce52296b91266e952a4a18280..cace93f73a4c8dc7c5ceea6af1871d2f791cbf7e 100644 --- a/src/plugins/diffeditor/diffshoweditor.h +++ b/src/plugins/diffeditor/diffshoweditor.h @@ -42,10 +42,6 @@ QT_END_NAMESPACE namespace DiffEditor { -namespace Internal { -class DiffEditorFile; -} - class DIFFEDITOR_EXPORT DiffShowEditor : public DiffEditor { Q_OBJECT diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 84598486073ad27271cde84f022154a85c08050b..9c036cca79e2e722cc146a1aab88867df70d5ba1 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -867,7 +867,7 @@ VcsBase::VcsBaseEditorWidget *GitClient::findExistingVCSEditor(const char *regis // Exists already Core::EditorManager::activateEditor(outputEditor); - outputEditor->createNew(m_msgWait); + outputEditor->document()->setContents(m_msgWait.toUtf8()); rc = VcsBase::VcsBaseEditorWidget::getVcsBaseEditor(outputEditor); return rc; @@ -880,14 +880,14 @@ DiffEditor::DiffEditor *GitClient::findExistingOrOpenNewDiffEditor(const char *r if (outputEditor) { // Exists already Core::EditorManager::activateEditor(outputEditor); - outputEditor->createNew(m_msgWait); + outputEditor->document()->setContents(m_msgWait.toUtf8()); } DiffEditor::DiffEditor *editor = qobject_cast<DiffEditor::DiffEditor *>(outputEditor); if (!editor) { QString title = titlePattern; editor = qobject_cast<DiffEditor::DiffEditor *>( - Core::EditorManager::openEditorWithContents(editorId, &title, m_msgWait)); + Core::EditorManager::openEditorWithContents(editorId, &title, m_msgWait.toUtf8())); editor->document()->setProperty(registerDynamicProperty, dynamicPropertyValue); Core::EditorManager::activateEditor(editor); } @@ -913,7 +913,8 @@ VcsBase::VcsBaseEditorWidget *GitClient::createVcsEditor(const Core::Id &id, QTC_CHECK(!findExistingVCSEditor(registerDynamicProperty, dynamicPropertyValue)); // Create new, set wait message, set up with source and codec - Core::IEditor *outputEditor = Core::EditorManager::openEditorWithContents(id, &title, m_msgWait); + Core::IEditor *outputEditor = Core::EditorManager::openEditorWithContents(id, &title, + m_msgWait.toUtf8()); outputEditor->document()->setProperty(registerDynamicProperty, dynamicPropertyValue); rc = VcsBase::VcsBaseEditorWidget::getVcsBaseEditor(outputEditor); connect(rc, SIGNAL(annotateRevisionRequested(QString,QString,int)), diff --git a/src/plugins/imageviewer/imageviewer.cpp b/src/plugins/imageviewer/imageviewer.cpp index 3604c1195a686268ab8b491dcf337ead22445857..e214eade6d401ca743c4366222f440cb7bb31034 100644 --- a/src/plugins/imageviewer/imageviewer.cpp +++ b/src/plugins/imageviewer/imageviewer.cpp @@ -119,12 +119,6 @@ ImageViewer::~ImageViewer() delete d; } -bool ImageViewer::createNew(const QString &contents) -{ - Q_UNUSED(contents) - return false; -} - bool ImageViewer::open(QString *errorString, const QString &fileName, const QString &realFileName) { if (!d->imageView->openFile(realFileName)) { diff --git a/src/plugins/imageviewer/imageviewer.h b/src/plugins/imageviewer/imageviewer.h index 4ad5cbc853596bc1d74354ce91a2966315027ec9..2890d45a325e2484e2a9c926c3d61c3c335554f2 100644 --- a/src/plugins/imageviewer/imageviewer.h +++ b/src/plugins/imageviewer/imageviewer.h @@ -54,7 +54,6 @@ public: explicit ImageViewer(QWidget *parent = 0); ~ImageViewer(); - bool createNew(const QString &contents = QString()); bool open(QString *errorString, const QString &fileName, const QString &realFileName); Core::IDocument *document(); Core::Id id() const; diff --git a/src/plugins/imageviewer/imageviewerfile.cpp b/src/plugins/imageviewer/imageviewerfile.cpp index e04539a59c76efb8876f66f3f33db92b802944e3..a7c96e0ceb576dc3a124cb863c2d12eb03e3bb44 100644 --- a/src/plugins/imageviewer/imageviewerfile.cpp +++ b/src/plugins/imageviewer/imageviewerfile.cpp @@ -72,6 +72,12 @@ bool ImageViewerFile::save(QString *errorString, const QString &fileName, bool a return false; } +bool ImageViewerFile::setContents(const QByteArray &contents) +{ + Q_UNUSED(contents); + return false; +} + QString ImageViewerFile::defaultPath() const { return QString(); diff --git a/src/plugins/imageviewer/imageviewerfile.h b/src/plugins/imageviewer/imageviewerfile.h index 448e9abdc4f38128b41b189060e658896563b894..d042e8ab1f3526cd3fb9c100afe9bc36ee5a41e2 100644 --- a/src/plugins/imageviewer/imageviewerfile.h +++ b/src/plugins/imageviewer/imageviewerfile.h @@ -46,6 +46,7 @@ public: explicit ImageViewerFile(ImageViewer *parent = 0); bool save(QString *errorString, const QString &fileName, bool autoSave); + bool setContents(const QByteArray &contents); QString defaultPath() const; QString suggestedFileName() const; diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index e7787c8f7a561d0524e5fb62262d4c068476bb42..a478661305abba6bfe1b737f8b89061096180392 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -1166,7 +1166,7 @@ Core::IEditor *PerforcePlugin::showOutputInEditor(const QString &title, const QS qDebug() << "PerforcePlugin::showOutputInEditor" << title << id.name() << "Size= " << output.size() << " Type=" << editorType << debugCodec(codec); QString s = title; - Core::IEditor *editor = Core::EditorManager::openEditorWithContents(id, &s, output); + Core::IEditor *editor = Core::EditorManager::openEditorWithContents(id, &s, output.toUtf8()); connect(editor, SIGNAL(annotateRevisionRequested(QString,QString,int)), this, SLOT(vcsAnnotate(QString,QString,int))); PerforceEditor *e = qobject_cast<PerforceEditor*>(editor->widget()); @@ -1260,7 +1260,7 @@ void PerforcePlugin::p4Diff(const PerforceDiffParameters &p) return; if (existingEditor) { - existingEditor->createNew(result.stdOut); + existingEditor->document()->setContents(result.stdOut.toUtf8()); Core::EditorManager::activateEditor(existingEditor); return; } diff --git a/src/plugins/perforce/perforcesubmiteditor.cpp b/src/plugins/perforce/perforcesubmiteditor.cpp index 3ae22eb738b9f9521dce24fdeb7666c68a113b6d..ef910427ba825457866592ac6f7cd57c49f82fa7 100644 --- a/src/plugins/perforce/perforcesubmiteditor.cpp +++ b/src/plugins/perforce/perforcesubmiteditor.cpp @@ -71,11 +71,11 @@ QByteArray PerforceSubmitEditor::fileContents() const return text.toLocal8Bit(); } -bool PerforceSubmitEditor::setFileContents(const QString &contents) +bool PerforceSubmitEditor::setFileContents(const QByteArray &contents) { if (Perforce::Constants::debug) qDebug() << Q_FUNC_INFO << contents; - if (!parseText(contents)) + if (!parseText(QString::fromUtf8(contents))) return false; updateFields(); return true; diff --git a/src/plugins/perforce/perforcesubmiteditor.h b/src/plugins/perforce/perforcesubmiteditor.h index dc3447712a537a6120db45af9676e99c43842580..9baf78ac88ce0aff5c6ccb2cf27d94d613471d23 100644 --- a/src/plugins/perforce/perforcesubmiteditor.h +++ b/src/plugins/perforce/perforcesubmiteditor.h @@ -67,7 +67,7 @@ public: protected: QByteArray fileContents() const; - bool setFileContents(const QString &contents); + bool setFileContents(const QByteArray &contents); private: inline PerforceSubmitEditorWidget *submitEditorWidget(); diff --git a/src/plugins/qnx/bardescriptoreditor.cpp b/src/plugins/qnx/bardescriptoreditor.cpp index df9d195d28337f907bf3e96ef88b1133f02f13b2..b623680e6fe717833d72117f8f1119a7cdbcc61c 100644 --- a/src/plugins/qnx/bardescriptoreditor.cpp +++ b/src/plugins/qnx/bardescriptoreditor.cpp @@ -82,12 +82,6 @@ BarDescriptorEditor::BarDescriptorEditor(BarDescriptorEditorWidget *editorWidget generalAction->setChecked(true); } -bool BarDescriptorEditor::createNew(const QString &contents) -{ - Q_UNUSED(contents); - return false; -} - bool BarDescriptorEditor::open(QString *errorString, const QString &fileName, const QString &realFileName) { QTC_ASSERT(fileName == realFileName, return false); diff --git a/src/plugins/qnx/bardescriptoreditor.h b/src/plugins/qnx/bardescriptoreditor.h index 707cf5540cf23aab62fb1288001d20074d4c9cb1..1c3c47737a7a36ff3dd42e9e1219b4031fb963b4 100644 --- a/src/plugins/qnx/bardescriptoreditor.h +++ b/src/plugins/qnx/bardescriptoreditor.h @@ -63,7 +63,6 @@ public: explicit BarDescriptorEditor(BarDescriptorEditorWidget *editorWidget); - bool createNew(const QString &contents = QString()); bool open(QString *errorString, const QString &fileName, const QString &realFileName); Core::IDocument *document(); Core::Id id() const; diff --git a/src/plugins/resourceeditor/resourceeditorw.cpp b/src/plugins/resourceeditor/resourceeditorw.cpp index d6b343aae1c05ded4930130fd359f5bd4eb3e998..652c2a71812a3e71f264d66f633e63f4b6a069f7 100644 --- a/src/plugins/resourceeditor/resourceeditorw.cpp +++ b/src/plugins/resourceeditor/resourceeditorw.cpp @@ -134,21 +134,6 @@ ResourceEditorW::~ResourceEditorW() delete m_toolBar; } -bool ResourceEditorW::createNew(const QString &contents) -{ - Utils::TempFileSaver saver; - saver.write(contents.toUtf8()); - if (!saver.finalize(Core::ICore::mainWindow())) - return false; - - const bool rc = m_resourceEditor->load(saver.fileName()); - m_resourceDocument->setFilePath(QString()); - m_shouldAutoSave = false; - if (debugResourceEditorW) - qDebug() << "ResourceEditorW::createNew: " << contents << " (" << saver.fileName() << ") returns " << rc; - return rc; -} - bool ResourceEditorW::open(QString *errorString, const QString &fileName, const QString &realFileName) { if (debugResourceEditorW) @@ -206,6 +191,20 @@ bool ResourceEditorDocument::save(QString *errorString, const QString &name, boo return true; } +bool ResourceEditorDocument::setContents(const QByteArray &contents) +{ + Utils::TempFileSaver saver; + saver.write(contents); + if (!saver.finalize(Core::ICore::mainWindow())) + return false; + + const bool rc = m_parent->m_resourceEditor->load(saver.fileName()); + m_parent->m_shouldAutoSave = false; + if (debugResourceEditorW) + qDebug() << "ResourceEditorW::createNew: " << contents << " (" << saver.fileName() << ") returns " << rc; + return rc; +} + void ResourceEditorDocument::setFilePath(const QString &newName) { if (newName != m_parent->m_resourceEditor->fileName()) diff --git a/src/plugins/resourceeditor/resourceeditorw.h b/src/plugins/resourceeditor/resourceeditorw.h index 5a3e222005950eec34d4c26a0c04b18b24d45ea7..5c1abbda2bd4b1702be93466365e8f5d14fdc504 100644 --- a/src/plugins/resourceeditor/resourceeditorw.h +++ b/src/plugins/resourceeditor/resourceeditorw.h @@ -55,6 +55,7 @@ public: //IDocument bool save(QString *errorString, const QString &fileName, bool autoSave); + bool setContents(const QByteArray &contents); bool shouldAutoSave() const; bool isModified() const; bool isSaveAsAllowed() const; @@ -85,7 +86,6 @@ public: ~ResourceEditorW(); // IEditor - bool createNew(const QString &contents); bool open(QString *errorString, const QString &fileName, const QString &realFileName); Core::IDocument *document() { return m_resourceDocument; } Core::Id id() const; diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 96b9f8a8759aca6f0403539d5b89cc7767f0edee..7cdca762d366b2a4649a997e0f6c99348fa3c56f 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -588,7 +588,7 @@ void SubversionPlugin::svnDiff(const Subversion::Internal::SubversionDiffParamet const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, p.workingDir, p.files); // Show in the same editor if diff has been executed before if (Core::IEditor *existingEditor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - existingEditor->createNew(response.stdOut); + existingEditor->document()->setContents(response.stdOut.toUtf8()); Core::EditorManager::activateEditor(existingEditor); setDiffBaseDirectory(existingEditor, p.workingDir); return; @@ -899,7 +899,7 @@ void SubversionPlugin::filelog(const QString &workingDir, const QString id = VcsBase::VcsBaseEditorWidget::getTitleId(workingDir, files); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, files); if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(response.stdOut); + editor->document()->setContents(response.stdOut.toUtf8()); Core::EditorManager::activateEditor(editor); } else { const QString title = QString::fromLatin1("svn log %1").arg(id); @@ -976,7 +976,7 @@ void SubversionPlugin::vcsAnnotate(const QString &workingDir, const QString &fil const QString id = VcsBase::VcsBaseEditorWidget::getTitleId(workingDir, files, revision); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::AnnotateOutput, workingDir, files); if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(response.stdOut); + editor->document()->setContents(response.stdOut.toUtf8()); VcsBase::VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber); Core::EditorManager::activateEditor(editor); } else { @@ -1042,7 +1042,7 @@ void SubversionPlugin::describe(const QString &source, const QString &changeNr) const QString id = diffArg + source; const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, source, QStringList(), changeNr); if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { - editor->createNew(description); + editor->document()->setContents(description.toUtf8()); Core::EditorManager::activateEditor(editor); } else { const QString title = QString::fromLatin1("svn describe %1#%2").arg(fi.fileName(), changeNr); @@ -1174,7 +1174,7 @@ Core::IEditor *SubversionPlugin::showOutputInEditor(const QString &title, const qDebug() << "SubversionPlugin::showOutputInEditor" << title << id.name() << "Size= " << output.size() << " Type=" << editorType << debugCodec(codec); QString s = title; - Core::IEditor *editor = Core::EditorManager::openEditorWithContents(id, &s, output); + Core::IEditor *editor = Core::EditorManager::openEditorWithContents(id, &s, output.toUtf8()); connect(editor, SIGNAL(annotateRevisionRequested(QString,QString,int)), this, SLOT(annotateVersion(QString,QString,int))); SubversionEditor *e = qobject_cast<SubversionEditor*>(editor->widget()); diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp index d1913986b49c9e9ecde9847268eccc2f3bd77d9c..92fc4581e19aab0b7bd105e64ec6c829a0246bab 100644 --- a/src/plugins/texteditor/basetextdocument.cpp +++ b/src/plugins/texteditor/basetextdocument.cpp @@ -294,6 +294,18 @@ bool BaseTextDocument::save(QString *errorString, const QString &saveFileName, b return true; } +bool BaseTextDocument::setContents(const QByteArray &contents) +{ + if (contents.size() > Core::EditorManager::maxTextFileSize()) { + document()->setPlainText(BaseTextEditorWidget::msgTextTooLarge(contents.size())); + document()->setModified(false); + return false; + } + document()->setPlainText(QString::fromUtf8(contents)); + document()->setModified(false); + return true; +} + bool BaseTextDocument::shouldAutoSave() const { return d->m_autoSaveRevision != d->m_document->revision(); diff --git a/src/plugins/texteditor/basetextdocument.h b/src/plugins/texteditor/basetextdocument.h index 4e9ac1463466d347c95eadcd53a41c01c19ef1ec..a8f8f2ca7af1b587c6b33216c8b2dadbac747ad5 100644 --- a/src/plugins/texteditor/basetextdocument.h +++ b/src/plugins/texteditor/basetextdocument.h @@ -75,19 +75,20 @@ public: ITextMarkable *documentMarker() const; // IDocument implementation. - virtual bool save(QString *errorString, const QString &fileName, bool autoSave); - virtual bool shouldAutoSave() const; - virtual bool isFileReadOnly() const; - virtual bool isModified() const; - virtual bool isSaveAsAllowed() const; - virtual void checkPermissions(); + bool save(QString *errorString, const QString &fileName, bool autoSave); + bool setContents(const QByteArray &contents); + bool shouldAutoSave() const; + bool isFileReadOnly() const; + bool isModified() const; + bool isSaveAsAllowed() const; + void checkPermissions(); bool reload(QString *errorString, ReloadFlag flag, ChangeType type); - virtual QString mimeType() const; + QString mimeType() const; void setMimeType(const QString &mt); void setFilePath(const QString &newName); - virtual QString defaultPath() const; - virtual QString suggestedFileName() const; + QString defaultPath() const; + QString suggestedFileName() const; void setDefaultPath(const QString &defaultPath); void setSuggestedFileName(const QString &suggestedFileName); diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 46cee5a027c86e042a4064db6a760f4695d4b640..5484db7a443eabf4a8f7a95e36ececc436d39123 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -539,18 +539,6 @@ QString BaseTextEditorWidget::msgTextTooLarge(quint64 size) arg(size >> 20); } -bool BaseTextEditorWidget::createNew(const QString &contents) -{ - if (contents.size() > Core::EditorManager::maxTextFileSize()) { - setPlainText(msgTextTooLarge(contents.size())); - document()->setModified(false); - return false; - } - setPlainText(contents); - document()->setModified(false); - return true; -} - void BaseTextEditorWidget::updateCannotDecodeInfo() { setReadOnly(d->m_document->hasDecodingError()); diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index ce8af7725bfbd87ce1034768a853857c4affe8f1..5382f4efc8b6849c79db613a44134621bc831c0f 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -136,7 +136,6 @@ public: // EditorInterface Core::IDocument *editorDocument() const; - bool createNew(const QString &contents); virtual bool open(QString *errorString, const QString &fileName, const QString &realFileName); QByteArray saveState() const; bool restoreState(const QByteArray &state); @@ -243,6 +242,8 @@ public: AssistReason assistReason) const; QMimeData *duplicateMimeData(const QMimeData *source) const; + static QString msgTextTooLarge(quint64 size); + public slots: virtual void copy(); virtual void paste(); @@ -352,7 +353,6 @@ protected: virtual bool selectionVisible(int blockNumber) const; virtual bool replacementVisible(int blockNumber) const; virtual QColor replacementPenColor(int blockNumber) const; - static QString msgTextTooLarge(quint64 size); private: void maybeSelectLine(); @@ -612,7 +612,6 @@ public: // IEditor Core::IDocument *document() { return m_editorWidget->editorDocument(); } - bool createNew(const QString &contents) { return m_editorWidget->createNew(contents); } bool open(QString *errorString, const QString &fileName, const QString &realFileName); QByteArray saveState() const { return m_editorWidget->saveState(); } diff --git a/src/plugins/vcsbase/submiteditorfile.cpp b/src/plugins/vcsbase/submiteditorfile.cpp index 473defa443d086656d75200f448190b190b657a8..1d107262d4b67239f11a945b7c739b71ceaad387 100644 --- a/src/plugins/vcsbase/submiteditorfile.cpp +++ b/src/plugins/vcsbase/submiteditorfile.cpp @@ -54,6 +54,11 @@ SubmitEditorFile::SubmitEditorFile(const QString &mimeType, VcsBaseSubmitEditor setTemporary(true); } +bool SubmitEditorFile::setContents(const QByteArray &contents) +{ + return m_editor->setFileContents(contents); +} + void SubmitEditorFile::setModified(bool modified) { if (m_modified == modified) diff --git a/src/plugins/vcsbase/submiteditorfile.h b/src/plugins/vcsbase/submiteditorfile.h index 4b16ff785f14c8acd8bc4c52fe1e30d256394b0e..4623a211d3509ee3693f62821ec6d676b474678c 100644 --- a/src/plugins/vcsbase/submiteditorfile.h +++ b/src/plugins/vcsbase/submiteditorfile.h @@ -44,6 +44,7 @@ public: explicit SubmitEditorFile(const QString &mimeType, VcsBaseSubmitEditor *parent = 0); + bool setContents(const QByteArray &contents); QString defaultPath() const { return QString(); } QString suggestedFileName() const { return QString(); } diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index e6652842b4b36c5c48dd221c3802bf86db5b12b0..e9f7d7a74cb5a5d8ec5250652084fbf33039bad4 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -560,11 +560,11 @@ VcsBase::VcsBaseEditorWidget *VcsBaseClient::createVcsEditor(Core::Id kind, QStr const QString progressMsg = tr("Working..."); if (outputEditor) { // Exists already - outputEditor->createNew(progressMsg); + outputEditor->document()->setContents(progressMsg.toUtf8()); baseEditor = VcsBase::VcsBaseEditorWidget::getVcsBaseEditor(outputEditor); QTC_ASSERT(baseEditor, return 0); } else { - outputEditor = Core::EditorManager::openEditorWithContents(kind, &title, progressMsg); + outputEditor = Core::EditorManager::openEditorWithContents(kind, &title, progressMsg.toUtf8()); outputEditor->document()->setProperty(registerDynamicProperty, dynamicPropertyValue); baseEditor = VcsBase::VcsBaseEditorWidget::getVcsBaseEditor(outputEditor); connect(baseEditor, SIGNAL(annotateRevisionRequested(QString,QString,int)), diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index 9f482ba6d32097733a59fc76c60e9bd45d56337c..9ce57a0455485f4aa13bf7934b8ad36dbf632ecc 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -349,12 +349,6 @@ void VcsBaseSubmitEditor::slotDescriptionChanged() { } -bool VcsBaseSubmitEditor::createNew(const QString &contents) -{ - setFileContents(contents); - return true; -} - bool VcsBaseSubmitEditor::open(QString *errorString, const QString &fileName, const QString &realFileName) { if (fileName.isEmpty()) @@ -365,7 +359,7 @@ bool VcsBaseSubmitEditor::open(QString *errorString, const QString &fileName, co return false; const QString text = QString::fromLocal8Bit(reader.data()); - if (!createNew(text)) + if (!setFileContents(text.toUtf8())) return false; d->m_file->setFilePath(QFileInfo(fileName).absoluteFilePath()); @@ -518,9 +512,9 @@ QByteArray VcsBaseSubmitEditor::fileContents() const return d->m_widget->descriptionText().toLocal8Bit(); } -bool VcsBaseSubmitEditor::setFileContents(const QString &contents) +bool VcsBaseSubmitEditor::setFileContents(const QByteArray &contents) { - d->m_widget->setDescriptionText(contents); + d->m_widget->setDescriptionText(QString::fromUtf8(contents)); return true; } diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.h b/src/plugins/vcsbase/vcsbasesubmiteditor.h index 087f2ce98a27eee59512a09ecacc385c06312a12..504629523bbea190b44979d7afedd964a87bdeb7 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.h +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.h @@ -112,7 +112,6 @@ public: void setCheckScriptWorkingDirectory(const QString &); // Core::IEditor - bool createNew(const QString &contents); bool open(QString *errorString, const QString &fileName, const QString &realFileName); Core::IDocument *document(); Core::Id id() const; @@ -156,7 +155,7 @@ protected: * the file. The default implementation uses the text * of the description editor. */ virtual QByteArray fileContents() const; - virtual bool setFileContents(const QString &contents); + virtual bool setFileContents(const QByteArray &contents); void setDescriptionMandatory(bool v); bool isDescriptionMandatory() const;