Reloaded languages, some work on database consistency.

This commit is contained in:
Martin Rotter 2013-12-17 16:50:05 +01:00
parent 1f601714ce
commit 7e07707296
10 changed files with 127 additions and 53 deletions

View file

@ -374,22 +374,10 @@
<source>Mark selected feed(s)/category(ies) as read.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages read.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages unread.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete selected messages.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete all messages.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add new &amp;feed</source>
<translation type="unfinished"></translation>
@ -426,6 +414,18 @@
<source>Add new &amp;category</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages from selected feeds read. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages from selected feeds unread. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete all messages from selected feeds. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormSettings</name>
@ -935,7 +935,7 @@
</message>
<message>
<source>LANG_ABBREV</source>
<extracomment>Abbreviation of language, e.g. en. Use ISO 639-1 code here!</extracomment>
<extracomment>Abbreviation of language, e.g. en. Use ISO 639-1 code here. They may be combined with ISO 3166-1 (alpha-2) codes. Examples: &quot;cs&quot;, &quot;nl&quot;, &quot;en&quot;, &quot;cs_CZ&quot;, &quot;en_GB&quot;, &quot;en_US&quot;.</extracomment>
<translation>cs</translation>
</message>
<message>
@ -953,6 +953,21 @@
<extracomment>Email of translator - optional.</extracomment>
<translation>rotter.martinos@gmail.com</translation>
</message>
<message>
<source>%1
Category type: standard
Creation date: %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<translation>
<numerusform>%n nepřečtená zpráva.</numerusform>
<numerusform>%n nepřečtené zprávy.</numerusform>
<numerusform>%n nepřečtených zpráv.</numerusform>
</translation>
</message>
</context>
<context>
<name>ShortcutCatcher</name>

View file

@ -374,22 +374,10 @@
<source>Mark selected feed(s)/category(ies) as read.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages read.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages unread.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete selected messages.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete all messages.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add new &amp;feed</source>
<translation type="unfinished"></translation>
@ -426,6 +414,18 @@
<source>Add new &amp;category</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages from selected feeds read. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages from selected feeds unread. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete all messages from selected feeds. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormSettings</name>
@ -927,7 +927,7 @@
</message>
<message>
<source>LANG_ABBREV</source>
<extracomment>Abbreviation of language, e.g. en. Use ISO 639-1 code here!</extracomment>
<extracomment>Abbreviation of language, e.g. en. Use ISO 639-1 code here. They may be combined with ISO 3166-1 (alpha-2) codes. Examples: &quot;cs&quot;, &quot;nl&quot;, &quot;en&quot;, &quot;cs_CZ&quot;, &quot;en_GB&quot;, &quot;en_US&quot;.</extracomment>
<translation>en</translation>
</message>
<message>
@ -945,6 +945,20 @@
<extracomment>Email of translator - optional.</extracomment>
<translation>rotter.martinos@gmail.com</translation>
</message>
<message>
<source>%1
Category type: standard
Creation date: %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
</context>
<context>
<name>ShortcutCatcher</name>

View file

@ -374,22 +374,10 @@
<source>Mark selected feed(s)/category(ies) as read.</source>
<translation>Markeer geselecteerde feed(s)/categorie(ën) als gelezen.</translation>
</message>
<message>
<source>Mark all messages read.</source>
<translation>Markeer alle berichten als gelezen.</translation>
</message>
<message>
<source>Mark all messages unread.</source>
<translation>Markeer alle berichten als ongelezen.</translation>
</message>
<message>
<source>Delete selected messages.</source>
<translation>Verwijder geselecteerde berichten.</translation>
</message>
<message>
<source>Delete all messages.</source>
<translation>Verwijder alle berichten.</translation>
</message>
<message>
<source>Add new &amp;feed</source>
<translation>Voeg nieuwe &amp;feed toe</translation>
@ -426,6 +414,18 @@
<source>Add new &amp;category</source>
<translation>Voeg nieuwe &amp;categorie toe</translation>
</message>
<message>
<source>Mark all messages from selected feeds read. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mark all messages from selected feeds unread. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete all messages from selected feeds. This does NOT take message filters into account.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FormSettings</name>
@ -935,7 +935,7 @@
</message>
<message>
<source>LANG_ABBREV</source>
<extracomment>Abbreviation of language, e.g. en. Use ISO 639-1 code here!</extracomment>
<extracomment>Abbreviation of language, e.g. en. Use ISO 639-1 code here. They may be combined with ISO 3166-1 (alpha-2) codes. Examples: &quot;cs&quot;, &quot;nl&quot;, &quot;en&quot;, &quot;cs_CZ&quot;, &quot;en_GB&quot;, &quot;en_US&quot;.</extracomment>
<translation>nl</translation>
</message>
<message>
@ -953,6 +953,20 @@
<extracomment>Email of translator - optional.</extracomment>
<translation>elbert.pol@gmail.com</translation>
</message>
<message>
<source>%1
Category type: standard
Creation date: %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%n unread message(s).</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
</context>
<context>
<name>ShortcutCatcher</name>

View file

@ -130,15 +130,27 @@ QSqlDatabase DatabaseFactory::addConnection(const QString &connection_name) {
return initialize(connection_name);
}
else {
QSqlDatabase database = QSqlDatabase::addDatabase(DATABASE_DRIVER,
connection_name);
QDir db_path(getDatabasePath());
QFile db_file(db_path.absoluteFilePath(APP_DB_FILE));
QSqlDatabase database;
// Setup database file path.
database.setDatabaseName(db_file.fileName());
if (QSqlDatabase::contains(connection_name)) {
qDebug("Connection '%s' is already active.",
qPrintable(connection_name));
if (!database.open()) {
// This database connection was added previously, no need to
// setup its properties.
database = QSqlDatabase::database(connection_name);
}
else {
database = QSqlDatabase::addDatabase(DATABASE_DRIVER, connection_name);
QDir db_path(getDatabasePath());
QFile db_file(db_path.absoluteFilePath(APP_DB_FILE));
// Setup database file path.
database.setDatabaseName(db_file.fileName());
}
if (!database.isOpen() && !database.open()) {
qFatal("Database was NOT opened. Delivered error message: '%s'",
qPrintable(database.lastError().text()));
}
@ -147,10 +159,6 @@ QSqlDatabase DatabaseFactory::addConnection(const QString &connection_name) {
}
}
QSqlDatabase DatabaseFactory::getConnection(const QString &connection_name) {
return QSqlDatabase::database(connection_name);
}
void DatabaseFactory::removeConnection(const QString &connection_name) {
qDebug("Removing database connection '%s'.", qPrintable(connection_name));
QSqlDatabase::removeDatabase(connection_name);

View file

@ -40,7 +40,8 @@ class DatabaseFactory : public QObject {
// NOTE: This returns OPENED database.
QSqlDatabase addConnection(const QString &connection_name);
QSqlDatabase getConnection(const QString &connection_name);
// Removes connection.
void removeConnection(const QString &connection_name);
// Singleton getter.

View file

@ -23,10 +23,18 @@ int FeedsModelFeed::countOfAllMessages() const {
return m_totalCount;
}
void FeedsModelFeed::setCountOfAllMessages(int count) {
m_totalCount = count;
}
int FeedsModelFeed::countOfUnreadMessages() const {
return m_unreadCount;
}
void FeedsModelFeed::setCountOfUnreadMessages(int count) {
m_unreadCount = count;
}
FeedsModelFeed::Type FeedsModelFeed::type() const {
return m_type;
}
@ -34,3 +42,7 @@ FeedsModelFeed::Type FeedsModelFeed::type() const {
void FeedsModelFeed::setType(const Type &type) {
m_type = type;
}
void FeedsModelFeed::updateCounts() {
//QSqlDatabase database = DatabaseFactory::getInstance()->
}

View file

@ -27,12 +27,19 @@ class FeedsModelFeed : public FeedsModelRootItem {
// NOTE: For feeds, counts are stored internally
// and can be updated from the database.
int countOfAllMessages() const;
void setCountOfAllMessages(int count);
int countOfUnreadMessages() const;
void setCountOfUnreadMessages(int count);
// Other getters/setters.
Type type() const;
void setType(const Type &type);
public slots:
// Updates counts of all/unread messages for this feed.
void updateCounts();
protected:
Type m_type;
int m_totalCount;

View file

@ -26,7 +26,7 @@ QVariant FeedsModelStandardCategory::data(int column, int role) const {
}
else if (column == FDS_MODEL_COUNTS_INDEX) {
// TODO: tady dat plural a singular
return QObject::tr("%1 unread messages.").arg(countOfUnreadMessages());
return QObject::tr("%n unread message(s).", "", countOfUnreadMessages());
}
else {
return QVariant();

View file

@ -49,6 +49,9 @@ void FeedsView::setupAppearance() {
void FeedsView::selectionChanged(const QItemSelection &selected,
const QItemSelection &deselected) {
Q_UNUSED(selected)
Q_UNUSED(deselected)
QModelIndexList selection = selectionModel()->selectedRows();
QModelIndexList mapped_selection = m_proxyModel->mapListToSource(selection);
QList<FeedsModelFeed*> selected_feeds = m_sourceModel->feedsForIndexes(mapped_selection);