From 83d1f0c0c3a78101fbe174a02b17a950c496e635 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 1 Jan 2018 13:48:31 +0100 Subject: Download items' width should no longer exceed the list width --- src/lib/downloads/downloadswidget.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/lib/downloads/downloadswidget.cpp') diff --git a/src/lib/downloads/downloadswidget.cpp b/src/lib/downloads/downloadswidget.cpp index dc7d5e2..f9a8f34 100644 --- a/src/lib/downloads/downloadswidget.cpp +++ b/src/lib/downloads/downloadswidget.cpp @@ -31,12 +31,14 @@ DownloadsWidget::DownloadsWidget(const QString &downloadPath, QWidget *parent) : connect(ui->listWidget, &QListWidget::currentItemChanged, this, [this](QListWidgetItem *current, QListWidgetItem *previous) { DownloadItemWidget *currentWidget = qobject_cast(ui->listWidget->itemWidget(current)); currentWidget->showDetails(); + currentWidget->setFixedWidth(ui->listWidget->viewport()->width()); currentWidget->adjustSize(); current->setSizeHint(currentWidget->size()); DownloadItemWidget *previousWidget = qobject_cast(ui->listWidget->itemWidget(previous)); if(previousWidget != nullptr) { previousWidget->hideDetails(); + previousWidget->setFixedWidth(ui->listWidget->viewport()->width()); previousWidget->adjustSize(); previous->setSizeHint(previousWidget->size()); } @@ -50,6 +52,8 @@ DownloadsWidget::~DownloadsWidget() void DownloadsWidget::addDownload(QWebEngineDownloadItem *item) { + this->show(); + QString filepath = QFileDialog::getSaveFileName(this, tr("Save"), m_downloadPath + "/" + QFileInfo(item->path()).fileName()); @@ -67,12 +71,21 @@ void DownloadsWidget::addDownload(QWebEngineDownloadItem *item) ui->listWidget->insertItem(rowIndex, listItem); DownloadItemWidget *form = new DownloadItemWidget(item, this); - listItem->setSizeHint(form->size()); ui->listWidget->setItemWidget(listItem, form); item->accept(); ui->listWidget->setCurrentRow(rowIndex); +} - this->show(); +void DownloadsWidget::resizeEvent(QResizeEvent *event) +{ + QWidget::resizeEvent(event); + + for(int i = 0; i < ui->listWidget->count(); ++i) { + QWidget *w = ui->listWidget->itemWidget(ui->listWidget->item(i)); + w->setFixedWidth(ui->listWidget->viewport()->width()); + w->adjustSize(); + ui->listWidget->item(i)->setSizeHint(w->size()); + } } -- cgit v1.2.1