test better splitter handling¨
This commit is contained in:
parent
d7574cf1eb
commit
258cff1c18
@ -19,7 +19,7 @@ $AllProtocols = [System.Net.SecurityProtocolType]'Tls11,Tls12'
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
||||
# Get and prepare needed dependencies.
|
||||
$qt_version = "5.15.2"
|
||||
$qt_version = "6.2.1"
|
||||
$maria_version = "10.6.5"
|
||||
$maria_link = "https://mirror.vpsfree.cz/mariadb/mariadb-$maria_version/winx64-packages/mariadb-$maria_version-winx64.zip"
|
||||
$maria_output = "maria.zip"
|
||||
|
@ -812,9 +812,7 @@ void FormMain::createConnections() {
|
||||
connect(m_ui->m_actionSelectPreviousMessage,
|
||||
&QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::selectPreviousItem);
|
||||
connect(m_ui->m_actionSwitchMessageListOrientation, &QAction::triggered,
|
||||
tabWidget()->feedMessageViewer(), [this]() {
|
||||
tabWidget()->feedMessageViewer()->switchMessageSplitterOrientation(true);
|
||||
});
|
||||
tabWidget()->feedMessageViewer(), &FeedMessageViewer::switchMessageSplitterOrientation);
|
||||
connect(m_ui->m_actionShowOnlyUnreadItems, &QAction::toggled,
|
||||
tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowOnlyUnreadFeeds);
|
||||
connect(m_ui->m_actionShowTreeBranches, &QAction::toggled,
|
||||
@ -907,3 +905,9 @@ void FormMain::reportABug() {
|
||||
void FormMain::donate() {
|
||||
qApp->web()->openUrlInExternalBrowser(QSL(APP_DONATE_URL));
|
||||
}
|
||||
|
||||
void FormMain::resizeEvent(QResizeEvent* event) {
|
||||
QMainWindow::resizeEvent(event);
|
||||
|
||||
emit windowResized(event->size());
|
||||
}
|
||||
|
@ -66,10 +66,14 @@ class RSSGUARD_DLLSPEC FormMain : public QMainWindow {
|
||||
void donate();
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent* event);
|
||||
virtual void changeEvent(QEvent* event);
|
||||
virtual void closeEvent(QCloseEvent* event);
|
||||
virtual void hideEvent(QHideEvent* event);
|
||||
|
||||
signals:
|
||||
void windowResized(const QSize& new_size);
|
||||
|
||||
private:
|
||||
void prepareMenus();
|
||||
void createConnections();
|
||||
|
@ -91,22 +91,6 @@ void FeedMessageViewer::saveSize() {
|
||||
// Store offsets of splitters.
|
||||
settings->setValue(GROUP(GUI), GUI::SplitterFeeds, toVariant(m_feedSplitter->sizes()));
|
||||
|
||||
// We need to display message previewer so that it "has" some dimensions
|
||||
// so that they can be saved.
|
||||
m_messagesBrowser->show();
|
||||
qApp->processEvents();
|
||||
|
||||
if (!settings->value(GROUP(GUI), SETTING(GUI::SplitterMessagesIsVertical)).toBool()) {
|
||||
settings->setValue(GROUP(GUI),
|
||||
GUI::SplitterMessagesHorizontal,
|
||||
toVariant(m_messageSplitter->sizes()));
|
||||
}
|
||||
else {
|
||||
settings->setValue(GROUP(GUI),
|
||||
GUI::SplitterMessagesVertical,
|
||||
toVariant(m_messageSplitter->sizes()));
|
||||
}
|
||||
|
||||
settings->setValue(GROUP(GUI), GUI::MessageViewState, QString(m_messagesView->saveHeaderState().toBase64()));
|
||||
|
||||
// Store "visibility" of toolbars and list headers.
|
||||
@ -126,7 +110,7 @@ void FeedMessageViewer::loadSize() {
|
||||
SETTING(GUI::SplitterMessagesVertical))));
|
||||
}
|
||||
else {
|
||||
switchMessageSplitterOrientation(false);
|
||||
switchMessageSplitterOrientation();
|
||||
}
|
||||
|
||||
QString settings_msg_header = settings->value(GROUP(GUI), SETTING(GUI::MessageViewState)).toString();
|
||||
@ -150,44 +134,31 @@ bool FeedMessageViewer::areListHeadersEnabled() const {
|
||||
return m_listHeadersEnabled;
|
||||
}
|
||||
|
||||
void FeedMessageViewer::switchMessageSplitterOrientation(bool save_settings) {
|
||||
bool preview_visible = m_messagesBrowser->isVisible();
|
||||
|
||||
if (!preview_visible && save_settings) {
|
||||
// Must be visible to get correct dimensions to be saved.
|
||||
m_messagesBrowser->show();
|
||||
qApp->processEvents();
|
||||
}
|
||||
|
||||
void FeedMessageViewer::onSplitterResized() {
|
||||
if (m_messageSplitter->orientation() == Qt::Orientation::Vertical) {
|
||||
if (save_settings) {
|
||||
qApp->settings()->setValue(GROUP(GUI),
|
||||
GUI::SplitterMessagesVertical,
|
||||
toVariant(m_messageSplitter->sizes()));
|
||||
}
|
||||
qApp->settings()->setValue(GROUP(GUI),
|
||||
GUI::SplitterMessagesVertical,
|
||||
toVariant(m_messageSplitter->sizes()));
|
||||
}
|
||||
else {
|
||||
qApp->settings()->setValue(GROUP(GUI),
|
||||
GUI::SplitterMessagesHorizontal,
|
||||
toVariant(m_messageSplitter->sizes()));
|
||||
}
|
||||
}
|
||||
|
||||
void FeedMessageViewer::switchMessageSplitterOrientation() {
|
||||
if (m_messageSplitter->orientation() == Qt::Orientation::Vertical) {
|
||||
m_messageSplitter->setOrientation(Qt::Orientation::Horizontal);
|
||||
m_messageSplitter->setSizes(toList<int>(qApp->settings()->value(GROUP(GUI),
|
||||
SETTING(GUI::SplitterMessagesHorizontal))));
|
||||
}
|
||||
else {
|
||||
if (save_settings) {
|
||||
qApp->settings()->setValue(GROUP(GUI),
|
||||
GUI::SplitterMessagesHorizontal,
|
||||
toVariant(m_messageSplitter->sizes()));
|
||||
}
|
||||
|
||||
m_messageSplitter->setOrientation(Qt::Orientation::Vertical);
|
||||
m_messageSplitter->setSizes(toList<int>(qApp->settings()->value(GROUP(GUI),
|
||||
SETTING(GUI::SplitterMessagesVertical))));
|
||||
}
|
||||
|
||||
if (!preview_visible && save_settings) {
|
||||
// Must be visible to get correct dimensions to be saved.
|
||||
m_messagesBrowser->hide();
|
||||
qApp->processEvents();
|
||||
}
|
||||
|
||||
qApp->settings()->setValue(GROUP(GUI),
|
||||
GUI::SplitterMessagesIsVertical,
|
||||
m_messageSplitter->orientation() == Qt::Orientation::Vertical);
|
||||
@ -260,6 +231,10 @@ void FeedMessageViewer::alternateRowColorsInLists() {
|
||||
qApp->settings()->setValue(GROUP(GUI), GUI::AlternateRowColorsInLists, origin->isChecked());
|
||||
}
|
||||
|
||||
void FeedMessageViewer::respondToMainWindowResizes() {
|
||||
connect(qApp->mainForm(), &FormMain::windowResized, this, &FeedMessageViewer::onSplitterResized);
|
||||
}
|
||||
|
||||
void FeedMessageViewer::displayMessage(const Message& message, RootItem* root) {
|
||||
if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::EnableMessagePreview)).toBool()) {
|
||||
m_messagesBrowser->loadMessage(message, root);
|
||||
@ -275,6 +250,8 @@ void FeedMessageViewer::createConnections() {
|
||||
connect(m_toolBarFeeds, &FeedsToolBar::feedsFilterPatternChanged, m_feedsView, &FeedsView::filterItems);
|
||||
connect(m_toolBarMessages, &MessagesToolBar::messageFilterChanged, m_messagesView, &MessagesView::filterMessages);
|
||||
|
||||
connect(m_messageSplitter, &QSplitter::splitterMoved, this, &FeedMessageViewer::onSplitterResized);
|
||||
|
||||
connect(m_messagesView, &MessagesView::currentMessageRemoved, m_messagesBrowser, &MessagePreviewer::clear);
|
||||
connect(m_messagesBrowser, &MessagePreviewer::markMessageRead, m_messagesView->sourceModel(), &MessagesModel::setMessageReadById);
|
||||
connect(m_messagesBrowser, &MessagePreviewer::markMessageImportant,
|
||||
|
@ -51,7 +51,7 @@ class RSSGUARD_DLLSPEC FeedMessageViewer : public TabContent {
|
||||
void loadMessageViewerFonts();
|
||||
|
||||
// Switches orientation horizontal/vertical.
|
||||
void switchMessageSplitterOrientation(bool save_settings);
|
||||
void switchMessageSplitterOrientation();
|
||||
|
||||
// Enables/disables main toolbars or list headers.
|
||||
void setToolBarsEnabled(bool enable);
|
||||
@ -69,8 +69,10 @@ class RSSGUARD_DLLSPEC FeedMessageViewer : public TabContent {
|
||||
void toggleShowFeedTreeBranches();
|
||||
void toggleItemsAutoExpandingOnSelection();
|
||||
void alternateRowColorsInLists();
|
||||
void respondToMainWindowResizes();
|
||||
|
||||
private slots:
|
||||
void onSplitterResized();
|
||||
void displayMessage(const Message& message, RootItem* root);
|
||||
|
||||
protected:
|
||||
|
@ -89,6 +89,7 @@ int main(int argc, char* argv[]) {
|
||||
qApp->showTrayIcon();
|
||||
qApp->offerChanges();
|
||||
qApp->showPolls();
|
||||
qApp->mainForm()->tabWidget()->feedMessageViewer()->respondToMainWindowResizes();
|
||||
qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->loadAllExpandStates();
|
||||
qApp->parseCmdArgumentsFromOtherInstance(qApp->cmdParser()->positionalArguments().join(QSL(ARGUMENTS_LIST_SEPARATOR)));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user