Get rid of Database pointer in Metadata.

This commit is contained in:
Felix Geyer 2012-05-14 17:04:05 +02:00
parent 10e24e7343
commit cd41727583
6 changed files with 17 additions and 17 deletions

View file

@ -42,6 +42,7 @@ Database::Database()
m_uuidMap.insert(m_uuid, this); m_uuidMap.insert(m_uuid, this);
connect(m_metadata, SIGNAL(modified()), this, SIGNAL(modified())); connect(m_metadata, SIGNAL(modified()), this, SIGNAL(modified()));
connect(m_metadata, SIGNAL(nameTextChanged()), this, SIGNAL(nameTextChanged()));
} }
Database::~Database() Database::~Database()

View file

@ -105,6 +105,7 @@ Q_SIGNALS:
void groupRemoved(); void groupRemoved();
void groupAboutToMove(Group* group, Group* toGroup, int index); void groupAboutToMove(Group* group, Group* toGroup, int index);
void groupMoved(); void groupMoved();
void nameTextChanged();
void modified(); void modified();
private: private:

View file

@ -17,14 +17,12 @@
#include "Metadata.h" #include "Metadata.h"
#include "core/Database.h"
#include "core/Entry.h" #include "core/Entry.h"
#include "core/Group.h" #include "core/Group.h"
#include "core/Tools.h" #include "core/Tools.h"
Metadata::Metadata(Database* parent) Metadata::Metadata(QObject* parent)
: QObject(parent) : QObject(parent)
, m_parent(parent)
{ {
m_generator = "KeePassX"; m_generator = "KeePassX";
m_maintenanceHistoryDays = 365; m_maintenanceHistoryDays = 365;
@ -258,7 +256,7 @@ void Metadata::setGenerator(const QString& value)
void Metadata::setName(const QString& value) void Metadata::setName(const QString& value)
{ {
if (set(m_name, value, m_nameChanged)) { 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); m_customFields.remove(key);
Q_EMIT modified(); Q_EMIT modified();
} }
const Database* Metadata::database() const
{
return m_parent;
}

View file

@ -34,7 +34,7 @@ class Metadata : public QObject
Q_OBJECT Q_OBJECT
public: public:
explicit Metadata(Database* parent); explicit Metadata(QObject* parent = 0);
QString generator() const; QString generator() const;
QString name() const; QString name() const;
@ -69,7 +69,6 @@ public:
int historyMaxItems() const; int historyMaxItems() const;
int historyMaxSize() const; int historyMaxSize() const;
QHash<QString, QString> customFields() const; QHash<QString, QString> customFields() const;
const Database* database() const;
static const int defaultHistoryMaxItems; static const int defaultHistoryMaxItems;
static const int defaultHistoryMaxSize; static const int defaultHistoryMaxSize;
@ -108,15 +107,13 @@ public:
void setUpdateDatetime(bool value); void setUpdateDatetime(bool value);
Q_SIGNALS: Q_SIGNALS:
void nameTextChanged(Database* db); void nameTextChanged();
void modified(); void modified();
private: private:
template <class P, class V> bool set(P& property, const V& value); template <class P, class V> bool set(P& property, const V& value);
template <class P, class V> bool set(P& property, const V& value, QDateTime& dateTime); template <class P, class V> bool set(P& property, const V& value, QDateTime& dateTime);
Database* const m_parent;
QString m_generator; QString m_generator;
QString m_name; QString m_name;
QDateTime m_nameChanged; QDateTime m_nameChanged;

View file

@ -390,6 +390,13 @@ void DatabaseTabWidget::updateTabName(Database* db)
Q_EMIT tabNameChanged(); Q_EMIT tabNameChanged();
} }
void DatabaseTabWidget::updateTabNameFromSender()
{
Q_ASSERT(qobject_cast<Database*>(sender()));
updateTabName(static_cast<Database*>(sender()));
}
int DatabaseTabWidget::databaseIndex(Database* db) int DatabaseTabWidget::databaseIndex(Database* db)
{ {
QWidget* dbWidget = m_dbList.value(db).dbWidget; QWidget* dbWidget = m_dbList.value(db).dbWidget;
@ -434,8 +441,7 @@ void DatabaseTabWidget::insertDatabase(Database* db, const DatabaseManagerStruct
int index = databaseIndex(db); int index = databaseIndex(db);
setCurrentIndex(index); setCurrentIndex(index);
connect(db->metadata(), SIGNAL(nameTextChanged(Database*)), connect(db, SIGNAL(nameTextChanged()), SLOT(updateTabNameFromSender()));
SLOT(updateTabName(Database*)));
connect(dbStruct.dbWidget->entryView(), SIGNAL(entrySelectionChanged()), connect(dbStruct.dbWidget->entryView(), SIGNAL(entrySelectionChanged()),
SLOT(emitEntrySelectionChanged())); SLOT(emitEntrySelectionChanged()));
connect(dbStruct.dbWidget, SIGNAL(closeRequest()), SLOT(closeDatabaseFromSender())); connect(dbStruct.dbWidget, SIGNAL(closeRequest()), SLOT(closeDatabaseFromSender()));
@ -457,7 +463,8 @@ DatabaseWidget* DatabaseTabWidget::currentDatabaseWidget()
void DatabaseTabWidget::modified() void DatabaseTabWidget::modified()
{ {
Q_ASSERT(sender()); Q_ASSERT(qobject_cast<Database*>(sender()));
Database* db = static_cast<Database*>(sender()); Database* db = static_cast<Database*>(sender());
DatabaseManagerStruct& dbStruct = m_dbList[db]; DatabaseManagerStruct& dbStruct = m_dbList[db];
if (!dbStruct.modified) { if (!dbStruct.modified) {

View file

@ -78,6 +78,7 @@ Q_SIGNALS:
private Q_SLOTS: private Q_SLOTS:
void updateTabName(Database* db); void updateTabName(Database* db);
void updateTabNameFromSender();
void openDatabaseDialog(const QString& pw = QString(), const QString& keyFile = QString()); void openDatabaseDialog(const QString& pw = QString(), const QString& keyFile = QString());
void openDatabaseRead(); void openDatabaseRead();
void openDatabaseCleanup(); void openDatabaseCleanup();