From d612cad09a4f1cd8ef9bf6be8bf90b75248ecfef Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Thu, 22 Nov 2018 11:47:31 +0100 Subject: Refactor Database and Database widgets (#2491) The Database, DatabaseWidget, and DatabaseTabWidget classes share many responsibilities in inconsistent ways resulting in impenetrable and unmaintainable code and a diverse set of bugs and architecture restrictions. This patch reworks the architecture, responsibilities of, and dependencies between these classes. The core changes are: * Move loading and saving logic from widgets into the Database class * Get rid of the DatabaseManagerStruct and move all the information contained in it into the Database * Let database objects keep track of modifications and dirty/clean state instead of handing this to external widgets * Move GUI interactions for loading and saving from the DatabaseTabWidget into the DatabaseWidget (resolves #2494 as a side-effect) * Heavily clean up DatabaseTabWidget and degrade it to a slightly glorified QTabWidget * Use QSharedPointers for all Database objects * Remove the modifiedImmediate signal and replace it with a markAsModified() method * Implement proper tabName() method instead of reading back titles from GUI widgets (resolves #1389 and its duplicates #2146 #855) * Fix unwanted AES-KDF downgrade if database uses Argon2 and has CustomData * Improve code This patch is also the first major step towards solving issues #476 and #2322. --- tests/TestDeletedObjects.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/TestDeletedObjects.h') diff --git a/tests/TestDeletedObjects.h b/tests/TestDeletedObjects.h index d96452093..61d864a67 100644 --- a/tests/TestDeletedObjects.h +++ b/tests/TestDeletedObjects.h @@ -27,7 +27,7 @@ class TestDeletedObjects : public QObject Q_OBJECT private: - void createAndDelete(Database* db, int delObjectsSize); + void createAndDelete(QSharedPointer db, int delObjectsSize); private slots: void initTestCase(); -- cgit v1.2.3