Merge lp:~kevin-wright-1/u1db-qt/document-april-6-i into lp:u1db-qt

Proposed by Cris Dywan
Status: Rejected
Rejected by: Cris Dywan
Proposed branch: lp:~kevin-wright-1/u1db-qt/document-april-6-i
Merge into: lp:u1db-qt
Diff against target: 109 lines (+44/-2)
3 files modified
database.cpp (+1/-0)
document.cpp (+38/-2)
document.h (+5/-0)
To merge this branch: bzr merge lp:~kevin-wright-1/u1db-qt/document-april-6-i
Reviewer Review Type Date Requested Status
Cris Dywan Disapprove
Ubuntu Phone Apps Jenkins Bot continuous-integration Needs Fixing
Review via email: mp+157621@code.launchpad.net

This proposal supersedes a proposal from 2013-04-06.

Description of the change

"Added a 'revise' property to Document and accompanying functionality that provides the ability to modify existing documents in the database (if the docId already exists).

To post a comment you must log in.
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
Cris Dywan (kalikiana) wrote : Posted in a previous version of this proposal

I'm unsure of the 'revise' functionality, it looks to do mostly what I *intended* 'create' for, *maybe* hinting at a bug in existing code. I'll prefer to discuss this in detail before making a decision.

review: Needs Information
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :

FAILED: Continuous integration, rev:64
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https://code.launchpad.net/~kevin-wright-1/u1db-qt/document-april-6-i/+merge/157621/+edit-commit-message

http://91.189.93.125:8080/job/u1db-qt-ci/28/
Executed test runs:
    SUCCESS: http://91.189.93.125:8080/job/u1db-qt-quantal-amd64-ci/28
    SUCCESS: http://91.189.93.125:8080/job/u1db-qt-raring-amd64-ci/28

Click here to trigger a rebuild:
http://91.189.93.125:8080/job/u1db-qt-ci/28/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Cris Dywan (kalikiana) wrote :

For the record: as discussed, the extra API isn't needed. 'contents' should be used instead.

review: Disapprove

Unmerged revisions

64. By Kevin Wright

