Add signal for changes in Group.

This commit is contained in:
Felix Geyer
2010-08-15 15:03:47 +02:00
parent bfb75da123
commit e28ed4891b
10 changed files with 94 additions and 22 deletions

View File

@@ -33,6 +33,11 @@ Group* Database::rootGroup()
return m_rootGroup;
}
const Group* Database::rootGroup() const
{
return m_rootGroup;
}
void Database::setRootGroup(Group* group)
{
Q_ASSERT(group == 0 || group->database() == this);

View File

@@ -34,6 +34,7 @@ class Database : public QObject
public:
Database();
Group* rootGroup();
const Group* rootGroup() const;
void setRootGroup(Group* group);
Metadata* metadata();
static QImage icon(int number);
@@ -41,6 +42,9 @@ public:
Entry* resolveEntry(const Uuid& uuid);
Group* resolveGroup(const Uuid& uuid);
Q_SIGNALS:
void groupChanged(const Group* group);
private:
Entry* recFindEntry(const Uuid& uuid, Group* group);
Group* recFindGroup(const Uuid& uuid, Group* group);

View File

@@ -79,6 +79,8 @@ void Group::setUuid(const Uuid& uuid)
void Group::setName(const QString& name)
{
m_name = name;
Q_EMIT groupChanged(this);
}
void Group::setNotes(const QString& notes)
@@ -92,6 +94,8 @@ void Group::setIcon(int iconNumber)
m_iconNumber = iconNumber;
m_customIcon = Uuid();
Q_EMIT groupChanged(this);
}
void Group::setIcon(const Uuid& uuid)
@@ -100,6 +104,8 @@ void Group::setIcon(const Uuid& uuid)
m_iconNumber = 0;
m_customIcon = uuid;
Q_EMIT groupChanged(this);
}
void Group::setTimeInfo(const TimeInfo& timeInfo)
@@ -135,6 +141,7 @@ void Group::setParent(Group* parent)
m_parent->m_children.removeAll(this);
}
else if (m_db) {
// parent was a Database
m_db->setRootGroup(0);
}
@@ -173,6 +180,11 @@ const Database* Group::database() const
return m_db;
}
QList<Group*> Group::children()
{
return m_children;
}
QList<const Group*> Group::children() const
{
QList<const Group*> constChildren;
@@ -183,9 +195,9 @@ QList<const Group*> Group::children() const
return constChildren;
}
QList<Group*> Group::children()
QList<Entry*> Group::entries()
{
return m_children;
return m_entries;
}
QList<const Entry*> Group::entries() const
@@ -198,11 +210,6 @@ QList<const Entry*> Group::entries() const
return constEntries;
}
QList<Entry*> Group::entries()
{
return m_entries;
}
void Group::addEntry(Entry *entry)
{
Q_ASSERT(entry != 0);
@@ -217,6 +224,9 @@ void Group::removeEntry(Entry* entry)
void Group::recSetDatabase(Database* db)
{
disconnect(SIGNAL(groupChanged(const Group*)), m_db);
connect(this, SIGNAL(groupChanged(const Group*)), db, SIGNAL(groupChanged(const Group*)));
m_db = db;
Q_FOREACH (Group* group, m_children) {

View File

@@ -56,13 +56,16 @@ public:
void setParent(Database* db);
const Database* database() const;
QList<const Group*> children() const;
QList<Group*> children();
QList<const Entry*> entries() const;
QList<const Group*> children() const;
QList<Entry*> entries();
QList<const Entry*> entries() const;
void addEntry(Entry* entry);
void removeEntry(Entry* entry);
Q_SIGNALS:
void groupChanged(const Group* group);
private:
void recSetDatabase(Database* db);

View File

@@ -35,6 +35,7 @@ Uuid::Uuid(const QByteArray& data)
Uuid Uuid::random() {
QByteArray randomAray;
// TODO fill with random data
randomAray.fill(1, 16);
return Uuid(randomAray);
}