diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-11-19 16:59:25 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-11-20 19:33:45 +0100 |
commit | d3dd264c373254827629b2d26c78ac7515265307 (patch) | |
tree | 00732d3e524ca3147a1f391a38c0efdbff520e7a | |
parent | de34e0e30b93eb9f245b668e2cf9513a7e6abd50 (diff) |
Resource editor: Fix paste.
Add a "plainText" property to the resource editor's document
similar to the diff editor (see
f268d0f8e14dd10e05180b4bc195fff036b5ba33 ).
Task-number: QTCREATORBUG-13458
Change-Id: Icd11134432f796b37090a16bbaa13f075fa8c2bd
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
8 files changed, 34 insertions, 11 deletions
diff --git a/src/plugins/resourceeditor/qrceditor/qrceditor.cpp b/src/plugins/resourceeditor/qrceditor/qrceditor.cpp index 846f0136c6..4afdf830cb 100644 --- a/src/plugins/resourceeditor/qrceditor/qrceditor.cpp +++ b/src/plugins/resourceeditor/qrceditor/qrceditor.cpp @@ -136,6 +136,11 @@ bool QrcEditor::save() return m_treeview->save(); } +QString QrcEditor::contents() const +{ + return m_treeview->contents(); +} + bool QrcEditor::isDirty() { return m_treeview->isDirty(); diff --git a/src/plugins/resourceeditor/qrceditor/qrceditor.h b/src/plugins/resourceeditor/qrceditor/qrceditor.h index 7a24d9653c..fbcafeb7e6 100644 --- a/src/plugins/resourceeditor/qrceditor/qrceditor.h +++ b/src/plugins/resourceeditor/qrceditor/qrceditor.h @@ -49,6 +49,7 @@ public: bool load(const QString &fileName); bool save(); + QString contents() const; QTreeView *treeView() { return m_treeview; } QString errorMessage() const { return m_treeview->errorMessage(); } diff --git a/src/plugins/resourceeditor/qrceditor/resourcefile.cpp b/src/plugins/resourceeditor/qrceditor/resourcefile.cpp index e4a13ca869..ff57423cb5 100644 --- a/src/plugins/resourceeditor/qrceditor/resourcefile.cpp +++ b/src/plugins/resourceeditor/qrceditor/resourcefile.cpp @@ -183,15 +183,8 @@ bool ResourceFile::load() return true; } -bool ResourceFile::save() +QString ResourceFile::contents() const { - m_error_message.clear(); - - if (m_file_name.isEmpty()) { - m_error_message = tr("The file name is empty."); - return false; - } - QDomDocument doc; QDomElement root = doc.createElement(QLatin1String("RCC")); doc.appendChild(root); @@ -222,11 +215,19 @@ bool ResourceFile::save() felt.setAttribute(QLatin1String("threshold"), file.threshold); } } + return doc.toString(4); +} - QString data = doc.toString(4); - if (!m_textFileFormat.writeFile(m_file_name, data, &m_error_message)) +bool ResourceFile::save() +{ + m_error_message.clear(); + + if (m_file_name.isEmpty()) { + m_error_message = tr("The file name is empty."); return false; - return true; + } + + return m_textFileFormat.writeFile(m_file_name, contents(), &m_error_message); } void ResourceFile::refresh() diff --git a/src/plugins/resourceeditor/qrceditor/resourcefile_p.h b/src/plugins/resourceeditor/qrceditor/resourcefile_p.h index b60d5ca628..598f805844 100644 --- a/src/plugins/resourceeditor/qrceditor/resourcefile_p.h +++ b/src/plugins/resourceeditor/qrceditor/resourcefile_p.h @@ -139,6 +139,7 @@ public: QString fileName() const { return m_file_name; } bool load(); bool save(); + QString contents() const; QString errorMessage() const { return m_error_message; } void refresh(); @@ -252,6 +253,8 @@ private: public: virtual bool reload(); virtual bool save(); + QString contents() const { return m_resource_file.contents(); } + // QString errorMessage() const { return m_resource_file.errorMessage(); } bool dirty() const { return m_dirty; } diff --git a/src/plugins/resourceeditor/qrceditor/resourceview.cpp b/src/plugins/resourceeditor/qrceditor/resourceview.cpp index 4a7d7c905c..2b24dfa578 100644 --- a/src/plugins/resourceeditor/qrceditor/resourceview.cpp +++ b/src/plugins/resourceeditor/qrceditor/resourceview.cpp @@ -381,6 +381,11 @@ bool ResourceView::save() return m_qrcModel->save(); } +QString ResourceView::contents() const +{ + return m_qrcModel->contents(); +} + QString ResourceView::currentAlias() const { const QModelIndex current = currentIndex(); diff --git a/src/plugins/resourceeditor/qrceditor/resourceview.h b/src/plugins/resourceeditor/qrceditor/resourceview.h index 840897e7a0..96d2dadf9a 100644 --- a/src/plugins/resourceeditor/qrceditor/resourceview.h +++ b/src/plugins/resourceeditor/qrceditor/resourceview.h @@ -85,6 +85,7 @@ public: bool load(const QString &fileName); bool save(); + QString contents() const; QString errorMessage() const { return m_qrcFile.errorMessage(); } QString fileName() const; void setFileName(const QString &fileName); diff --git a/src/plugins/resourceeditor/resourceeditorw.cpp b/src/plugins/resourceeditor/resourceeditorw.cpp index 0b0dbd4e56..dc9fae45b1 100644 --- a/src/plugins/resourceeditor/resourceeditorw.cpp +++ b/src/plugins/resourceeditor/resourceeditorw.cpp @@ -187,6 +187,11 @@ bool ResourceEditorDocument::save(QString *errorString, const QString &name, boo return true; } +QString ResourceEditorDocument::plainText() const +{ + return m_parent->m_resourceEditor->contents(); +} + bool ResourceEditorDocument::setContents(const QByteArray &contents) { Utils::TempFileSaver saver; diff --git a/src/plugins/resourceeditor/resourceeditorw.h b/src/plugins/resourceeditor/resourceeditorw.h index 2ddfba91a9..908a936506 100644 --- a/src/plugins/resourceeditor/resourceeditorw.h +++ b/src/plugins/resourceeditor/resourceeditorw.h @@ -50,12 +50,14 @@ class ResourceEditorDocument : public Core::IDocument { Q_OBJECT + Q_PROPERTY(QString plainText READ plainText STORED false) // For access by code pasters public: ResourceEditorDocument(ResourceEditorW *parent = 0); //IDocument bool save(QString *errorString, const QString &fileName, bool autoSave); + QString plainText() const; bool setContents(const QByteArray &contents); bool shouldAutoSave() const; bool isModified() const; |