mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-24 04:32:15 -04:00
Description row fits to content when screen size change
Already expanded description row will now adjust with respect to any window size changes to fit the content.
This commit is contained in:
parent
ef7645ec67
commit
fa2d42554d
@ -21,6 +21,7 @@ ContentManagerView::ContentManagerView(QWidget *parent)
|
|||||||
|
|
||||||
connect(mp_ui->m_view, &QTreeView::clicked, this, &ContentManagerView::onClicked);
|
connect(mp_ui->m_view, &QTreeView::clicked, this, &ContentManagerView::onClicked);
|
||||||
connect(mp_ui->m_view, &QTreeView::expanded, this, &ContentManagerView::onExpanded);
|
connect(mp_ui->m_view, &QTreeView::expanded, this, &ContentManagerView::onExpanded);
|
||||||
|
connect(this, &ContentManagerView::sizeHintChanged, managerDelegate, &QStyledItemDelegate::sizeHintChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
ContentManagerView::~ContentManagerView()
|
ContentManagerView::~ContentManagerView()
|
||||||
@ -56,3 +57,21 @@ void ContentManagerView::onExpanded(QModelIndex index)
|
|||||||
if (!mp_ui->m_view->isFirstColumnSpanned(0, index))
|
if (!mp_ui->m_view->isFirstColumnSpanned(0, index))
|
||||||
mp_ui->m_view->setFirstColumnSpanned(0, index, true);
|
mp_ui->m_view->setFirstColumnSpanned(0, index, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Notify delegate to update size hint of the visible description rows.
|
||||||
|
*/
|
||||||
|
void ContentManagerView::updateSizeHint()
|
||||||
|
{
|
||||||
|
auto view = this->getView();
|
||||||
|
if (!view->isVisible())
|
||||||
|
return;
|
||||||
|
|
||||||
|
auto visibleIndex = view->indexAt(view->rect().topLeft());
|
||||||
|
while (visibleIndex.isValid())
|
||||||
|
{
|
||||||
|
if (isDescriptionIndex(visibleIndex))
|
||||||
|
emit sizeHintChanged(visibleIndex);
|
||||||
|
visibleIndex = view->indexBelow(visibleIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -22,6 +22,10 @@ public slots:
|
|||||||
void showLoader(bool show);
|
void showLoader(bool show);
|
||||||
void onClicked(QModelIndex index);
|
void onClicked(QModelIndex index);
|
||||||
void onExpanded(QModelIndex index);
|
void onExpanded(QModelIndex index);
|
||||||
|
void updateSizeHint();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void sizeHintChanged(const QModelIndex& index);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::contentmanagerview *mp_ui;
|
Ui::contentmanagerview *mp_ui;
|
||||||
|
@ -125,6 +125,12 @@ void MainWindow::closeEvent(QCloseEvent *event)
|
|||||||
QMainWindow::closeEvent(event);
|
QMainWindow::closeEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::resizeEvent(QResizeEvent *event)
|
||||||
|
{
|
||||||
|
QMainWindow::resizeEvent(event);
|
||||||
|
KiwixApp::instance()->getContentManager()->getView()->updateSizeHint();
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::readingListToggled(bool state)
|
void MainWindow::readingListToggled(bool state)
|
||||||
{
|
{
|
||||||
if (state) {
|
if (state) {
|
||||||
|
@ -29,6 +29,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject* object, QEvent* event) override;
|
bool eventFilter(QObject* object, QEvent* event) override;
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void toggleFullScreen();
|
void toggleFullScreen();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user