Make newspaper view somewhat better.

This commit is contained in:
Martin Rotter 2020-11-03 11:22:41 +01:00
parent abe289cf69
commit 78a12e6c29
5 changed files with 84 additions and 58 deletions

View File

@ -105,13 +105,11 @@ void MessagePreviewer::loadMessage(const Message& message, RootItem* root) {
updateLabels(false);
show();
m_actionSwitchImportance->setChecked(m_message.m_isImportant);
m_txtMessage->loadMessage(message, root);
m_txtMessage->loadMessage(message, m_root);
if (same_message) {
m_txtMessage->setVerticalScrollBarPosition(m_verticalScrollBarPosition);
}
auto labels = m_root->getParentServiceRoot()->labelsNode()->labels();
}
}

View File

@ -8,8 +8,8 @@
#include <QScrollBar>
NewspaperPreviewer::NewspaperPreviewer(RootItem* root, QList<Message> messages, QWidget* parent)
: TabContent(parent), m_ui(new Ui::NewspaperPreviewer), m_root(root), m_messages(std::move(messages)) {
NewspaperPreviewer::NewspaperPreviewer(int msg_height, RootItem* root, QList<Message> messages, QWidget* parent)
: TabContent(parent), m_msgHeight(msg_height), m_ui(new Ui::NewspaperPreviewer), m_root(root), m_messages(std::move(messages)) {
m_ui->setupUi(this);
connect(m_ui->m_btnShowMoreMessages, &QPushButton::clicked, this, &NewspaperPreviewer::showMoreMessages);
showMoreMessages();
@ -37,9 +37,9 @@ void NewspaperPreviewer::showMoreMessages() {
prev->layout()->setContentsMargins(margins);
prev->setFixedHeight(300);
prev->loadMessage(msg, m_root);
m_ui->m_layout->insertWidget(m_ui->m_layout->count() - 2, prev);
prev->setFixedHeight(m_msgHeight);
prev->loadMessage(msg, m_root.data());
m_ui->m_layout->insertWidget(m_ui->m_layout->count() - 1, prev);
}
m_ui->m_btnShowMoreMessages->setText(tr("Show more messages (%n remaining)", "", m_messages.size()));

View File

@ -28,13 +28,13 @@ class NewspaperPreviewer : public TabContent {
Q_OBJECT
public:
explicit NewspaperPreviewer(RootItem* root, QList<Message> messages, QWidget* parent = nullptr);
explicit NewspaperPreviewer(int msg_height, RootItem* root, QList<Message> messages, QWidget* parent = nullptr);
#if defined(USE_WEBENGINE)
WebBrowser* webBrowser() const;
#endif
private slots:
public slots:
void showMoreMessages();
signals:
@ -42,6 +42,7 @@ class NewspaperPreviewer : public TabContent {
void markMessageImportant(int id, RootItem::Importance important);
private:
int m_msgHeight;
QScopedPointer<Ui::NewspaperPreviewer> m_ui;
QPointer<RootItem> m_root;
QList<Message> m_messages;

View File

@ -6,25 +6,25 @@
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<width>368</width>
<height>256</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>0</number>
<number>3</number>
</property>
<property name="topMargin">
<number>0</number>
<number>3</number>
</property>
<property name="rightMargin">
<number>0</number>
<number>3</number>
</property>
<property name="bottomMargin">
<number>0</number>
<number>3</number>
</property>
<item>
<widget class="QScrollArea" name="scrollArea">
@ -36,48 +36,23 @@
<rect>
<x>0</x>
<y>0</y>
<width>398</width>
<height>298</height>
<width>360</width>
<height>213</height>
</rect>
</property>
<layout class="QVBoxLayout" name="m_layout">
<item>
<layout class="QHBoxLayout" name="m_btnLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="m_btnShowMoreMessages">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
@ -86,7 +61,7 @@
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>246</height>
<height>40</height>
</size>
</property>
</spacer>
@ -95,6 +70,57 @@
</widget>
</widget>
</item>
<item>
<widget class="QWidget" name="m_btnWidget" native="true">
<layout class="QHBoxLayout" name="m_btnLayout">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="m_btnShowMoreMessages">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>

View File

@ -183,7 +183,8 @@ void TabWidget::closeAllTabs() {
}
int TabWidget::addNewspaperView(RootItem* root, const QList<Message>& messages) {
NewspaperPreviewer* prev = new NewspaperPreviewer(root, messages, this);
int msg_height = height() - tabBar()->height() - 50;
NewspaperPreviewer* prev = new NewspaperPreviewer(msg_height, root, messages, this);
connect(prev, &NewspaperPreviewer::markMessageRead,
m_feedMessageViewer->messagesView()->sourceModel(), &MessagesModel::setMessageReadById);