From cd4172758366a9bbc51d6292db0126abe953d94b Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Mon, 14 May 2012 17:04:05 +0200 Subject: [PATCH] Get rid of Database pointer in Metadata. --- src/core/Database.cpp | 1 + src/core/Database.h | 1 + src/core/Metadata.cpp | 11 ++--------- src/core/Metadata.h | 7 ++----- src/gui/DatabaseTabWidget.cpp | 13 ++++++++++--- src/gui/DatabaseTabWidget.h | 1 + 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/core/Database.cpp b/src/core/Database.cpp index 2b2b2163c..b8ab70688 100644 --- a/src/core/Database.cpp +++ b/src/core/Database.cpp @@ -42,6 +42,7 @@ Database::Database() m_uuidMap.insert(m_uuid, this); connect(m_metadata, SIGNAL(modified()), this, SIGNAL(modified())); + connect(m_metadata, SIGNAL(nameTextChanged()), this, SIGNAL(nameTextChanged())); } Database::~Database() diff --git a/src/core/Database.h b/src/core/Database.h index 5a6fdd23b..9600ba51a 100644 --- a/src/core/Database.h +++ b/src/core/Database.h @@ -105,6 +105,7 @@ Q_SIGNALS: void groupRemoved(); void groupAboutToMove(Group* group, Group* toGroup, int index); void groupMoved(); + void nameTextChanged(); void modified(); private: diff --git a/src/core/Metadata.cpp b/src/core/Metadata.cpp index 532398657..52a7928ff 100644 --- a/src/core/Metadata.cpp +++ b/src/core/Metadata.cpp @@ -17,14 +17,12 @@ #include "Metadata.h" -#include "core/Database.h" #include "core/Entry.h" #include "core/Group.h" #include "core/Tools.h" -Metadata::Metadata(Database* parent) +Metadata::Metadata(QObject* parent) : QObject(parent) - , m_parent(parent) { m_generator = "KeePassX"; m_maintenanceHistoryDays = 365; @@ -258,7 +256,7 @@ void Metadata::setGenerator(const QString& value) void Metadata::setName(const QString& value) { if (set(m_name, value, m_nameChanged)) { - Q_EMIT nameTextChanged(m_parent); + Q_EMIT nameTextChanged(); } } @@ -424,8 +422,3 @@ void Metadata::removeCustomField(const QString& key) m_customFields.remove(key); Q_EMIT modified(); } - -const Database* Metadata::database() const -{ - return m_parent; -} diff --git a/src/core/Metadata.h b/src/core/Metadata.h index 79dbe06b9..07464fe62 100644 --- a/src/core/Metadata.h +++ b/src/core/Metadata.h @@ -34,7 +34,7 @@ class Metadata : public QObject Q_OBJECT public: - explicit Metadata(Database* parent); + explicit Metadata(QObject* parent = 0); QString generator() const; QString name() const; @@ -69,7 +69,6 @@ public: int historyMaxItems() const; int historyMaxSize() const; QHash customFields() const; - const Database* database() const; static const int defaultHistoryMaxItems; static const int defaultHistoryMaxSize; @@ -108,15 +107,13 @@ public: void setUpdateDatetime(bool value); Q_SIGNALS: - void nameTextChanged(Database* db); + void nameTextChanged(); void modified(); private: template bool set(P& property, const V& value); template bool set(P& property, const V& value, QDateTime& dateTime); - Database* const m_parent; - QString m_generator; QString m_name; QDateTime m_nameChanged; diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index dec24eff1..688b0b975 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -390,6 +390,13 @@ void DatabaseTabWidget::updateTabName(Database* db) Q_EMIT tabNameChanged(); } +void DatabaseTabWidget::updateTabNameFromSender() +{ + Q_ASSERT(qobject_cast(sender())); + + updateTabName(static_cast(sender())); +} + int DatabaseTabWidget::databaseIndex(Database* db) { QWidget* dbWidget = m_dbList.value(db).dbWidget; @@ -434,8 +441,7 @@ void DatabaseTabWidget::insertDatabase(Database* db, const DatabaseManagerStruct int index = databaseIndex(db); setCurrentIndex(index); - connect(db->metadata(), SIGNAL(nameTextChanged(Database*)), - SLOT(updateTabName(Database*))); + connect(db, SIGNAL(nameTextChanged()), SLOT(updateTabNameFromSender())); connect(dbStruct.dbWidget->entryView(), SIGNAL(entrySelectionChanged()), SLOT(emitEntrySelectionChanged())); connect(dbStruct.dbWidget, SIGNAL(closeRequest()), SLOT(closeDatabaseFromSender())); @@ -457,7 +463,8 @@ DatabaseWidget* DatabaseTabWidget::currentDatabaseWidget() void DatabaseTabWidget::modified() { - Q_ASSERT(sender()); + Q_ASSERT(qobject_cast(sender())); + Database* db = static_cast(sender()); DatabaseManagerStruct& dbStruct = m_dbList[db]; if (!dbStruct.modified) { diff --git a/src/gui/DatabaseTabWidget.h b/src/gui/DatabaseTabWidget.h index 8ec617df5..5a942f61e 100644 --- a/src/gui/DatabaseTabWidget.h +++ b/src/gui/DatabaseTabWidget.h @@ -78,6 +78,7 @@ Q_SIGNALS: private Q_SLOTS: void updateTabName(Database* db); + void updateTabNameFromSender(); void openDatabaseDialog(const QString& pw = QString(), const QString& keyFile = QString()); void openDatabaseRead(); void openDatabaseCleanup();