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); updateLabels(false);
show(); show();
m_actionSwitchImportance->setChecked(m_message.m_isImportant); m_actionSwitchImportance->setChecked(m_message.m_isImportant);
m_txtMessage->loadMessage(message, root); m_txtMessage->loadMessage(message, m_root);
if (same_message) { if (same_message) {
m_txtMessage->setVerticalScrollBarPosition(m_verticalScrollBarPosition); m_txtMessage->setVerticalScrollBarPosition(m_verticalScrollBarPosition);
} }
auto labels = m_root->getParentServiceRoot()->labelsNode()->labels();
} }
} }

View File

@ -8,8 +8,8 @@
#include <QScrollBar> #include <QScrollBar>
NewspaperPreviewer::NewspaperPreviewer(RootItem* root, QList<Message> messages, QWidget* parent) NewspaperPreviewer::NewspaperPreviewer(int msg_height, RootItem* root, QList<Message> messages, QWidget* parent)
: TabContent(parent), m_ui(new Ui::NewspaperPreviewer), m_root(root), m_messages(std::move(messages)) { : TabContent(parent), m_msgHeight(msg_height), m_ui(new Ui::NewspaperPreviewer), m_root(root), m_messages(std::move(messages)) {
m_ui->setupUi(this); m_ui->setupUi(this);
connect(m_ui->m_btnShowMoreMessages, &QPushButton::clicked, this, &NewspaperPreviewer::showMoreMessages); connect(m_ui->m_btnShowMoreMessages, &QPushButton::clicked, this, &NewspaperPreviewer::showMoreMessages);
showMoreMessages(); showMoreMessages();
@ -37,9 +37,9 @@ void NewspaperPreviewer::showMoreMessages() {
prev->layout()->setContentsMargins(margins); prev->layout()->setContentsMargins(margins);
prev->setFixedHeight(300); prev->setFixedHeight(m_msgHeight);
prev->loadMessage(msg, m_root); prev->loadMessage(msg, m_root.data());
m_ui->m_layout->insertWidget(m_ui->m_layout->count() - 2, prev); 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())); 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 Q_OBJECT
public: 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) #if defined(USE_WEBENGINE)
WebBrowser* webBrowser() const; WebBrowser* webBrowser() const;
#endif #endif
private slots: public slots:
void showMoreMessages(); void showMoreMessages();
signals: signals:
@ -42,6 +42,7 @@ class NewspaperPreviewer : public TabContent {
void markMessageImportant(int id, RootItem::Importance important); void markMessageImportant(int id, RootItem::Importance important);
private: private:
int m_msgHeight;
QScopedPointer<Ui::NewspaperPreviewer> m_ui; QScopedPointer<Ui::NewspaperPreviewer> m_ui;
QPointer<RootItem> m_root; QPointer<RootItem> m_root;
QList<Message> m_messages; QList<Message> m_messages;

View File

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

View File

@ -183,7 +183,8 @@ void TabWidget::closeAllTabs() {
} }
int TabWidget::addNewspaperView(RootItem* root, const QList<Message>& messages) { 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, connect(prev, &NewspaperPreviewer::markMessageRead,
m_feedMessageViewer->messagesView()->sourceModel(), &MessagesModel::setMessageReadById); m_feedMessageViewer->messagesView()->sourceModel(), &MessagesModel::setMessageReadById);