summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/downloadlist.cpp13
-rw-r--r--src/downloadlistwidget.cpp28
-rw-r--r--src/mainwindow.cpp13
-rw-r--r--src/mainwindow.h1
4 files changed, 32 insertions, 23 deletions
diff --git a/src/downloadlist.cpp b/src/downloadlist.cpp
index 09f6968c..6d79b0f5 100644
--- a/src/downloadlist.cpp
+++ b/src/downloadlist.cpp
@@ -98,8 +98,6 @@ QVariant DownloadList::data(const QModelIndex &index, int role) const
switch (m_Manager->getState(index.row())) {
case DownloadManager::STATE_STARTED:
return tr("Started");
- case DownloadManager::STATE_DOWNLOADING:
- return m_Manager->getProgress(index.row()).second;
case DownloadManager::STATE_CANCELING:
return tr("Canceling");
case DownloadManager::STATE_PAUSING:
@@ -153,15 +151,10 @@ QVariant DownloadList::data(const QModelIndex &index, int role) const
&& m_Manager->isInfoIncomplete(index.row()))
return QIcon(":/MO/gui/warning_16");
} else if (role == Qt::TextAlignmentRole) {
- if (index.column() == COL_SIZE)
- return Qt::AlignVCenter | Qt::AlignRight;
- else
+ if (index.column() == COL_NAME)
return Qt::AlignVCenter | Qt::AlignLeft;
- } else if (role == Qt::SizeHintRole) {
- QSize temp = m_FontMetrics.size(Qt::TextSingleLine, data(index, Qt::DisplayRole).toString());
- temp.rwidth() += 20;
- temp.rheight() += 12;
- return temp;
+ else
+ return Qt::AlignVCenter | Qt::AlignRight;
}
return QVariant();
}
diff --git a/src/downloadlistwidget.cpp b/src/downloadlistwidget.cpp
index 6a85c317..e908faf3 100644
--- a/src/downloadlistwidget.cpp
+++ b/src/downloadlistwidget.cpp
@@ -32,20 +32,22 @@ void DownloadProgressDelegate::paint(QPainter *painter, const QStyleOptionViewIt
if (sourceIndex.column() == DownloadList::COL_STATUS && sourceIndex.row() < m_Manager->numTotalDownloads()
&& m_Manager->getState(sourceIndex.row()) == DownloadManager::STATE_DOWNLOADING) {
bool pendingDownload = sourceIndex.row() >= m_Manager->numTotalDownloads();
- QStyleOptionProgressBar progressBarOption;
- progressBarOption.state = QStyle::State_Enabled;
- progressBarOption.direction = QApplication::layoutDirection();
- progressBarOption.rect = option.rect;
- progressBarOption.fontMetrics = QApplication::fontMetrics();
- progressBarOption.minimum = 0;
- progressBarOption.maximum = 100;
- progressBarOption.textAlignment = Qt::AlignCenter;
- progressBarOption.textVisible = true;
- progressBarOption.progress = m_Manager->getProgress(sourceIndex.row()).first;
- progressBarOption.text = m_Manager->getProgress(sourceIndex.row()).second;
+ QProgressBar progressBarOption;
+ progressBarOption.setProperty("compact", option.widget->property("compact"));
+ progressBarOption.setMinimum(0);
+ progressBarOption.setMaximum(100);
+ progressBarOption.setAlignment(Qt::AlignCenter);
+ progressBarOption.resize(option.rect.width(), option.rect.height());
+ progressBarOption.setValue(m_Manager->getProgress(sourceIndex.row()).first);
+ progressBarOption.setFormat(m_Manager->getProgress(sourceIndex.row()).second);
- QApplication::style()->drawControl(QStyle::CE_ProgressBar,
- &progressBarOption, painter);
+ // paint the background with default delegate first to preserve table cell styling
+ QStyledItemDelegate::paint(painter, option, index);
+
+ painter->save();
+ painter->translate(option.rect.topLeft());
+ progressBarOption.render(painter);
+ painter->restore();
} else {
QStyledItemDelegate::paint(painter, option, index);
}
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 4f60ae16..328c0b2d 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -4655,6 +4655,8 @@ void MainWindow::on_actionSettings_triggered()
NexusInterface::instance(&m_PluginContainer)->setNMMVersion(settings.getNMMVersion());
+ updateDownloadView();
+
m_OrganizerCore.updateVFSParams(settings.logLevel(), settings.crashDumpsType(), settings.executablesBlacklist());
m_OrganizerCore.cycleDiagnostics();
}
@@ -4709,6 +4711,7 @@ void MainWindow::languageChange(const QString &newLanguage)
createHelpWidget();
+ updateDownloadView();
updateProblemsButton();
ui->listOptionsBtn->setMenu(modListContextMenu());
@@ -5160,6 +5163,7 @@ void MainWindow::initDownloadView()
ui->downloadView->header()->setSectionResizeMode(QHeaderView::Interactive);
ui->downloadView->header()->setSectionResizeMode(0, QHeaderView::Stretch);
ui->downloadView->sortByColumn(1, Qt::DescendingOrder);
+ updateDownloadView();
connect(ui->downloadView, SIGNAL(installDownload(int)), &m_OrganizerCore, SLOT(installDownload(int)));
connect(ui->downloadView, SIGNAL(queryInfo(int)), m_OrganizerCore.downloadManager(), SLOT(queryInfo(int)));
@@ -5173,6 +5177,15 @@ void MainWindow::initDownloadView()
connect(ui->downloadView, SIGNAL(resumeDownload(int)), this, SLOT(resumeDownload(int)));
}
+void MainWindow::updateDownloadView()
+{
+ if (m_OrganizerCore.settings().compactDownloads())
+ ui->downloadView->setProperty("compact", true);
+ else
+ ui->downloadView->setProperty("compact", false);
+ ui->downloadView->style()->unpolish(ui->downloadView);
+ ui->downloadView->style()->polish(ui->downloadView);
+}
void MainWindow::modDetailsUpdated(bool)
{
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 13a66a8e..a419b797 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -247,6 +247,7 @@ private:
bool populateMenuCategories(QMenu *menu, int targetID);
void initDownloadView();
+ void updateDownloadView();
// remove invalid category-references from mods
void fixCategories();