forked from qt-creator/qt-creator
Core: Return a Result<> from IDocument::setContents
Change-Id: Ia3daa231e87414160c2c12b25c685664088d337a Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -90,7 +90,7 @@ public:
|
|||||||
void setSizes(quint64 startAddr, qint64 range, int blockSize = 4096);
|
void setSizes(quint64 startAddr, qint64 range, int blockSize = 4096);
|
||||||
|
|
||||||
QByteArray contents() const final { return dataMid(0, m_size); }
|
QByteArray contents() const final { return dataMid(0, m_size); }
|
||||||
bool setContents(const QByteArray &contents) final;
|
Utils::Result<> setContents(const QByteArray &contents) final;
|
||||||
|
|
||||||
ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const final
|
ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const final
|
||||||
{
|
{
|
||||||
@@ -2107,14 +2107,14 @@ BinEditorDocument::BinEditorDocument()
|
|||||||
m_newRangeRequestHandler = [this](quint64 offset) { provideNewRange(offset); };
|
m_newRangeRequestHandler = [this](quint64 offset) { provideNewRange(offset); };
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BinEditorDocument::setContents(const QByteArray &contents)
|
Result<> BinEditorDocument::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
if (!contents.isEmpty()) {
|
if (!contents.isEmpty()) {
|
||||||
setSizes(0, contents.length(), contents.length());
|
setSizes(0, contents.length(), contents.length());
|
||||||
addData(0, contents);
|
addData(0, contents);
|
||||||
}
|
}
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<> BinEditorDocument::openImpl(const FilePath &filePath, quint64 offset)
|
Result<> BinEditorDocument::openImpl(const FilePath &filePath, quint64 offset)
|
||||||
|
@@ -156,7 +156,7 @@ public:
|
|||||||
|
|
||||||
Result<> saveImpl(const Utils::FilePath &filePath, bool autoSave) override;
|
Result<> saveImpl(const Utils::FilePath &filePath, bool autoSave) override;
|
||||||
|
|
||||||
bool setContents(const QByteArray &contents) override;
|
Result<> setContents(const QByteArray &contents) override;
|
||||||
|
|
||||||
QString fallbackSaveAsFileName() const override;
|
QString fallbackSaveAsFileName() const override;
|
||||||
|
|
||||||
@@ -418,7 +418,7 @@ Result<> JsonSettingsDocument::saveImpl(const FilePath &newFilePath, bool autoSa
|
|||||||
m_ceSettings.toMap(store);
|
m_ceSettings.toMap(store);
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath path = newFilePath.isEmpty() ? filePath() : newFilePath;
|
FilePath path = newFilePath.isEmpty() ? filePath() : newFilePath;
|
||||||
|
|
||||||
if (!newFilePath.isEmpty() && !autoSave) {
|
if (!newFilePath.isEmpty() && !autoSave) {
|
||||||
setPreferredDisplayName({});
|
setPreferredDisplayName({});
|
||||||
@@ -438,17 +438,17 @@ bool JsonSettingsDocument::isModified() const
|
|||||||
return m_ceSettings.isDirty();
|
return m_ceSettings.isDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JsonSettingsDocument::setContents(const QByteArray &contents)
|
Result<> JsonSettingsDocument::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
auto result = storeFromJson(contents);
|
Result<Store> result = storeFromJson(contents);
|
||||||
QTC_ASSERT_RESULT(result, return false);
|
QTC_ASSERT_RESULT(result, return ResultError(result.error()));
|
||||||
|
|
||||||
m_ceSettings.fromMap(*result);
|
m_ceSettings.fromMap(result.value());
|
||||||
|
|
||||||
emit settingsChanged();
|
emit settingsChanged();
|
||||||
emit changed();
|
emit changed();
|
||||||
emit contentsChanged();
|
emit contentsChanged();
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString JsonSettingsDocument::fallbackSaveAsFileName() const
|
QString JsonSettingsDocument::fallbackSaveAsFileName() const
|
||||||
|
@@ -70,21 +70,6 @@
|
|||||||
\ingroup mainclasses
|
\ingroup mainclasses
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
|
||||||
\enum Core::Utils::Result<>
|
|
||||||
|
|
||||||
The OpenResult enum describes whether a file was successfully opened.
|
|
||||||
|
|
||||||
\value Success
|
|
||||||
The file was read successfully and can be handled by this document
|
|
||||||
type.
|
|
||||||
\value ReadError
|
|
||||||
The file could not be opened for reading, either because it does not
|
|
||||||
exist or because of missing permissions.
|
|
||||||
\value CannotHandle
|
|
||||||
This document type could not handle the file content.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\enum Core::IDocument::ReloadSetting
|
\enum Core::IDocument::ReloadSetting
|
||||||
|
|
||||||
@@ -391,10 +376,10 @@ QByteArray IDocument::contents() const
|
|||||||
\sa contents()
|
\sa contents()
|
||||||
\sa EditorManager::openEditorWithContents()
|
\sa EditorManager::openEditorWithContents()
|
||||||
*/
|
*/
|
||||||
bool IDocument::setContents(const QByteArray &contents)
|
Result<> IDocument::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
Q_UNUSED(contents)
|
Q_UNUSED(contents)
|
||||||
return false;
|
return ResultError(ResultUnimplemented);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -65,7 +65,7 @@ public:
|
|||||||
Utils::Result<> save(const Utils::FilePath &filePath = {}, bool autoSave = false);
|
Utils::Result<> save(const Utils::FilePath &filePath = {}, bool autoSave = false);
|
||||||
|
|
||||||
virtual QByteArray contents() const;
|
virtual QByteArray contents() const;
|
||||||
virtual bool setContents(const QByteArray &contents);
|
virtual Utils::Result<> setContents(const QByteArray &contents);
|
||||||
virtual void formatContents();
|
virtual void formatContents();
|
||||||
|
|
||||||
const Utils::FilePath &filePath() const;
|
const Utils::FilePath &filePath() const;
|
||||||
|
@@ -114,17 +114,17 @@ QByteArray FormWindowFile::contents() const
|
|||||||
return formWindowContents().toUtf8();
|
return formWindowContents().toUtf8();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FormWindowFile::setContents(const QByteArray &contents)
|
Result<> FormWindowFile::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
if (Designer::Constants::Internal::debug)
|
if (Designer::Constants::Internal::debug)
|
||||||
qDebug() << Q_FUNC_INFO << contents.size();
|
qDebug() << Q_FUNC_INFO << contents.size();
|
||||||
|
|
||||||
document()->clear();
|
document()->clear();
|
||||||
|
|
||||||
QTC_ASSERT(m_formWindow, return false);
|
QTC_ASSERT(m_formWindow, return ResultError(ResultAssert));
|
||||||
|
|
||||||
if (contents.isEmpty())
|
if (contents.isEmpty())
|
||||||
return false;
|
return ResultError(ResultAssert);
|
||||||
|
|
||||||
// If we have an override cursor, reset it over Designer loading,
|
// If we have an override cursor, reset it over Designer loading,
|
||||||
// should it pop up messages about missing resources or such.
|
// should it pop up messages about missing resources or such.
|
||||||
@@ -141,11 +141,11 @@ bool FormWindowFile::setContents(const QByteArray &contents)
|
|||||||
QApplication::setOverrideCursor(overrideCursor);
|
QApplication::setOverrideCursor(overrideCursor);
|
||||||
|
|
||||||
if (!success)
|
if (!success)
|
||||||
return false;
|
return ResultError(ResultAssert);
|
||||||
|
|
||||||
syncXmlFromFormWindow();
|
syncXmlFromFormWindow();
|
||||||
setShouldAutoSave(false);
|
setShouldAutoSave(false);
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormWindowFile::setFilePath(const FilePath &newName)
|
void FormWindowFile::setFilePath(const FilePath &newName)
|
||||||
|
@@ -29,7 +29,7 @@ public:
|
|||||||
Utils::Result<> open(const Utils::FilePath &filePath,
|
Utils::Result<> open(const Utils::FilePath &filePath,
|
||||||
const Utils::FilePath &realFilePath) override;
|
const Utils::FilePath &realFilePath) override;
|
||||||
QByteArray contents() const override;
|
QByteArray contents() const override;
|
||||||
bool setContents(const QByteArray &contents) override;
|
Utils::Result<> setContents(const QByteArray &contents) override;
|
||||||
bool shouldAutoSave() const override;
|
bool shouldAutoSave() const override;
|
||||||
bool isModified() const override;
|
bool isModified() const override;
|
||||||
bool isSaveAsAllowed() const override;
|
bool isSaveAsAllowed() const override;
|
||||||
|
@@ -208,10 +208,10 @@ bool DiffEditorDocument::ignoreWhitespace() const
|
|||||||
return m_ignoreWhitespace;
|
return m_ignoreWhitespace;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DiffEditorDocument::setContents(const QByteArray &contents)
|
Result<> DiffEditorDocument::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
Q_UNUSED(contents)
|
Q_UNUSED(contents)
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath DiffEditorDocument::fallbackSaveAsPath() const
|
FilePath DiffEditorDocument::fallbackSaveAsPath() const
|
||||||
|
@@ -55,7 +55,7 @@ public:
|
|||||||
void setIgnoreWhitespace(bool ignore);
|
void setIgnoreWhitespace(bool ignore);
|
||||||
bool ignoreWhitespace() const;
|
bool ignoreWhitespace() const;
|
||||||
|
|
||||||
bool setContents(const QByteArray &contents) override;
|
Utils::Result<> setContents(const QByteArray &contents) override;
|
||||||
Utils::FilePath fallbackSaveAsPath() const override;
|
Utils::FilePath fallbackSaveAsPath() const override;
|
||||||
QString fallbackSaveAsFileName() const override;
|
QString fallbackSaveAsFileName() const override;
|
||||||
|
|
||||||
|
@@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace Perforce::Internal {
|
namespace Perforce::Internal {
|
||||||
|
|
||||||
enum { FileSpecRole = Qt::UserRole + 1 };
|
enum { FileSpecRole = Qt::UserRole + 1 };
|
||||||
@@ -38,12 +40,12 @@ QByteArray PerforceSubmitEditor::fileContents() const
|
|||||||
return text.toLocal8Bit();
|
return text.toLocal8Bit();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PerforceSubmitEditor::setFileContents(const QByteArray &contents)
|
Result<> PerforceSubmitEditor::setFileContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
if (!parseText(QString::fromUtf8(contents)))
|
if (!parseText(QString::fromUtf8(contents)))
|
||||||
return false;
|
return ResultError(ResultAssert); // FIXME: parseText always returns true, why?
|
||||||
updateFields();
|
updateFields();
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PerforceSubmitEditor::parseText(QString text)
|
bool PerforceSubmitEditor::parseText(QString text)
|
||||||
|
@@ -37,7 +37,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
QByteArray fileContents() const override;
|
QByteArray fileContents() const override;
|
||||||
bool setFileContents(const QByteArray &contents) override;
|
Utils::Result<> setFileContents(const QByteArray &contents) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline PerforceSubmitEditorWidget *submitEditorWidget();
|
inline PerforceSubmitEditorWidget *submitEditorWidget();
|
||||||
|
@@ -51,7 +51,7 @@ public:
|
|||||||
Result<> open(const FilePath &filePath, const FilePath &realFilePath) final;
|
Result<> open(const FilePath &filePath, const FilePath &realFilePath) final;
|
||||||
QString plainText() const { return m_model.contents(); }
|
QString plainText() const { return m_model.contents(); }
|
||||||
QByteArray contents() const final { return m_model.contents().toUtf8(); }
|
QByteArray contents() const final { return m_model.contents().toUtf8(); }
|
||||||
bool setContents(const QByteArray &contents) final;
|
Result<> setContents(const QByteArray &contents) final;
|
||||||
bool shouldAutoSave() const final { return m_shouldAutoSave; }
|
bool shouldAutoSave() const final { return m_shouldAutoSave; }
|
||||||
bool isModified() const final { return m_model.dirty(); }
|
bool isModified() const final { return m_model.dirty(); }
|
||||||
bool isSaveAsAllowed() const final { return true; }
|
bool isSaveAsAllowed() const final { return true; }
|
||||||
@@ -236,22 +236,23 @@ Result<> ResourceEditorDocument::saveImpl(const FilePath &filePath, bool autoSav
|
|||||||
return ResultOk;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ResourceEditorDocument::setContents(const QByteArray &contents)
|
Result<> ResourceEditorDocument::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
TempFileSaver saver;
|
TempFileSaver saver;
|
||||||
saver.write(contents);
|
saver.write(contents);
|
||||||
if (!saver.finalize(ICore::dialogParent()))
|
if (!saver.finalize(ICore::dialogParent()))
|
||||||
return false;
|
return ResultError(saver.errorString());
|
||||||
|
|
||||||
const FilePath originalFileName = m_model.filePath();
|
const FilePath originalFileName = m_model.filePath();
|
||||||
m_model.setFilePath(saver.filePath());
|
m_model.setFilePath(saver.filePath());
|
||||||
const bool success = (m_model.reload().has_value());
|
const Result<> result = m_model.reload();
|
||||||
|
const bool success = result.has_value();
|
||||||
m_model.setFilePath(originalFileName);
|
m_model.setFilePath(originalFileName);
|
||||||
m_shouldAutoSave = false;
|
m_shouldAutoSave = false;
|
||||||
if (debugResourceEditorW)
|
if (debugResourceEditorW)
|
||||||
qDebug() << "ResourceEditorW::createNew: " << contents << " (" << saver.filePath() << ") returns " << success;
|
qDebug() << "ResourceEditorW::createNew: " << contents << " (" << saver.filePath() << ") returns " << success;
|
||||||
emit loaded(success);
|
emit loaded(success);
|
||||||
return success;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResourceEditorDocument::setFilePath(const FilePath &newName)
|
void ResourceEditorDocument::setFilePath(const FilePath &newName)
|
||||||
|
@@ -54,7 +54,7 @@ Result<> ObjectsMapDocument::saveImpl(const FilePath &filePath, bool autoSave)
|
|||||||
return ResultOk;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath ObjectsMapDocument::fallbackSaveAsPath() const
|
FilePath ObjectsMapDocument::fallbackSaveAsPath() const
|
||||||
{
|
{
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
@@ -83,7 +83,7 @@ Result<> ObjectsMapDocument::reload(IDocument::ReloadFlag flag, IDocument::Chang
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectsMapDocument::buildObjectsMapTree(const QByteArray &contents)
|
Result<> ObjectsMapDocument::buildObjectsMapTree(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
QMap<QString, ObjectsMapTreeItem *> itemForName;
|
QMap<QString, ObjectsMapTreeItem *> itemForName;
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ bool ObjectsMapDocument::buildObjectsMapTree(const QByteArray &contents)
|
|||||||
const QString objectName = QString::fromUtf8(line.left(tabPosition).trimmed());
|
const QString objectName = QString::fromUtf8(line.left(tabPosition).trimmed());
|
||||||
if (!objectName.startsWith(ObjectsMapTreeItem::COLON)) {
|
if (!objectName.startsWith(ObjectsMapTreeItem::COLON)) {
|
||||||
qDeleteAll(itemForName);
|
qDeleteAll(itemForName);
|
||||||
return false;
|
return ResultError(Tr::tr("Object name does not start with colon"));
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjectsMapTreeItem *item = new ObjectsMapTreeItem(objectName,
|
ObjectsMapTreeItem *item = new ObjectsMapTreeItem(objectName,
|
||||||
@@ -123,10 +123,10 @@ bool ObjectsMapDocument::buildObjectsMapTree(const QByteArray &contents)
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_contentModel->changeRootItem(root);
|
m_contentModel->changeRootItem(root);
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ObjectsMapDocument::setContents(const QByteArray &contents)
|
Result<> ObjectsMapDocument::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
return buildObjectsMapTree(contents);
|
return buildObjectsMapTree(contents);
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,7 @@ public:
|
|||||||
Utils::Result<> reload(ReloadFlag flag, ChangeType type) override;
|
Utils::Result<> reload(ReloadFlag flag, ChangeType type) override;
|
||||||
|
|
||||||
bool shouldAutoSave() const override { return true; }
|
bool shouldAutoSave() const override { return true; }
|
||||||
bool setContents(const QByteArray &contents) override;
|
Utils::Result<> setContents(const QByteArray &contents) override;
|
||||||
QByteArray contents() const override;
|
QByteArray contents() const override;
|
||||||
ObjectsMapModel *model() const { return m_contentModel; }
|
ObjectsMapModel *model() const { return m_contentModel; }
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ protected:
|
|||||||
private:
|
private:
|
||||||
Utils::Result<> openImpl(const Utils::FilePath &fileName,
|
Utils::Result<> openImpl(const Utils::FilePath &fileName,
|
||||||
const Utils::FilePath &realFileName);
|
const Utils::FilePath &realFileName);
|
||||||
bool buildObjectsMapTree(const QByteArray &contents);
|
Utils::Result<> buildObjectsMapTree(const QByteArray &contents);
|
||||||
bool writeFile(const Utils::FilePath &fileName) const;
|
bool writeFile(const Utils::FilePath &fileName) const;
|
||||||
void syncXMLFromEditor();
|
void syncXMLFromEditor();
|
||||||
|
|
||||||
|
@@ -9,7 +9,9 @@
|
|||||||
#include <vcsbase/submiteditorwidget.h>
|
#include <vcsbase/submiteditorwidget.h>
|
||||||
#include <vcsbase/submitfilemodel.h>
|
#include <vcsbase/submitfilemodel.h>
|
||||||
|
|
||||||
using namespace Subversion::Internal;
|
using namespace Utils;
|
||||||
|
|
||||||
|
namespace Subversion::Internal {
|
||||||
|
|
||||||
SubversionSubmitEditor::SubversionSubmitEditor() :
|
SubversionSubmitEditor::SubversionSubmitEditor() :
|
||||||
VcsBase::VcsBaseSubmitEditor(new VcsBase::SubmitEditorWidget)
|
VcsBase::VcsBaseSubmitEditor(new VcsBase::SubmitEditorWidget)
|
||||||
@@ -54,8 +56,10 @@ QByteArray SubversionSubmitEditor::fileContents() const
|
|||||||
return description().toUtf8();
|
return description().toUtf8();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SubversionSubmitEditor::setFileContents(const QByteArray &contents)
|
Result<> SubversionSubmitEditor::setFileContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
setDescription(QString::fromUtf8(contents));
|
setDescription(QString::fromUtf8(contents));
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Subversion::Internal
|
||||||
|
@@ -7,8 +7,7 @@
|
|||||||
|
|
||||||
#include <QPair>
|
#include <QPair>
|
||||||
|
|
||||||
namespace Subversion {
|
namespace Subversion::Internal {
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class SubversionSubmitEditor : public VcsBase::VcsBaseSubmitEditor
|
class SubversionSubmitEditor : public VcsBase::VcsBaseSubmitEditor
|
||||||
{
|
{
|
||||||
@@ -24,8 +23,7 @@ public:
|
|||||||
void setStatusList(const QList<StatusFilePair> &statusOutput);
|
void setStatusList(const QList<StatusFilePair> &statusOutput);
|
||||||
|
|
||||||
QByteArray fileContents() const override;
|
QByteArray fileContents() const override;
|
||||||
bool setFileContents(const QByteArray &contents) override;
|
Utils::Result<> setFileContents(const QByteArray &contents) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Subversion::Internal
|
||||||
} // namespace Subversion
|
|
||||||
|
@@ -719,7 +719,7 @@ QByteArray TextDocument::contents() const
|
|||||||
return plainText().toUtf8();
|
return plainText().toUtf8();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TextDocument::setContents(const QByteArray &contents)
|
Result<> TextDocument::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
return setPlainText(QString::fromUtf8(contents));
|
return setPlainText(QString::fromUtf8(contents));
|
||||||
}
|
}
|
||||||
@@ -860,18 +860,18 @@ Result<> TextDocument::reload(const FilePath &realFilePath)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TextDocument::setPlainText(const QString &text)
|
Result<> TextDocument::setPlainText(const QString &text)
|
||||||
{
|
{
|
||||||
if (text.size() > EditorManager::maxTextFileSize()) {
|
if (text.size() > EditorManager::maxTextFileSize()) {
|
||||||
document()->setPlainText(TextEditorWidget::msgTextTooLarge(text.size()));
|
document()->setPlainText(TextEditorWidget::msgTextTooLarge(text.size()));
|
||||||
d->resetRevisions();
|
d->resetRevisions();
|
||||||
document()->setModified(false);
|
document()->setModified(false);
|
||||||
return false;
|
return ResultError(TextEditorWidget::msgTextTooLarge(text.size()));
|
||||||
}
|
}
|
||||||
document()->setPlainText(text);
|
document()->setPlainText(text);
|
||||||
d->resetRevisions();
|
d->resetRevisions();
|
||||||
document()->setModified(false);
|
document()->setModified(false);
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<> TextDocument::reload(ReloadFlag flag, ChangeType type)
|
Result<> TextDocument::reload(ReloadFlag flag, ChangeType type)
|
||||||
|
@@ -102,7 +102,7 @@ public:
|
|||||||
|
|
||||||
// IDocument implementation.
|
// IDocument implementation.
|
||||||
QByteArray contents() const override;
|
QByteArray contents() const override;
|
||||||
bool setContents(const QByteArray &contents) override;
|
Utils::Result<> setContents(const QByteArray &contents) override;
|
||||||
void formatContents() override;
|
void formatContents() override;
|
||||||
bool shouldAutoSave() const override;
|
bool shouldAutoSave() const override;
|
||||||
bool isModified() const override;
|
bool isModified() const override;
|
||||||
@@ -122,7 +122,7 @@ public:
|
|||||||
virtual Utils::Result<> reload();
|
virtual Utils::Result<> reload();
|
||||||
Utils::Result<> reload(const Utils::FilePath &realFilePath);
|
Utils::Result<> reload(const Utils::FilePath &realFilePath);
|
||||||
|
|
||||||
bool setPlainText(const QString &text);
|
Utils::Result<> setPlainText(const QString &text);
|
||||||
QTextDocument *document() const;
|
QTextDocument *document() const;
|
||||||
|
|
||||||
using SyntaxHighLighterCreator = std::function<SyntaxHighlighter *()>;
|
using SyntaxHighLighterCreator = std::function<SyntaxHighlighter *()>;
|
||||||
|
@@ -50,7 +50,7 @@ QByteArray SubmitEditorFile::contents() const
|
|||||||
return m_editor->fileContents();
|
return m_editor->fileContents();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SubmitEditorFile::setContents(const QByteArray &contents)
|
Result<> SubmitEditorFile::setContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
return m_editor->setFileContents(contents);
|
return m_editor->setFileContents(contents);
|
||||||
}
|
}
|
||||||
|
@@ -21,7 +21,7 @@ public:
|
|||||||
const Utils::FilePath &realFilePath) override;
|
const Utils::FilePath &realFilePath) override;
|
||||||
|
|
||||||
QByteArray contents() const override;
|
QByteArray contents() const override;
|
||||||
bool setContents(const QByteArray &contents) override;
|
Utils::Result<> setContents(const QByteArray &contents) override;
|
||||||
|
|
||||||
bool isModified() const override { return m_modified; }
|
bool isModified() const override { return m_modified; }
|
||||||
ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const override;
|
ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const override;
|
||||||
|
@@ -397,10 +397,10 @@ QByteArray VcsBaseSubmitEditor::fileContents() const
|
|||||||
return description().toLocal8Bit();
|
return description().toLocal8Bit();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool VcsBaseSubmitEditor::setFileContents(const QByteArray &contents)
|
Result<> VcsBaseSubmitEditor::setFileContents(const QByteArray &contents)
|
||||||
{
|
{
|
||||||
setDescription(QString::fromUtf8(contents));
|
setDescription(QString::fromUtf8(contents));
|
||||||
return true;
|
return ResultOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString VcsBaseSubmitEditor::description() const
|
QString VcsBaseSubmitEditor::description() const
|
||||||
|
@@ -95,7 +95,7 @@ protected:
|
|||||||
* the file. The default implementation uses the text
|
* the file. The default implementation uses the text
|
||||||
* of the description editor. */
|
* of the description editor. */
|
||||||
virtual QByteArray fileContents() const;
|
virtual QByteArray fileContents() const;
|
||||||
virtual bool setFileContents(const QByteArray &contents);
|
virtual Utils::Result<> setFileContents(const QByteArray &contents);
|
||||||
|
|
||||||
QString description() const;
|
QString description() const;
|
||||||
void setDescription(const QString &text);
|
void setDescription(const QString &text);
|
||||||
|
Reference in New Issue
Block a user