Some simplifications regarding storing states of columns in msg view.

This commit is contained in:
Martin Rotter 2017-06-07 08:03:35 +02:00
parent 357663c8dc
commit e76b379bb7
5 changed files with 15 additions and 42 deletions

View File

@ -45,7 +45,6 @@
#define NO_PARENT_CATEGORY -1 #define NO_PARENT_CATEGORY -1
#define ID_RECYCLE_BIN -2 #define ID_RECYCLE_BIN -2
#define TRAY_ICON_BUBBLE_TIMEOUT 20000 #define TRAY_ICON_BUBBLE_TIMEOUT 20000
#define KEY_MESSAGES_VIEW "messages_view_column_"
#define CLOSE_LOCK_TIMEOUT 500 #define CLOSE_LOCK_TIMEOUT 500
#define DOWNLOAD_TIMEOUT 5000 #define DOWNLOAD_TIMEOUT 5000
#define MESSAGES_VIEW_DEFAULT_COL 170 #define MESSAGES_VIEW_DEFAULT_COL 170

View File

@ -113,19 +113,11 @@ void FeedMessageViewer::saveSize() {
m_feedsView->saveAllExpandStates(); m_feedsView->saveAllExpandStates();
// Store offsets of splitters. // Store offsets of splitters.
settings->setValue(GROUP(GUI), GUI::SplitterFeeds, QString(m_feedSplitter->saveState().toBase64())); settings->setValue(GROUP(GUI), GUI::SplitterFeeds, QString(m_feedSplitter->saveState().toBase64()));
settings->setValue(GROUP(GUI), GUI::SplitterMessages, QString(m_messageSplitter->saveState().toBase64())); settings->setValue(GROUP(GUI), GUI::SplitterMessages, QString(m_messageSplitter->saveState().toBase64()));
settings->setValue(GROUP(GUI), GUI::MessageViewState, QString(m_messagesView->header()->saveState().toBase64()));
// States of splitters are stored, let's store
// widths of columns.
int width_column_author = m_messagesView->columnWidth(MSG_DB_AUTHOR_INDEX);
int width_column_date = m_messagesView->columnWidth(MSG_DB_DCREATED_INDEX);
if (width_column_author != 0 && width_column_date != 0) {
settings->setValue(GROUP(GUI), KEY_MESSAGES_VIEW + QString::number(MSG_DB_AUTHOR_INDEX), width_column_author);
settings->setValue(GROUP(GUI), KEY_MESSAGES_VIEW + QString::number(MSG_DB_DCREATED_INDEX), width_column_date);
}
// Store "visibility" of toolbars and list headers. // Store "visibility" of toolbars and list headers.
settings->setValue(GROUP(GUI), GUI::ToolbarsVisible, m_toolBarsEnabled); settings->setValue(GROUP(GUI), GUI::ToolbarsVisible, m_toolBarsEnabled);
@ -134,19 +126,12 @@ void FeedMessageViewer::saveSize() {
void FeedMessageViewer::loadSize() { void FeedMessageViewer::loadSize() {
const Settings *settings = qApp->settings(); const Settings *settings = qApp->settings();
const int default_msg_section_size = m_messagesView->header()->defaultSectionSize();
// Restore offsets of splitters. // Restore offsets of splitters.
m_feedSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterFeeds)).toString().toLocal8Bit())); m_feedSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterFeeds)).toString().toLocal8Bit()));
m_messageSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterMessages)).toString().toLocal8Bit())); m_messageSplitter->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::SplitterMessages)).toString().toLocal8Bit()));
// Splitters are restored, now, restore widths of columns. m_messagesView->header()->restoreState(QByteArray::fromBase64(settings->value(GROUP(GUI), SETTING(GUI::MessageViewState)).toString().toLocal8Bit()));
m_messagesView->setColumnWidth(MSG_DB_AUTHOR_INDEX, settings->value(GROUP(GUI),
KEY_MESSAGES_VIEW + QString::number(MSG_DB_AUTHOR_INDEX),
default_msg_section_size).toInt());
m_messagesView->setColumnWidth(MSG_DB_DCREATED_INDEX, settings->value(GROUP(GUI),
KEY_MESSAGES_VIEW + QString::number(MSG_DB_DCREATED_INDEX),
default_msg_section_size).toInt());
} }
void FeedMessageViewer::loadMessageViewerFonts() { void FeedMessageViewer::loadMessageViewerFonts() {

View File

@ -88,8 +88,8 @@ void MessagesView::reloadSelections() {
QModelIndex current_index = selectionModel()->currentIndex(); QModelIndex current_index = selectionModel()->currentIndex();
const QModelIndex mapped_current_index = m_proxyModel->mapToSource(current_index); const QModelIndex mapped_current_index = m_proxyModel->mapToSource(current_index);
const Message selected_message = m_sourceModel->messageAt(mapped_current_index.row()); const Message selected_message = m_sourceModel->messageAt(mapped_current_index.row());
const int col = qApp->settings()->value(GROUP(GUI), SETTING(GUI::DefaultSortColumnMessages)).toInt(); const int col = header()->sortIndicatorSection();
const Qt::SortOrder ord = static_cast<Qt::SortOrder>(qApp->settings()->value(GROUP(GUI), SETTING(GUI::DefaultSortOrderMessages)).toInt()); const Qt::SortOrder ord = header()->sortIndicatorOrder();
// Reload the model now. // Reload the model now.
sort(col, ord, true, false, false); sort(col, ord, true, false, false);
@ -268,8 +268,8 @@ void MessagesView::selectionChanged(const QItemSelection &selected, const QItemS
} }
void MessagesView::loadItem(RootItem *item) { void MessagesView::loadItem(RootItem *item) {
const int col = qApp->settings()->value(GROUP(GUI), SETTING(GUI::DefaultSortColumnMessages)).toInt(); const int col = header()->sortIndicatorSection();
const Qt::SortOrder ord = static_cast<Qt::SortOrder>(qApp->settings()->value(GROUP(GUI), SETTING(GUI::DefaultSortOrderMessages)).toInt()); const Qt::SortOrder ord = header()->sortIndicatorOrder();
scrollToTop(); scrollToTop();
sort(col, ord, false, true, false); sort(col, ord, false, true, false);
@ -513,7 +513,6 @@ void MessagesView::adjustColumns() {
// Hide columns. // Hide columns.
hideColumn(MSG_DB_ID_INDEX); hideColumn(MSG_DB_ID_INDEX);
hideColumn(MSG_DB_DELETED_INDEX); hideColumn(MSG_DB_DELETED_INDEX);
//hideColumn(MSG_DB_FEED_INDEX);
hideColumn(MSG_DB_URL_INDEX); hideColumn(MSG_DB_URL_INDEX);
hideColumn(MSG_DB_CONTENTS_INDEX); hideColumn(MSG_DB_CONTENTS_INDEX);
hideColumn(MSG_DB_PDELETED_INDEX); hideColumn(MSG_DB_PDELETED_INDEX);
@ -528,11 +527,6 @@ void MessagesView::adjustColumns() {
} }
void MessagesView::onSortIndicatorChanged(int column, Qt::SortOrder order) { void MessagesView::onSortIndicatorChanged(int column, Qt::SortOrder order) {
// Save current setup.
qApp->settings()->setValue(GROUP(GUI), GUI::DefaultSortColumnMessages, column);
qApp->settings()->setValue(GROUP(GUI), GUI::DefaultSortOrderMessages, order);
qApp->settings()->sync();
// Repopulate the shit. // Repopulate the shit.
sort(column, order, true, false, false); sort(column, order, true, false, false);
emit currentMessageRemoved(); emit currentMessageRemoved();

View File

@ -73,6 +73,9 @@ NON_CONST_DVALUE(QString) Messages::PreviewerFontStandardDef = QFont(
// GUI. // GUI.
DKEY GUI::ID = "gui"; DKEY GUI::ID = "gui";
DKEY GUI::MessageViewState = "msg_view_state";
DVALUE(QString) GUI::MessageViewStateDef = QString();
DKEY GUI::SplitterFeeds = "splitter_feeds"; DKEY GUI::SplitterFeeds = "splitter_feeds";
DVALUE(char*) GUI::SplitterFeedsDef = ""; DVALUE(char*) GUI::SplitterFeedsDef = "";
@ -139,12 +142,6 @@ DVALUE(bool) GUI::HideTabBarIfOnlyOneTabDef = false;
DKEY GUI::MessagesToolbarDefaultButtons = "messages_toolbar"; DKEY GUI::MessagesToolbarDefaultButtons = "messages_toolbar";
DVALUE(char*) GUI::MessagesToolbarDefaultButtonsDef = "m_actionMarkSelectedMessagesAsRead,m_actionMarkSelectedMessagesAsUnread,m_actionSwitchImportanceOfSelectedMessages,separator,highlighter,spacer,search"; DVALUE(char*) GUI::MessagesToolbarDefaultButtonsDef = "m_actionMarkSelectedMessagesAsRead,m_actionMarkSelectedMessagesAsUnread,m_actionSwitchImportanceOfSelectedMessages,separator,highlighter,spacer,search";
DKEY GUI::DefaultSortColumnMessages = "default_sort_column_messages";
DVALUE(int) GUI::DefaultSortColumnMessagesDef = MSG_DB_DCREATED_INDEX;
DKEY GUI::DefaultSortOrderMessages = "default_sort_order_messages";
DVALUE(Qt::SortOrder) GUI::DefaultSortOrderMessagesDef = Qt::DescendingOrder;
DKEY GUI::DefaultSortColumnFeeds = "default_sort_column_feeds"; DKEY GUI::DefaultSortColumnFeeds = "default_sort_column_feeds";
DVALUE(int) GUI::DefaultSortColumnFeedsDef = FDS_MODEL_TITLE_INDEX; DVALUE(int) GUI::DefaultSortColumnFeedsDef = FDS_MODEL_TITLE_INDEX;

View File

@ -27,6 +27,7 @@
#include <QNetworkProxy> #include <QNetworkProxy>
#include <QStringList> #include <QStringList>
#include <QColor> #include <QColor>
#include <QByteArray>
#define KEY extern const char* #define KEY extern const char*
#define DKEY const char* #define DKEY const char*
@ -92,6 +93,9 @@ namespace Messages {
namespace GUI { namespace GUI {
KEY ID; KEY ID;
KEY MessageViewState;
VALUE(QString) MessageViewStateDef;
KEY SplitterFeeds; KEY SplitterFeeds;
VALUE(char*) SplitterFeedsDef; VALUE(char*) SplitterFeedsDef;
@ -158,12 +162,6 @@ namespace GUI {
KEY MessagesToolbarDefaultButtons; KEY MessagesToolbarDefaultButtons;
VALUE(char*) MessagesToolbarDefaultButtonsDef; VALUE(char*) MessagesToolbarDefaultButtonsDef;
KEY DefaultSortColumnMessages;
VALUE(int) DefaultSortColumnMessagesDef;
KEY DefaultSortOrderMessages;
VALUE(Qt::SortOrder) DefaultSortOrderMessagesDef;
KEY DefaultSortColumnFeeds; KEY DefaultSortColumnFeeds;
VALUE(int) DefaultSortColumnFeedsDef; VALUE(int) DefaultSortColumnFeedsDef;