Support color alternations in lists - fixes #282.

This commit is contained in:
Martin Rotter 2020-11-04 08:28:28 +01:00
parent 93fc541587
commit 78ee6b83cf
8 changed files with 68 additions and 146 deletions

View File

@ -150,6 +150,7 @@ QList<QAction*> FormMain::allActions() const {
actions << m_ui->m_actionTabsPrevious;
actions << m_ui->m_actionOpenSelectedSourceArticlesExternally;
actions << m_ui->m_actionOpenSelectedMessagesInternally;
actions << m_ui->m_actionAlternateColorsInLists;
actions << m_ui->m_actionMessagePreviewEnabled;
actions << m_ui->m_actionMarkAllItemsRead;
actions << m_ui->m_actionMarkSelectedItemsAsRead;
@ -590,13 +591,15 @@ void FormMain::loadSize() {
m_ui->m_actionSwitchListHeaders->setChecked(settings->value(GROUP(GUI), SETTING(GUI::ListHeadersVisible)).toBool());
m_ui->m_actionSwitchStatusBar->setChecked(settings->value(GROUP(GUI), SETTING(GUI::StatusBarVisible)).toBool());
// Make sure that only unread feeds/messages are shown if user has that feature set on.
// Other startup GUI-related settings.
m_ui->m_actionShowOnlyUnreadItems->setChecked(settings->value(GROUP(Feeds),
SETTING(Feeds::ShowOnlyUnreadFeeds)).toBool());
m_ui->m_actionShowTreeBranches->setChecked(settings->value(GROUP(Feeds),
SETTING(Feeds::ShowTreeBranches)).toBool());
m_ui->m_actionShowOnlyUnreadMessages->setChecked(settings->value(GROUP(Messages),
SETTING(Messages::ShowOnlyUnreadMessages)).toBool());
m_ui->m_actionAlternateColorsInLists->setChecked(settings->value(GROUP(GUI),
SETTING(GUI::AlternateRowColorsInLists)).toBool());
}
void FormMain::saveSize() {
@ -760,6 +763,8 @@ void FormMain::createConnections() {
tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowOnlyUnreadFeeds);
connect(m_ui->m_actionShowTreeBranches, &QAction::toggled,
tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowFeedTreeBranches);
connect(m_ui->m_actionAlternateColorsInLists, &QAction::toggled,
tabWidget()->feedMessageViewer(), &FeedMessageViewer::alternateRowColorsInLists);
connect(m_ui->m_actionShowOnlyUnreadMessages, &QAction::toggled,
tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowOnlyUnreadMessages);
connect(m_ui->m_actionRestoreSelectedMessages, &QAction::triggered,

View File

@ -84,6 +84,7 @@
</widget>
<addaction name="m_menuShowHide"/>
<addaction name="m_actionFullscreen"/>
<addaction name="m_actionAlternateColorsInLists"/>
<addaction name="m_actionSwitchMainWindow"/>
<addaction name="m_actionSwitchMessageListOrientation"/>
</widget>
@ -775,6 +776,14 @@
<string>Update items with custom &amp;timers</string>
</property>
</action>
<action name="m_actionAlternateColorsInLists">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Alternate row colors in lists</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>

View File

@ -188,6 +188,15 @@ void FeedMessageViewer::toggleShowFeedTreeBranches() {
qApp->settings()->setValue(GROUP(Feeds), Feeds::ShowTreeBranches, origin->isChecked());
}
void FeedMessageViewer::alternateRowColorsInLists() {
const QAction* origin = qobject_cast<QAction*>(sender());
m_feedsView->setAlternatingRowColors(origin->isChecked());
m_messagesView->setAlternatingRowColors(origin->isChecked());
qApp->settings()->setValue(GROUP(GUI), GUI::AlternateRowColorsInLists, origin->isChecked());
}
void FeedMessageViewer::displayMessage(const Message& message, RootItem* root) {
if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::EnableMessagePreview)).toBool()) {
m_messagesBrowser->loadMessage(message, root);

View File

@ -66,6 +66,7 @@ class RSSGUARD_DLLSPEC FeedMessageViewer : public TabContent {
void toggleShowOnlyUnreadMessages();
void toggleShowOnlyUnreadFeeds();
void toggleShowFeedTreeBranches();
void alternateRowColorsInLists();
private slots:
void displayMessage(const Message& message, RootItem* root);

View File

@ -28,6 +28,9 @@ void NewspaperPreviewer::showMoreMessages() {
if (!m_root.isNull()) {
int current_scroll = m_ui->scrollArea->verticalScrollBar()->value();
m_ui->m_btnShowMoreMessages->setText(tr("Show more messages (%n remaining)", "", m_messages.size()));
m_ui->m_btnShowMoreMessages->setEnabled(!m_messages.isEmpty());
for (int i = 0; i < 5 && !m_messages.isEmpty(); i++) {
Message msg = m_messages.takeFirst();
auto* prev = new MessagePreviewer(true, this);
@ -42,14 +45,13 @@ void NewspaperPreviewer::showMoreMessages() {
prev->loadMessage(msg, m_root.data());
}
m_ui->m_btnShowMoreMessages->setText(tr("Show more messages (%n remaining)", "", m_messages.size()));
m_ui->m_btnShowMoreMessages->setEnabled(!m_messages.isEmpty());
m_ui->scrollArea->verticalScrollBar()->setValue(current_scroll);
}
else {
qApp->showGuiMessage(tr("Cannot show more messages"),
tr("Cannot show more messages because parent feed was removed."),
QSystemTrayIcon::MessageIcon::Warning,
qApp->mainForm(), true);
qApp->mainForm(),
true);
}
}

View File

@ -14,17 +14,20 @@
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<property name="spacing">
<number>3</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>3</number>
<number>0</number>
</property>
<property name="rightMargin">
<number>3</number>
<number>0</number>
</property>
<property name="bottomMargin">
<number>3</number>
<number>0</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea">
@ -36,22 +39,25 @@
<rect>
<x>0</x>
<y>0</y>
<width>360</width>
<height>216</height>
<width>366</width>
<height>222</height>
</rect>
</property>
<layout class="QVBoxLayout" name="m_layout">
<property name="leftMargin">
<property name="spacing">
<number>3</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>3</number>
<number>0</number>
</property>
<property name="rightMargin">
<number>3</number>
<number>0</number>
</property>
<property name="bottomMargin">
<number>3</number>
<number>0</number>
</property>
<item>
<spacer name="verticalSpacer">
@ -77,7 +83,7 @@
<number>3</number>
</property>
<property name="topMargin">
<number>0</number>
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>

View File

@ -17,271 +17,220 @@ DKEY WebEngineAttributes::ID = "web_engine_attributes";
// AdBlock.
DKEY AdBlock::ID = "adblock";
DKEY AdBlock::DisabledRules = "disabled_rules";
DKEY AdBlock::DisabledRules = "disabled_rules";
DVALUE(QStringList) AdBlock::DisabledRulesDef = QStringList();
DKEY AdBlock::AdBlockEnabled = "enabled";
DVALUE(bool) AdBlock::AdBlockEnabledDef = false;
DKEY AdBlock::LastUpdatedOn = "last_updated_on";
DVALUE(QDateTime) AdBlock::LastUpdatedOnDef = QDateTime();
// Feeds.
DKEY Feeds::ID = "feeds";
DKEY Feeds::UpdateTimeout = "feed_update_timeout";
DKEY Feeds::UpdateTimeout = "feed_update_timeout";
DVALUE(int) Feeds::UpdateTimeoutDef = DOWNLOAD_TIMEOUT;
DKEY Feeds::EnableAutoUpdateNotification = "enable_auto_update_notification";
DVALUE(bool) Feeds::EnableAutoUpdateNotificationDef = true;
DKEY Feeds::CountFormat = "count_format";
DVALUE(char*) Feeds::CountFormatDef = "(%unread)";
DKEY Feeds::AutoUpdateInterval = "auto_update_interval";
DVALUE(int) Feeds::AutoUpdateIntervalDef = DEFAULT_AUTO_UPDATE_INTERVAL;
DKEY Feeds::AutoUpdateEnabled = "auto_update_enabled";
DVALUE(bool) Feeds::AutoUpdateEnabledDef = false;
DKEY Feeds::AutoUpdateOnlyUnfocused = "auto_update_only_unfocused";
DVALUE(bool) Feeds::AutoUpdateOnlyUnfocusedDef = false;
DKEY Feeds::FeedsUpdateOnStartup = "feeds_update_on_startup";
DVALUE(bool) Feeds::FeedsUpdateOnStartupDef = false;
DKEY Feeds::FeedsUpdateStartupDelay = "feeds_update_on_startup_delay";
DVALUE(double) Feeds::FeedsUpdateStartupDelayDef = STARTUP_UPDATE_DELAY;
DKEY Feeds::ShowOnlyUnreadFeeds = "show_only_unread_feeds";
DVALUE(bool) Feeds::ShowOnlyUnreadFeedsDef = false;
DKEY Feeds::ShowTreeBranches = "show_tree_branches";
DVALUE(bool) Feeds::ShowTreeBranchesDef = true;
DKEY Feeds::ListFont = "list_font";
// Messages.
DKEY Messages::ID = "messages";
DKEY Messages::MessageHeadImageHeight = "message_head_image_height";
DKEY Messages::MessageHeadImageHeight = "message_head_image_height";
DVALUE(int) Messages::MessageHeadImageHeightDef = 36;
DKEY Messages::EnableMessagePreview = "enable_message_preview";
DVALUE(bool) Messages::EnableMessagePreviewDef = true;
#if !defined (USE_WEBENGINE)
DKEY Messages::DisplayImagePlaceholders = "display_image_placeholders";
DVALUE(bool) Messages::DisplayImagePlaceholdersDef = false;
#endif
DKEY Messages::Zoom = "zoom";
DVALUE(qreal) Messages::ZoomDef = double(1.0f);
DKEY Messages::UseCustomDate = "use_custom_date";
DVALUE(bool) Messages::UseCustomDateDef = false;
DKEY Messages::CustomDateFormat = "custom_date_format";
DVALUE(char*) Messages::CustomDateFormatDef = "";
DKEY Messages::ClearReadOnExit = "clear_read_on_exit";
DVALUE(bool) Messages::ClearReadOnExitDef = false;
DKEY Messages::KeepCursorInCenter = "keep_cursor_center";
DVALUE(bool) Messages::KeepCursorInCenterDef = false;
DKEY Messages::ShowOnlyUnreadMessages = "show_only_unread_messages";
DVALUE(bool) Messages::ShowOnlyUnreadMessagesDef = false;
DKEY Messages::PreviewerFontStandard = "previewer_font_standard";
NON_CONST_DVALUE(QString) Messages::PreviewerFontStandardDef = QFont(QFont().family(), 12).toString();
DKEY Messages::ListFont = "list_font";
// GUI.
DKEY GUI::ID = "gui";
DKEY GUI::MessageViewState = "msg_view_state";
DKEY GUI::MessageViewState = "msg_view_state";
DVALUE(QString) GUI::MessageViewStateDef = QString();
DKEY GUI::SplitterFeeds = "splitter_feeds";
DVALUE(char*) GUI::SplitterFeedsDef = "";
DKEY GUI::SplitterMessages = "splitter_messages";
DVALUE(char*) GUI::SplitterMessagesDef = "";
DKEY GUI::ToolbarStyle = "toolbar_style";
DVALUE(Qt::ToolButtonStyle) GUI::ToolbarStyleDef = Qt::ToolButtonIconOnly;
DKEY GUI::HeightRowMessages = "height_row_messages";
DVALUE(int) GUI::HeightRowMessagesDef = -1;
DKEY GUI::HeightRowFeeds = "height_row_feeds";
DVALUE(int) GUI::HeightRowFeedsDef = -1;
DKEY GUI::FeedsToolbarActions = "feeds_toolbar";
DVALUE(char*) GUI::FeedsToolbarActionsDef = "m_actionUpdateAllItems,m_actionStopRunningItemsUpdate,m_actionMarkAllItemsRead";
DKEY GUI::StatusbarActions = "status_bar";
DVALUE(char*) GUI::StatusbarActionsDef =
"m_lblProgressFeedsAction,m_barProgressFeedsAction,m_actionUpdateAllItems,m_actionUpdateSelectedItems,m_actionStopRunningItemsUpdate,m_actionFullscreen,m_actionQuit";
DKEY GUI::MainWindowInitialSize = "window_size";
DKEY GUI::MainWindowInitialPosition = "window_position";
DKEY GUI::IsMainWindowMaximizedBeforeFullscreen = "is_window_maximized_before_fullscreen";
DKEY GUI::IsMainWindowMaximizedBeforeFullscreen = "is_window_maximized_before_fullscreen";
DVALUE(bool) GUI::IsMainWindowMaximizedBeforeFullscreenDef = false;
DKEY GUI::MainWindowStartsFullscreen = "start_in_fullscreen";
DVALUE(bool) GUI::MainWindowStartsFullscreenDef = false;
DKEY GUI::MainWindowStartsHidden = "start_hidden";
DVALUE(bool) GUI::MainWindowStartsHiddenDef = false;
DKEY GUI::MainWindowStartsMaximized = "window_is_maximized";
DVALUE(bool) GUI::MainWindowStartsMaximizedDef = false;
DKEY GUI::MainMenuVisible = "main_menu_visible";
DKEY GUI::AlternateRowColorsInLists = "alternate_colors_in_lists";
DVALUE(bool) GUI::AlternateRowColorsInListsDef = false;
DKEY GUI::MainMenuVisible = "main_menu_visible";
DVALUE(bool) GUI::MainMenuVisibleDef = true;
DKEY GUI::ToolbarsVisible = "enable_toolbars";
DVALUE(bool) GUI::ToolbarsVisibleDef = true;
DKEY GUI::ListHeadersVisible = "enable_list_headers";
DVALUE(bool) GUI::ListHeadersVisibleDef = true;
DKEY GUI::StatusBarVisible = "enable_status_bar";
DVALUE(bool) GUI::StatusBarVisibleDef = true;
DKEY GUI::HideMainWindowWhenMinimized = "hide_when_minimized";
DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false;
DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon";
DVALUE(bool) GUI::MonochromeTrayIconDef = false;
DKEY GUI::UseTrayIcon = "use_tray_icon";
DVALUE(bool) GUI::UseTrayIconDef = true;
DKEY GUI::EnableNotifications = "enable_notifications";
DVALUE(bool) GUI::EnableNotificationsDef = true;
DKEY GUI::TabCloseMiddleClick = "tab_close_mid_button";
DVALUE(bool) GUI::TabCloseMiddleClickDef = true;
DKEY GUI::TabCloseDoubleClick = "tab_close_double_button";
DVALUE(bool) GUI::TabCloseDoubleClickDef = true;
DKEY GUI::TabNewDoubleClick = "tab_new_double_button";
DVALUE(bool) GUI::TabNewDoubleClickDef = true;
DKEY GUI::HideTabBarIfOnlyOneTab = "hide_tabbar_one_tab";
DVALUE(bool) GUI::HideTabBarIfOnlyOneTabDef = false;
DKEY GUI::MessagesToolbarDefaultButtons = "messages_toolbar";
DVALUE(char*) GUI::MessagesToolbarDefaultButtonsDef =
"m_actionMarkSelectedMessagesAsRead,m_actionMarkSelectedMessagesAsUnread,m_actionSwitchImportanceOfSelectedMessages,separator,highlighter,spacer,search";
DKEY GUI::DefaultSortColumnFeeds = "default_sort_column_feeds";
DVALUE(int) GUI::DefaultSortColumnFeedsDef = FDS_MODEL_TITLE_INDEX;
DKEY GUI::DefaultSortOrderFeeds = "default_sort_order_feeds";
DVALUE(Qt::SortOrder) GUI::DefaultSortOrderFeedsDef = Qt::AscendingOrder;
DKEY GUI::IconTheme = "icon_theme_name";
DVALUE(char*) GUI::IconThemeDef = APP_THEME_DEFAULT;
DKEY GUI::Skin = "skin";
DVALUE(char*) GUI::SkinDef = APP_SKIN_DEFAULT;
DKEY GUI::Style = "style";
DVALUE(char*) GUI::StyleDef = APP_STYLE_DEFAULT;
// General.
DKEY General::ID = "main";
DKEY General::UpdateOnStartup = "update_on_start";
DKEY General::UpdateOnStartup = "update_on_start";
DVALUE(bool) General::UpdateOnStartupDef = true;
DKEY General::RemoveTrolltechJunk = "remove_trolltech_junk";
DVALUE(bool) General::RemoveTrolltechJunkDef = false;
DKEY General::FirstRun = "first_run";
DVALUE(bool) General::FirstRunDef = true;
DKEY General::Language = "language";
DVALUE(QString) General::LanguageDef = QLocale::system().name();
// Downloads.
DKEY Downloads::ID = "download_manager";
DKEY Downloads::AlwaysPromptForFilename = "prompt_for_filename";
DKEY Downloads::AlwaysPromptForFilename = "prompt_for_filename";
DVALUE(bool) Downloads::AlwaysPromptForFilenameDef = false;
DKEY Downloads::TargetDirectory = "target_directory";
DVALUE(QString) Downloads::TargetDirectoryDef = IOFactory::getSystemFolder(QStandardPaths::DownloadLocation);
DKEY Downloads::RemovePolicy = "remove_policy";
DVALUE(int) Downloads::RemovePolicyDef = int(DownloadManager::RemovePolicy::Never);
DKEY Downloads::TargetExplicitDirectory = "target_explicit_directory";
DVALUE(QString) Downloads::TargetExplicitDirectoryDef = IOFactory::getSystemFolder(QStandardPaths::DownloadLocation);
DKEY Downloads::ShowDownloadsWhenNewDownloadStarts = "show_downloads_on_new_download_start";
DVALUE(bool) Downloads::ShowDownloadsWhenNewDownloadStartsDef = true;
DKEY Downloads::ItemUrl = "download_%1_url";
@ -290,58 +239,47 @@ DKEY Downloads::ItemDone = "download_%1_done";
// Proxy.
DKEY Proxy::ID = "proxy";
DKEY Proxy::Type = "proxy_type";
DKEY Proxy::Type = "proxy_type";
DVALUE(QNetworkProxy::ProxyType) Proxy::TypeDef = QNetworkProxy::NoProxy;
DKEY Proxy::Host = "host";
DVALUE(QString) Proxy::HostDef = QString();
DKEY Proxy::Username = "username";
DVALUE(QString) Proxy::UsernameDef = QString();
DKEY Proxy::Password = "password";
DVALUE(QString) Proxy::PasswordDef = QString();
DKEY Proxy::Port = "port";
DVALUE(int) Proxy::PortDef = 80;
// Database.
DKEY Database::ID = "database";
DKEY Database::UseTransactions = "use_transactions";
DKEY Database::UseTransactions = "use_transactions";
DVALUE(bool) Database::UseTransactionsDef = false;
DKEY Database::UseInMemory = "use_in_memory_db";
DVALUE(bool) Database::UseInMemoryDef = false;
DKEY Database::MySQLHostname = "mysql_hostname";
DVALUE(QString) Database::MySQLHostnameDef = QString();
DKEY Database::MySQLUsername = "mysql_username";
DVALUE(QString) Database::MySQLUsernameDef = QString();
DKEY Database::MySQLPassword = "mysql_password";
DVALUE(QString) Database::MySQLPasswordDef = QString();
DKEY Database::MySQLDatabase = "mysql_database";
DVALUE(char*) Database::MySQLDatabaseDef = APP_LOW_NAME;
DKEY Database::MySQLPort = "mysql_port";
DVALUE(int) Database::MySQLPortDef = APP_DB_MYSQL_PORT;
DKEY Database::ActiveDriver = "database_driver";
DVALUE(char*) Database::ActiveDriverDef = APP_DB_SQLITE_DRIVER;
// Keyboard.
@ -349,40 +287,32 @@ DKEY Keyboard::ID = "keyboard";
// Web browser.
DKEY Browser::ID = "browser";
DKEY Browser::SendDNT = "send_dnt";
DKEY Browser::SendDNT = "send_dnt";
VALUE(bool) Browser::SendDNTDef = false;
DKEY Browser::OpenLinksInExternalBrowserRightAway = "open_link_externally_wo_confirmation";
DVALUE(bool) Browser::OpenLinksInExternalBrowserRightAwayDef = false;
DKEY Browser::CustomExternalBrowserEnabled = "custom_external_browser";
DVALUE(bool) Browser::CustomExternalBrowserEnabledDef = false;
DKEY Browser::CustomExternalBrowserExecutable = "external_browser_executable";
DVALUE(QString) Browser::CustomExternalBrowserExecutableDef = QString();
DKEY Browser::CustomExternalBrowserArguments = "external_browser_arguments";
DVALUE(char*) Browser::CustomExternalBrowserArgumentsDef = "%1";
DKEY Browser::CustomExternalEmailEnabled = "custom_external_email";
DVALUE(bool) Browser::CustomExternalEmailEnabledDef = false;
DKEY Browser::CustomExternalEmailExecutable = "external_email_executable";
DVALUE(QString) Browser::CustomExternalEmailExecutableDef = QString();
DKEY Browser::CustomExternalEmailArguments = "external_email_arguments";
DVALUE(char*) Browser::CustomExternalEmailArgumentsDef = "";
DKEY Browser::ExternalTools = "external_tools";
DVALUE(QStringList) Browser::ExternalToolsDef = QStringList();
// Categories.

View File

@ -34,60 +34,49 @@ namespace WebEngineAttributes {
namespace AdBlock {
KEY ID;
KEY AdBlockEnabled;
KEY AdBlockEnabled;
VALUE(bool) AdBlockEnabledDef;
KEY DisabledRules;
VALUE(QStringList) DisabledRulesDef;
KEY LastUpdatedOn;
VALUE(QDateTime) LastUpdatedOnDef;
}
// Feeds.
namespace Feeds {
KEY ID;
KEY UpdateTimeout;
KEY UpdateTimeout;
VALUE(int) UpdateTimeoutDef;
KEY EnableAutoUpdateNotification;
VALUE(bool) EnableAutoUpdateNotificationDef;
KEY CountFormat;
VALUE(char*) CountFormatDef;
KEY AutoUpdateInterval;
VALUE(int) AutoUpdateIntervalDef;
KEY AutoUpdateEnabled;
VALUE(bool) AutoUpdateEnabledDef;
KEY AutoUpdateOnlyUnfocused;
VALUE(bool) AutoUpdateOnlyUnfocusedDef;
KEY FeedsUpdateOnStartup;
VALUE(bool) FeedsUpdateOnStartupDef;
KEY FeedsUpdateStartupDelay;
VALUE(double) FeedsUpdateStartupDelayDef;
KEY ShowOnlyUnreadFeeds;
VALUE(bool) ShowOnlyUnreadFeedsDef;
KEY ShowTreeBranches;
VALUE(bool) ShowTreeBranchesDef;
KEY ListFont;
@ -96,26 +85,22 @@ namespace Feeds {
// Messages.
namespace Messages {
KEY ID;
KEY MessageHeadImageHeight;
KEY MessageHeadImageHeight;
VALUE(int) MessageHeadImageHeightDef;
KEY EnableMessagePreview;
VALUE(bool) EnableMessagePreviewDef;
#if !defined (USE_WEBENGINE)
KEY DisplayImagePlaceholders;
VALUE(bool) DisplayImagePlaceholdersDef;
#endif
KEY Zoom;
VALUE(qreal) ZoomDef;
KEY UseCustomDate;
VALUE(bool) UseCustomDateDef;
KEY CustomDateFormat;
@ -139,126 +124,101 @@ namespace Messages {
// GUI.
namespace GUI {
KEY ID;
KEY MessageViewState;
KEY MessageViewState;
VALUE(QString) MessageViewStateDef;
KEY SplitterFeeds;
VALUE(char*) SplitterFeedsDef;
KEY SplitterMessages;
VALUE(char*) SplitterMessagesDef;
KEY ToolbarStyle;
VALUE(Qt::ToolButtonStyle) ToolbarStyleDef;
KEY FeedsToolbarActions;
VALUE(char*) FeedsToolbarActionsDef;
KEY StatusbarActions;
VALUE(char*) StatusbarActionsDef;
KEY MainWindowInitialSize;
KEY MainWindowInitialPosition;
KEY IsMainWindowMaximizedBeforeFullscreen;
KEY IsMainWindowMaximizedBeforeFullscreen;
VALUE(bool) IsMainWindowMaximizedBeforeFullscreenDef;
KEY MainWindowStartsFullscreen;
VALUE(bool) MainWindowStartsFullscreenDef;
KEY MainWindowStartsHidden;
VALUE(bool) MainWindowStartsHiddenDef;
KEY MainWindowStartsMaximized;
VALUE(bool) MainWindowStartsMaximizedDef;
KEY MainMenuVisible;
VALUE(bool) MainMenuVisibleDef;
KEY ToolbarsVisible;
VALUE(bool) ToolbarsVisibleDef;
KEY ListHeadersVisible;
VALUE(bool) ListHeadersVisibleDef;
KEY StatusBarVisible;
VALUE(bool) StatusBarVisibleDef;
KEY HideMainWindowWhenMinimized;
VALUE(bool) HideMainWindowWhenMinimizedDef;
KEY UseTrayIcon;
KEY AlternateRowColorsInLists;
VALUE(bool) AlternateRowColorsInListsDef;
KEY UseTrayIcon;
VALUE(bool) UseTrayIconDef;
KEY MonochromeTrayIcon;
VALUE(bool) MonochromeTrayIconDef;
KEY EnableNotifications;
VALUE(bool) EnableNotificationsDef;
KEY TabCloseMiddleClick;
VALUE(bool) TabCloseMiddleClickDef;
KEY TabCloseDoubleClick;
VALUE(bool) TabCloseDoubleClickDef;
KEY TabNewDoubleClick;
VALUE(bool) TabNewDoubleClickDef;
KEY HideTabBarIfOnlyOneTab;
VALUE(bool) HideTabBarIfOnlyOneTabDef;
KEY MessagesToolbarDefaultButtons;
VALUE(char*) MessagesToolbarDefaultButtonsDef;
KEY DefaultSortColumnFeeds;
VALUE(int) DefaultSortColumnFeedsDef;
KEY HeightRowMessages;
VALUE(int) HeightRowMessagesDef;
KEY HeightRowFeeds;
VALUE(int) HeightRowFeedsDef;
KEY DefaultSortOrderFeeds;
VALUE(Qt::SortOrder) DefaultSortOrderFeedsDef;
KEY IconTheme;
VALUE(char*) IconThemeDef;
KEY Skin;
VALUE(char*) SkinDef;
KEY Style;
VALUE(char*) StyleDef;
}