Added a 'revise' property to Document and accompanying functionality that provides the abilty to modify existing documents in the database (if the docId already exists).

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'database.cpp'
--- database.cpp 2013-04-06 02:14:24 +0000
+++ database.cpp 2013-04-08 10:16:23 +0000
@@ -317,6 +317,7 @@
317 query.bindValue(":docRev", newRev);317 query.bindValue(":docRev", newRev);
318 // Parse Variant from QML as JsonDocument, fallback to string318 // Parse Variant from QML as JsonDocument, fallback to string
319 QString json(QJsonDocument::fromVariant(newDoc).toJson());319 QString json(QJsonDocument::fromVariant(newDoc).toJson());
320
320 query.bindValue(":docJson", json.isEmpty() ? newDoc : json);321 query.bindValue(":docJson", json.isEmpty() ? newDoc : json);
321 if (!query.exec())322 if (!query.exec())
322 return setError(QString("Failed to put/ update document %1: %2\n%3").arg(docId).arg(query.lastError().text()).arg(query.lastQuery())) ? -1 : -1;323 return setError(QString("Failed to put/ update document %1: %2\n%3").arg(docId).arg(query.lastError().text()).arg(query.lastQuery())) ? -1 : -1;
323324
=== modified file 'document.cpp'
--- document.cpp 2013-04-03 15:36:45 +0000
+++ document.cpp 2013-04-08 10:16:23 +0000
@@ -145,7 +145,36 @@
145 Q_EMIT createChanged(create);145 Q_EMIT createChanged(create);
146146
147 if (m_create && m_database && m_defaults.isValid() && !m_database->getDocUnchecked(m_docId).isValid())147 if (m_create && m_database && m_defaults.isValid() && !m_database->getDocUnchecked(m_docId).isValid())
148 m_database->putDoc(m_defaults, m_docId);148 {
149 m_database->putDoc(m_defaults, m_docId);
150 }
151
152}
153
154bool
155Document::getRevise()
156{
157 return m_revise;
158}
159
160/*!
161 If revise is true, docId is not empty and no document with the same docId
162 exists, defaults will be used to store the document.
163 */
164void
165Document::setRevise(bool revise)
166{
167 if (m_revise == revise)
168 return;
169
170 m_revise = revise;
171 Q_EMIT reviseChanged(revise);
172
173 if (m_revise && m_database && m_defaults.isValid() && m_database->getDocUnchecked(m_docId).isValid())
174 {
175 m_database->putDoc(m_defaults, m_docId);
176 }
177
149}178}
150179
151QVariant180QVariant
@@ -167,10 +196,17 @@
167 return;196 return;
168197
169 m_defaults = defaults;198 m_defaults = defaults;
199
170 Q_EMIT defaultsChanged(defaults);200 Q_EMIT defaultsChanged(defaults);
171201
172 if (m_create && m_database && m_defaults.isValid() && !m_database->getDocUnchecked(m_docId).isValid())202 if (m_create && m_database && m_defaults.isValid() && !m_database->getDocUnchecked(m_docId).isValid())
173 m_database->putDoc(m_defaults, m_docId);203 {
204 m_database->putDoc(m_defaults, m_docId);
205 }
206 else if (m_revise && m_database && m_defaults.isValid() && m_database->getDocUnchecked(m_docId).isValid())
207 {
208 m_database->putDoc(m_defaults, m_docId);
209 }
174}210}
175211
176/*!212/*!
177213
=== modified file 'document.h'
--- document.h 2013-04-03 15:36:45 +0000
+++ document.h 2013-04-08 10:16:23 +0000
@@ -37,6 +37,7 @@
37#endif37#endif
38 Q_PROPERTY(QString docId READ getDocId WRITE setDocId NOTIFY docIdChanged)38 Q_PROPERTY(QString docId READ getDocId WRITE setDocId NOTIFY docIdChanged)
39 Q_PROPERTY(bool create READ getCreate WRITE setCreate NOTIFY createChanged)39 Q_PROPERTY(bool create READ getCreate WRITE setCreate NOTIFY createChanged)
40 Q_PROPERTY(bool revise READ getRevise WRITE setRevise NOTIFY reviseChanged)
40 Q_PROPERTY(QVariant defaults READ getDefaults WRITE setDefaults NOTIFY defaultsChanged)41 Q_PROPERTY(QVariant defaults READ getDefaults WRITE setDefaults NOTIFY defaultsChanged)
41 Q_PROPERTY(QVariant contents READ getContents WRITE setContents NOTIFY contentsChanged)42 Q_PROPERTY(QVariant contents READ getContents WRITE setContents NOTIFY contentsChanged)
42public:43public:
@@ -48,7 +49,9 @@
48 QString getDocId();49 QString getDocId();
49 void setDocId(const QString& docId);50 void setDocId(const QString& docId);
50 bool getCreate();51 bool getCreate();
52 bool getRevise();
51 void setCreate(bool create);53 void setCreate(bool create);
54 void setRevise(bool revise);
52 QVariant getDefaults();55 QVariant getDefaults();
53 void setDefaults(QVariant defaults);56 void setDefaults(QVariant defaults);
54 QVariant getContents();57 QVariant getContents();
@@ -57,6 +60,7 @@
57 void databaseChanged(Database* database);60 void databaseChanged(Database* database);
58 void docIdChanged(const QString& docId);61 void docIdChanged(const QString& docId);
59 void createChanged(bool create);62 void createChanged(bool create);
63 void reviseChanged(bool revise);
60 void defaultsChanged(QVariant defaults);64 void defaultsChanged(QVariant defaults);
61 void contentsChanged(QVariant contents);65 void contentsChanged(QVariant contents);
62private:66private:
@@ -64,6 +68,7 @@
64 Database* m_database;68 Database* m_database;
65 QString m_docId;69 QString m_docId;
66 bool m_create;70 bool m_create;
71 bool m_revise;
67 QVariant m_defaults;72 QVariant m_defaults;
68 QVariant m_contents;73 QVariant m_contents;
6974

Subscribers

People subscribed via source and target branches

to all changes: