Reloaded languages, some work on database consistency.
This commit is contained in:
parent
1f601714ce
commit
7e07707296
10 changed files with 127 additions and 53 deletions
|
@ -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 &feed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -426,6 +414,18 @@
|
|||
<source>Add new &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: "cs", "nl", "en", "cs_CZ", "en_GB", "en_US".</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>
|
||||
|
|
|
@ -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 &feed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -426,6 +414,18 @@
|
|||
<source>Add new &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: "cs", "nl", "en", "cs_CZ", "en_GB", "en_US".</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>
|
||||
|
|
|
@ -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 &feed</source>
|
||||
<translation>Voeg nieuwe &feed toe</translation>
|
||||
|
@ -426,6 +414,18 @@
|
|||
<source>Add new &category</source>
|
||||
<translation>Voeg nieuwe &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: "cs", "nl", "en", "cs_CZ", "en_GB", "en_US".</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>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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()->
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue