mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-23 03:58:56 -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::expanded, this, &ContentManagerView::onExpanded);
|
||||
connect(this, &ContentManagerView::sizeHintChanged, managerDelegate, &QStyledItemDelegate::sizeHintChanged);
|
||||
}
|
||||
|
||||
ContentManagerView::~ContentManagerView()
|
||||
@ -56,3 +57,21 @@ void ContentManagerView::onExpanded(QModelIndex index)
|
||||
if (!mp_ui->m_view->isFirstColumnSpanned(0, index))
|
||||
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 onClicked(QModelIndex index);
|
||||
void onExpanded(QModelIndex index);
|
||||
void updateSizeHint();
|
||||
|
||||
signals:
|
||||
void sizeHintChanged(const QModelIndex& index);
|
||||
|
||||
private:
|
||||
Ui::contentmanagerview *mp_ui;
|
||||
|
@ -125,6 +125,12 @@ void MainWindow::closeEvent(QCloseEvent *event)
|
||||
QMainWindow::closeEvent(event);
|
||||
}
|
||||
|
||||
void MainWindow::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
QMainWindow::resizeEvent(event);
|
||||
KiwixApp::instance()->getContentManager()->getView()->updateSizeHint();
|
||||
}
|
||||
|
||||
void MainWindow::readingListToggled(bool state)
|
||||
{
|
||||
if (state) {
|
||||
|
@ -29,6 +29,7 @@ public:
|
||||
protected:
|
||||
bool eventFilter(QObject* object, QEvent* event) override;
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
void resizeEvent(QResizeEvent *event) override;
|
||||
|
||||
private slots:
|
||||
void toggleFullScreen();
|
||||
|
Loading…
x
Reference in New Issue
Block a user