Saving of multicolumn sorts enabled.
This commit is contained in:
parent
78872dfa21
commit
4abdc1738c
@ -48,7 +48,7 @@ class Message {
|
|||||||
|
|
||||||
// Creates Message from given record, which contains
|
// Creates Message from given record, which contains
|
||||||
// row from query SELECT * FROM Messages WHERE ....;
|
// row from query SELECT * FROM Messages WHERE ....;
|
||||||
static Message fromSqlRecord(const QSqlRecord &record, bool *result = NULL);
|
static Message fromSqlRecord(const QSqlRecord &record, bool *result = nullptr);
|
||||||
|
|
||||||
QString m_title;
|
QString m_title;
|
||||||
QString m_url;
|
QString m_url;
|
||||||
|
@ -25,25 +25,40 @@
|
|||||||
#include "miscellaneous/databasequeries.h"
|
#include "miscellaneous/databasequeries.h"
|
||||||
#include "services/abstract/serviceroot.h"
|
#include "services/abstract/serviceroot.h"
|
||||||
|
|
||||||
|
#include <QSqlField>
|
||||||
|
|
||||||
|
|
||||||
MessagesModel::MessagesModel(QObject *parent)
|
MessagesModel::MessagesModel(QObject *parent)
|
||||||
: QSqlRelationalTableModel(parent, qApp->database()->connection(QSL("MessagesModel"), DatabaseFactory::FromSettings)),
|
: QSqlRelationalTableModel(parent, qApp->database()->connection(QSL("MessagesModel"), DatabaseFactory::FromSettings)),
|
||||||
m_fieldNames(QHash<int,QString>()), m_sortColumn(QList<int>()), m_sortOrder(QList<Qt::SortOrder>()),
|
m_fieldNames(QMap<int,QString>()), m_sortColumn(QList<int>()), m_sortOrder(QList<Qt::SortOrder>()),
|
||||||
m_messageHighlighter(NoHighlighting), m_customDateFormat(QString()) {
|
m_messageHighlighter(NoHighlighting), m_customDateFormat(QString()) {
|
||||||
setupFonts();
|
setupFonts();
|
||||||
setupIcons();
|
setupIcons();
|
||||||
setupHeaderData();
|
setupHeaderData();
|
||||||
updateDateFormat();
|
updateDateFormat();
|
||||||
|
|
||||||
//m_fieldNames[0] =
|
m_fieldNames[MSG_DB_ID_INDEX] = "Messages.id";
|
||||||
|
m_fieldNames[MSG_DB_READ_INDEX] = "Messages.is_read";
|
||||||
|
m_fieldNames[MSG_DB_DELETED_INDEX] = "Messages.is_deleted";
|
||||||
|
m_fieldNames[MSG_DB_IMPORTANT_INDEX] = "Messages.is_important";
|
||||||
|
m_fieldNames[MSG_DB_FEED_TITLE_INDEX] = "Feeds.title";
|
||||||
|
m_fieldNames[MSG_DB_TITLE_INDEX] = "Messages.title";
|
||||||
|
m_fieldNames[MSG_DB_URL_INDEX] = "Messages.url";
|
||||||
|
m_fieldNames[MSG_DB_AUTHOR_INDEX] = "Messages.author";
|
||||||
|
m_fieldNames[MSG_DB_DCREATED_INDEX] = "Messages.date_created";
|
||||||
|
m_fieldNames[MSG_DB_CONTENTS_INDEX] = "Messages.contents";
|
||||||
|
m_fieldNames[MSG_DB_PDELETED_INDEX] = "Messages.is_pdeleted";
|
||||||
|
m_fieldNames[MSG_DB_ENCLOSURES_INDEX] = "Messages.enclosures";
|
||||||
|
m_fieldNames[MSG_DB_ACCOUNT_ID_INDEX] = "Messages.account_id";
|
||||||
|
m_fieldNames[MSG_DB_CUSTOM_ID_INDEX] = "Messages.custom_id";
|
||||||
|
m_fieldNames[MSG_DB_CUSTOM_HASH_INDEX] = "Messages.custom_hash";
|
||||||
|
m_fieldNames[MSG_DB_FEED_CUSTOM_ID_INDEX] = "Messages.feed";
|
||||||
|
|
||||||
// Set desired table and edit strategy.
|
// Set desired table and edit strategy.
|
||||||
// NOTE: Changes to the database are actually NOT submitted
|
// NOTE: Changes to the database are actually NOT submitted
|
||||||
// via model, but via DIRECT SQL calls are used to do persistent messages.
|
// via model, but via DIRECT SQL calls are used to do persistent messages.
|
||||||
setEditStrategy(QSqlTableModel::OnManualSubmit);
|
|
||||||
setTable(QSL("Messages"));
|
setTable(QSL("Messages"));
|
||||||
//setRelation(MSG_DB_FEED_INDEX, QSqlRelation("Feeds", "custom_id", "title"));
|
setEditStrategy(QSqlTableModel::OnManualSubmit);
|
||||||
|
|
||||||
loadMessages(nullptr);
|
loadMessages(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,23 +66,31 @@ MessagesModel::~MessagesModel() {
|
|||||||
qDebug("Destroying MessagesModel instance.");
|
qDebug("Destroying MessagesModel instance.");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MessagesModel::selectStatement() const {
|
QString MessagesModel::formatFields() const {
|
||||||
//return QSqlRelationalTableModel::selectStatement();
|
return m_fieldNames.values().join(QSL(", "));
|
||||||
|
}
|
||||||
|
|
||||||
return QL1S("SELECT Messages.id, is_read, is_deleted, is_important, Feeds.title, Messages.title, Messages.url, author, Messages.date_created, contents, is_pdeleted, enclosures, Messages.account_id, Messages.custom_id, custom_hash, Messages.feed "
|
QString MessagesModel::selectStatement() const {
|
||||||
"FROM Messages LEFT JOIN Feeds ON Messages.feed = Feeds.custom_id WHERE ") +
|
return QL1S("SELECT ") + formatFields() +
|
||||||
filter() + " " + orderByClause();
|
QSL(" FROM Messages LEFT JOIN Feeds ON Messages.feed = Feeds.custom_id WHERE ") +
|
||||||
|
filter() + orderByClause() + QL1C(';');
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MessagesModel::orderByClause() const {
|
QString MessagesModel::orderByClause() const {
|
||||||
|
if (m_sortColumn.isEmpty()) {
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
QStringList sorts;
|
||||||
|
|
||||||
auto aaa = record().fieldName(4);
|
for (int i = m_sortColumn.size() - 1; i >= 0; i--) {
|
||||||
|
QString field_name(m_fieldNames[m_sortColumn[i]]);
|
||||||
return QSqlRelationalTableModel::orderByClause();
|
|
||||||
|
|
||||||
QString clause(QSL("ORDER BY "));
|
|
||||||
|
|
||||||
|
sorts.append(field_name + (m_sortOrder[i] == Qt::AscendingOrder ? QSL(" ASC") : QSL(" DESC")));
|
||||||
|
}
|
||||||
|
|
||||||
|
return QL1S(" ORDER BY ") + sorts.join(QSL(", "));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesModel::setupIcons() {
|
void MessagesModel::setupIcons() {
|
||||||
@ -101,6 +124,8 @@ void MessagesModel::addSortState(int column, Qt::SortOrder order) {
|
|||||||
|
|
||||||
m_sortColumn.append(column);
|
m_sortColumn.append(column);
|
||||||
m_sortOrder.append(order);
|
m_sortOrder.append(order);
|
||||||
|
|
||||||
|
qDebug("Added sort state, select statement is now:\n'%s'", qPrintable(selectStatement()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesModel::setupFonts() {
|
void MessagesModel::setupFonts() {
|
||||||
@ -127,8 +152,6 @@ void MessagesModel::loadMessages(RootItem *item) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug("Select statement when selecting msg from item:\n'%s'", qPrintable(selectStatement()));
|
|
||||||
|
|
||||||
fetchAllData();
|
fetchAllData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,9 +50,6 @@ class MessagesModel : public QSqlRelationalTableModel {
|
|||||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
|
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
|
||||||
Qt::ItemFlags flags(const QModelIndex &index) const;
|
Qt::ItemFlags flags(const QModelIndex &index) const;
|
||||||
|
|
||||||
QString orderByClause() const;
|
|
||||||
QString selectStatement() const;
|
|
||||||
|
|
||||||
// Returns message at given index.
|
// Returns message at given index.
|
||||||
Message messageAt(int row_index) const;
|
Message messageAt(int row_index) const;
|
||||||
int messageId(int row_index) const;
|
int messageId(int row_index) const;
|
||||||
@ -102,13 +99,17 @@ class MessagesModel : public QSqlRelationalTableModel {
|
|||||||
void setupFonts();
|
void setupFonts();
|
||||||
void setupIcons();
|
void setupIcons();
|
||||||
|
|
||||||
|
QString orderByClause() const;
|
||||||
|
QString selectStatement() const;
|
||||||
|
QString formatFields() const;
|
||||||
|
|
||||||
// Fetches ALL available data to the model.
|
// Fetches ALL available data to the model.
|
||||||
void fetchAllData();
|
void fetchAllData();
|
||||||
|
|
||||||
// NOTE: These two lists contain data for multicolumn sorting.
|
// NOTE: These two lists contain data for multicolumn sorting.
|
||||||
// They are always same length. Most important sort column/order
|
// They are always same length. Most important sort column/order
|
||||||
// are located in the end of these lists.
|
// are located in the end of these lists.
|
||||||
QHash<int,QString> m_fieldNames;
|
QMap<int,QString> m_fieldNames;
|
||||||
QList<int> m_sortColumn;
|
QList<int> m_sortColumn;
|
||||||
QList<Qt::SortOrder> m_sortOrder;
|
QList<Qt::SortOrder> m_sortOrder;
|
||||||
|
|
||||||
|
@ -584,6 +584,4 @@ void MessagesView::onSortIndicatorChanged(int column, Qt::SortOrder order) {
|
|||||||
// Repopulate the shit.
|
// Repopulate the shit.
|
||||||
sort(column, order, true, false, false);
|
sort(column, order, true, false, false);
|
||||||
emit currentMessageRemoved();
|
emit currentMessageRemoved();
|
||||||
|
|
||||||
qDebug("Current order by clause is '%s'.", qPrintable(m_sourceModel->orderByClause()));
|
|
||||||
}
|
}
|
||||||
|
@ -57,8 +57,8 @@ class SystemTrayIcon : public QSystemTrayIcon {
|
|||||||
void setNumber(int number = -1, bool any_new_message = false);
|
void setNumber(int number = -1, bool any_new_message = false);
|
||||||
|
|
||||||
void showMessage(const QString &title, const QString &message, MessageIcon icon = Information,
|
void showMessage(const QString &title, const QString &message, MessageIcon icon = Information,
|
||||||
int milliseconds_timeout_hint = TRAY_ICON_BUBBLE_TIMEOUT, QObject *click_target = NULL,
|
int milliseconds_timeout_hint = TRAY_ICON_BUBBLE_TIMEOUT, QObject *click_target = nullptr,
|
||||||
const char *click_slot = NULL);
|
const char *click_slot = nullptr);
|
||||||
|
|
||||||
// Returns true if tray icon CAN be constructed on this machine.
|
// Returns true if tray icon CAN be constructed on this machine.
|
||||||
static bool isSystemTrayAvailable();
|
static bool isSystemTrayAvailable();
|
||||||
|
@ -107,8 +107,8 @@ class Application : public QtSingleApplication {
|
|||||||
// Displays given simple message in tray icon bubble or OSD
|
// Displays given simple message in tray icon bubble or OSD
|
||||||
// or in message box if tray icon is disabled.
|
// or in message box if tray icon is disabled.
|
||||||
void showGuiMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon message_type,
|
void showGuiMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon message_type,
|
||||||
QWidget *parent = NULL, bool show_at_least_msgbox = false,
|
QWidget *parent = nullptr, bool show_at_least_msgbox = false,
|
||||||
QObject *invokation_target = NULL, const char *invokation_slot = NULL);
|
QObject *invokation_target = nullptr, const char *invokation_slot = nullptr);
|
||||||
|
|
||||||
// Returns pointer to "GOD" application singleton.
|
// Returns pointer to "GOD" application singleton.
|
||||||
inline static Application *instance() {
|
inline static Application *instance() {
|
||||||
|
46
src/miscellaneous/databasequeries.h
Normal file → Executable file
46
src/miscellaneous/databasequeries.h
Normal file → Executable file
@ -49,26 +49,26 @@ class DatabaseQueries {
|
|||||||
|
|
||||||
// Obtain counts of unread/all messages.
|
// Obtain counts of unread/all messages.
|
||||||
static QMap<int,QPair<int,int> > getMessageCountsForCategory(QSqlDatabase db, int custom_id, int account_id,
|
static QMap<int,QPair<int,int> > getMessageCountsForCategory(QSqlDatabase db, int custom_id, int account_id,
|
||||||
bool including_total_counts, bool *ok = NULL);
|
bool including_total_counts, bool *ok = nullptr);
|
||||||
static QMap<int,QPair<int,int> > getMessageCountsForAccount(QSqlDatabase db, int account_id,
|
static QMap<int,QPair<int,int> > getMessageCountsForAccount(QSqlDatabase db, int account_id,
|
||||||
bool including_total_counts, bool *ok = NULL);
|
bool including_total_counts, bool *ok = nullptr);
|
||||||
static int getMessageCountsForFeed(QSqlDatabase db, int feed_custom_id, int account_id,
|
static int getMessageCountsForFeed(QSqlDatabase db, int feed_custom_id, int account_id,
|
||||||
bool including_total_counts, bool *ok = NULL);
|
bool including_total_counts, bool *ok = nullptr);
|
||||||
static int getMessageCountsForBin(QSqlDatabase db, int account_id, bool including_total_counts, bool *ok = NULL);
|
static int getMessageCountsForBin(QSqlDatabase db, int account_id, bool including_total_counts, bool *ok = nullptr);
|
||||||
|
|
||||||
// Get messages (for newspaper view for example).
|
// Get messages (for newspaper view for example).
|
||||||
static QList<Message> getUndeletedMessagesForFeed(QSqlDatabase db, int feed_custom_id, int account_id, bool *ok = NULL);
|
static QList<Message> getUndeletedMessagesForFeed(QSqlDatabase db, int feed_custom_id, int account_id, bool *ok = nullptr);
|
||||||
static QList<Message> getUndeletedMessagesForBin(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static QList<Message> getUndeletedMessagesForBin(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
static QList<Message> getUndeletedMessagesForAccount(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static QList<Message> getUndeletedMessagesForAccount(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
|
|
||||||
// Custom ID accumulators.
|
// Custom ID accumulators.
|
||||||
static QStringList customIdsOfMessagesFromAccount(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static QStringList customIdsOfMessagesFromAccount(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
static QStringList customIdsOfMessagesFromBin(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static QStringList customIdsOfMessagesFromBin(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
static QStringList customIdsOfMessagesFromFeed(QSqlDatabase db, int feed_custom_id, int account_id, bool *ok = NULL);
|
static QStringList customIdsOfMessagesFromFeed(QSqlDatabase db, int feed_custom_id, int account_id, bool *ok = nullptr);
|
||||||
|
|
||||||
// Common accounts methods.
|
// Common accounts methods.
|
||||||
static int updateMessages(QSqlDatabase db, const QList<Message> &messages, int feed_custom_id,
|
static int updateMessages(QSqlDatabase db, const QList<Message> &messages, int feed_custom_id,
|
||||||
int account_id, const QString &url, bool *any_message_changed, bool *ok = NULL);
|
int account_id, const QString &url, bool *any_message_changed, bool *ok = nullptr);
|
||||||
static bool deleteAccount(QSqlDatabase db, int account_id);
|
static bool deleteAccount(QSqlDatabase db, int account_id);
|
||||||
static bool deleteAccountData(QSqlDatabase db, int account_id, bool delete_messages_too);
|
static bool deleteAccountData(QSqlDatabase db, int account_id, bool delete_messages_too);
|
||||||
static bool cleanFeeds(QSqlDatabase db, const QStringList &ids, bool clean_read_only, int account_id);
|
static bool cleanFeeds(QSqlDatabase db, const QStringList &ids, bool clean_read_only, int account_id);
|
||||||
@ -78,21 +78,21 @@ class DatabaseQueries {
|
|||||||
int auto_update_interval);
|
int auto_update_interval);
|
||||||
|
|
||||||
// ownCloud account.
|
// ownCloud account.
|
||||||
static QList<ServiceRoot*> getOwnCloudAccounts(QSqlDatabase db, bool *ok = NULL);
|
static QList<ServiceRoot*> getOwnCloudAccounts(QSqlDatabase db, bool *ok = nullptr);
|
||||||
static bool deleteOwnCloudAccount(QSqlDatabase db, int account_id);
|
static bool deleteOwnCloudAccount(QSqlDatabase db, int account_id);
|
||||||
static bool overwriteOwnCloudAccount(QSqlDatabase db, const QString &username, const QString &password,
|
static bool overwriteOwnCloudAccount(QSqlDatabase db, const QString &username, const QString &password,
|
||||||
const QString &url, bool force_server_side_feed_update, int account_id);
|
const QString &url, bool force_server_side_feed_update, int account_id);
|
||||||
static bool createOwnCloudAccount(QSqlDatabase db, int id_to_assign, const QString &username, const QString &password,
|
static bool createOwnCloudAccount(QSqlDatabase db, int id_to_assign, const QString &username, const QString &password,
|
||||||
const QString &url, bool force_server_side_feed_update);
|
const QString &url, bool force_server_side_feed_update);
|
||||||
static int createAccount(QSqlDatabase db, const QString &code, bool *ok = NULL);
|
static int createAccount(QSqlDatabase db, const QString &code, bool *ok = nullptr);
|
||||||
static Assignment getOwnCloudCategories(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static Assignment getOwnCloudCategories(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
static Assignment getOwnCloudFeeds(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static Assignment getOwnCloudFeeds(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
|
|
||||||
// Standard account.
|
// Standard account.
|
||||||
static bool deleteFeed(QSqlDatabase db, int feed_custom_id, int account_id);
|
static bool deleteFeed(QSqlDatabase db, int feed_custom_id, int account_id);
|
||||||
static bool deleteCategory(QSqlDatabase db, int id);
|
static bool deleteCategory(QSqlDatabase db, int id);
|
||||||
static int addCategory(QSqlDatabase db, int parent_id, int account_id, const QString &title,
|
static int addCategory(QSqlDatabase db, int parent_id, int account_id, const QString &title,
|
||||||
const QString &description, QDateTime creation_date, const QIcon &icon, bool *ok = NULL);
|
const QString &description, QDateTime creation_date, const QIcon &icon, bool *ok = nullptr);
|
||||||
static bool editCategory(QSqlDatabase db, int parent_id, int category_id,
|
static bool editCategory(QSqlDatabase db, int parent_id, int category_id,
|
||||||
const QString &title, const QString &description, const QIcon &icon);
|
const QString &title, const QString &description, const QIcon &icon);
|
||||||
static int addFeed(QSqlDatabase db, int parent_id, int account_id, const QString &title,
|
static int addFeed(QSqlDatabase db, int parent_id, int account_id, const QString &title,
|
||||||
@ -100,18 +100,18 @@ class DatabaseQueries {
|
|||||||
const QString &encoding, const QString &url, bool is_protected,
|
const QString &encoding, const QString &url, bool is_protected,
|
||||||
const QString &username, const QString &password,
|
const QString &username, const QString &password,
|
||||||
Feed::AutoUpdateType auto_update_type,
|
Feed::AutoUpdateType auto_update_type,
|
||||||
int auto_update_interval, StandardFeed::Type feed_format, bool *ok = NULL);
|
int auto_update_interval, StandardFeed::Type feed_format, bool *ok = nullptr);
|
||||||
static bool editFeed(QSqlDatabase db, int parent_id, int feed_id, const QString &title,
|
static bool editFeed(QSqlDatabase db, int parent_id, int feed_id, const QString &title,
|
||||||
const QString &description, const QIcon &icon,
|
const QString &description, const QIcon &icon,
|
||||||
const QString &encoding, const QString &url, bool is_protected,
|
const QString &encoding, const QString &url, bool is_protected,
|
||||||
const QString &username, const QString &password, Feed::AutoUpdateType auto_update_type,
|
const QString &username, const QString &password, Feed::AutoUpdateType auto_update_type,
|
||||||
int auto_update_interval, StandardFeed::Type feed_format);
|
int auto_update_interval, StandardFeed::Type feed_format);
|
||||||
static QList<ServiceRoot*> getAccounts(QSqlDatabase db, bool *ok = NULL);
|
static QList<ServiceRoot*> getAccounts(QSqlDatabase db, bool *ok = nullptr);
|
||||||
static Assignment getCategories(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static Assignment getCategories(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
static Assignment getFeeds(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static Assignment getFeeds(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
|
|
||||||
// TT-RSS acccount.
|
// TT-RSS acccount.
|
||||||
static QList<ServiceRoot*> getTtRssAccounts(QSqlDatabase db, bool *ok = NULL);
|
static QList<ServiceRoot*> getTtRssAccounts(QSqlDatabase db, bool *ok = nullptr);
|
||||||
static bool deleteTtRssAccount(QSqlDatabase db, int account_id);
|
static bool deleteTtRssAccount(QSqlDatabase db, int account_id);
|
||||||
static bool overwriteTtRssAccount(QSqlDatabase db, const QString &username, const QString &password,
|
static bool overwriteTtRssAccount(QSqlDatabase db, const QString &username, const QString &password,
|
||||||
bool auth_protected, const QString &auth_username, const QString &auth_password,
|
bool auth_protected, const QString &auth_username, const QString &auth_password,
|
||||||
@ -120,8 +120,8 @@ class DatabaseQueries {
|
|||||||
const QString &password, bool auth_protected, const QString &auth_username,
|
const QString &password, bool auth_protected, const QString &auth_username,
|
||||||
const QString &auth_password, const QString &url,
|
const QString &auth_password, const QString &url,
|
||||||
bool force_server_side_feed_update);
|
bool force_server_side_feed_update);
|
||||||
static Assignment getTtRssCategories(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static Assignment getTtRssCategories(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
static Assignment getTtRssFeeds(QSqlDatabase db, int account_id, bool *ok = NULL);
|
static Assignment getTtRssFeeds(QSqlDatabase db, int account_id, bool *ok = nullptr);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit DatabaseQueries();
|
explicit DatabaseQueries();
|
||||||
|
@ -61,7 +61,7 @@ class SkinFactory : public QObject {
|
|||||||
QString selectedSkinName() const;
|
QString selectedSkinName() const;
|
||||||
|
|
||||||
// Gets skin about a particular skin.
|
// Gets skin about a particular skin.
|
||||||
Skin skinInfo(const QString &skin_name, bool *ok = NULL) const;
|
Skin skinInfo(const QString &skin_name, bool *ok = nullptr) const;
|
||||||
|
|
||||||
// Returns list of installed skins.
|
// Returns list of installed skins.
|
||||||
QList<Skin> installedSkins() const;
|
QList<Skin> installedSkins() const;
|
||||||
|
@ -25,7 +25,7 @@ class Category : public RootItem {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Category(RootItem *parent = NULL);
|
explicit Category(RootItem *parent = nullptr);
|
||||||
virtual ~Category();
|
virtual ~Category();
|
||||||
|
|
||||||
void updateCounts(bool including_total_count);
|
void updateCounts(bool including_total_count);
|
||||||
|
@ -50,7 +50,7 @@ class Feed : public RootItem, public QRunnable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Constructors.
|
// Constructors.
|
||||||
explicit Feed(RootItem *parent = NULL);
|
explicit Feed(RootItem *parent = nullptr);
|
||||||
virtual ~Feed();
|
virtual ~Feed();
|
||||||
|
|
||||||
QList<Message> undeletedMessages() const;
|
QList<Message> undeletedMessages() const;
|
||||||
|
@ -25,7 +25,7 @@ class RecycleBin : public RootItem {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit RecycleBin(RootItem *parent_item = NULL);
|
explicit RecycleBin(RootItem *parent_item = nullptr);
|
||||||
virtual ~RecycleBin();
|
virtual ~RecycleBin();
|
||||||
|
|
||||||
QVariant data(int column, int role) const;
|
QVariant data(int column, int role) const;
|
||||||
|
@ -67,7 +67,7 @@ class RootItem : public QObject {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Constructors and destructors.
|
// Constructors and destructors.
|
||||||
explicit RootItem(RootItem *parent_item = NULL);
|
explicit RootItem(RootItem *parent_item = nullptr);
|
||||||
virtual ~RootItem();
|
virtual ~RootItem();
|
||||||
|
|
||||||
virtual QString hashCode() const;
|
virtual QString hashCode() const;
|
||||||
|
@ -42,7 +42,7 @@ class ServiceRoot : public RootItem {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ServiceRoot(RootItem *parent = NULL);
|
explicit ServiceRoot(RootItem *parent = nullptr);
|
||||||
virtual ~ServiceRoot();
|
virtual ~ServiceRoot();
|
||||||
|
|
||||||
bool deleteViaGui();
|
bool deleteViaGui();
|
||||||
|
@ -25,7 +25,7 @@ class OwnCloudCategory : public Category {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit OwnCloudCategory(RootItem *parent = NULL);
|
explicit OwnCloudCategory(RootItem *parent = nullptr);
|
||||||
explicit OwnCloudCategory(const QSqlRecord &record);
|
explicit OwnCloudCategory(const QSqlRecord &record);
|
||||||
virtual ~OwnCloudCategory();
|
virtual ~OwnCloudCategory();
|
||||||
};
|
};
|
||||||
|
@ -27,7 +27,7 @@ class OwnCloudFeed : public Feed {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit OwnCloudFeed(RootItem *parent = NULL);
|
explicit OwnCloudFeed(RootItem *parent = nullptr);
|
||||||
explicit OwnCloudFeed(const QSqlRecord &record);
|
explicit OwnCloudFeed(const QSqlRecord &record);
|
||||||
virtual ~OwnCloudFeed();
|
virtual ~OwnCloudFeed();
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ class OwnCloudRecycleBin : public RecycleBin {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit OwnCloudRecycleBin(RootItem *parent = NULL);
|
explicit OwnCloudRecycleBin(RootItem *parent = nullptr);
|
||||||
virtual ~OwnCloudRecycleBin();
|
virtual ~OwnCloudRecycleBin();
|
||||||
|
|
||||||
OwnCloudServiceRoot *serviceRoot();
|
OwnCloudServiceRoot *serviceRoot();
|
||||||
|
@ -35,7 +35,7 @@ class StandardCategory : public Category {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructors and destructors
|
// Constructors and destructors
|
||||||
explicit StandardCategory(RootItem *parent_item = NULL);
|
explicit StandardCategory(RootItem *parent_item = nullptr);
|
||||||
explicit StandardCategory(const StandardCategory &other);
|
explicit StandardCategory(const StandardCategory &other);
|
||||||
explicit StandardCategory(const QSqlRecord &record);
|
explicit StandardCategory(const QSqlRecord &record);
|
||||||
virtual ~StandardCategory();
|
virtual ~StandardCategory();
|
||||||
|
@ -48,7 +48,7 @@ class StandardFeed : public Feed {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Constructors and destructors.
|
// Constructors and destructors.
|
||||||
explicit StandardFeed(RootItem *parent_item = NULL);
|
explicit StandardFeed(RootItem *parent_item = nullptr);
|
||||||
explicit StandardFeed(const StandardFeed &other);
|
explicit StandardFeed(const StandardFeed &other);
|
||||||
explicit StandardFeed(const QSqlRecord &record);
|
explicit StandardFeed(const QSqlRecord &record);
|
||||||
virtual ~StandardFeed();
|
virtual ~StandardFeed();
|
||||||
|
@ -34,7 +34,7 @@ class StandardServiceRoot : public ServiceRoot {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit StandardServiceRoot(RootItem *parent = NULL);
|
explicit StandardServiceRoot(RootItem *parent = nullptr);
|
||||||
virtual ~StandardServiceRoot();
|
virtual ~StandardServiceRoot();
|
||||||
|
|
||||||
// Start/stop root.
|
// Start/stop root.
|
||||||
|
@ -29,7 +29,7 @@ class TtRssCategory : public Category {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TtRssCategory(RootItem *parent = NULL);
|
explicit TtRssCategory(RootItem *parent = nullptr);
|
||||||
explicit TtRssCategory(const QSqlRecord &record);
|
explicit TtRssCategory(const QSqlRecord &record);
|
||||||
virtual ~TtRssCategory();
|
virtual ~TtRssCategory();
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ class TtRssFeed : public Feed {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TtRssFeed(RootItem *parent = NULL);
|
explicit TtRssFeed(RootItem *parent = nullptr);
|
||||||
explicit TtRssFeed(const QSqlRecord &record);
|
explicit TtRssFeed(const QSqlRecord &record);
|
||||||
virtual ~TtRssFeed();
|
virtual ~TtRssFeed();
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ class TtRssRecycleBin : public RecycleBin {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TtRssRecycleBin(RootItem *parent = NULL);
|
explicit TtRssRecycleBin(RootItem *parent = nullptr);
|
||||||
virtual ~TtRssRecycleBin();
|
virtual ~TtRssRecycleBin();
|
||||||
|
|
||||||
TtRssServiceRoot *serviceRoot();
|
TtRssServiceRoot *serviceRoot();
|
||||||
|
@ -33,7 +33,7 @@ class TtRssServiceRoot : public ServiceRoot, public CacheForServiceRoot {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TtRssServiceRoot(RootItem *parent = NULL);
|
explicit TtRssServiceRoot(RootItem *parent = nullptr);
|
||||||
virtual ~TtRssServiceRoot();
|
virtual ~TtRssServiceRoot();
|
||||||
|
|
||||||
void start(bool freshly_activated);
|
void start(bool freshly_activated);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user