diff options
| author | Mikaël Capelle <capelle.mikael@gmail.com> | 2022-05-17 11:47:01 +0200 |
|---|---|---|
| committer | Mikaël Capelle <capelle.mikael@gmail.com> | 2023-07-09 17:20:40 +0200 |
| commit | d13f6bb870cdda71257f665367be8ef9fca86255 (patch) | |
| tree | 52e214718478f1e52856572f5aa1a2ac58537f9f /src/downloadlist.cpp | |
| parent | 86bb01ba9eac879d3685c439ac9da0028bc4bc80 (diff) | |
Apply clang-format.
Diffstat (limited to 'src/downloadlist.cpp')
| -rw-r--r-- | src/downloadlist.cpp | 253 |
1 files changed, 147 insertions, 106 deletions
diff --git a/src/downloadlist.cpp b/src/downloadlist.cpp index e16c1cda..e38d13fa 100644 --- a/src/downloadlist.cpp +++ b/src/downloadlist.cpp @@ -17,28 +17,28 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. */ -#include "organizercore.h" #include "downloadlist.h" #include "downloadmanager.h" #include "modlistdropinfo.h" +#include "organizercore.h" #include "settings.h" -#include <utility.h> -#include <log.h> -#include <QEvent> #include <QColor> +#include <QEvent> #include <QIcon> #include <QSortFilterProxyModel> +#include <log.h> +#include <utility.h> using namespace MOBase; -DownloadList::DownloadList(OrganizerCore& core, QObject *parent) - : QAbstractTableModel(parent), m_manager(*core.downloadManager()), m_settings(core.settings()) +DownloadList::DownloadList(OrganizerCore& core, QObject* parent) + : QAbstractTableModel(parent), m_manager(*core.downloadManager()), + m_settings(core.settings()) { connect(&m_manager, SIGNAL(update(int)), this, SLOT(update(int))); connect(&m_manager, SIGNAL(aboutToUpdate()), this, SLOT(aboutToUpdate())); } - int DownloadList::rowCount(const QModelIndex& parent) const { if (!parent.isValid()) { @@ -49,39 +49,44 @@ int DownloadList::rowCount(const QModelIndex& parent) const } } - int DownloadList::columnCount(const QModelIndex&) const { return COL_COUNT; } - QModelIndex DownloadList::index(int row, int column, const QModelIndex&) const { return createIndex(row, column, row); } - QModelIndex DownloadList::parent(const QModelIndex&) const { return QModelIndex(); } - -QVariant DownloadList::headerData(int section, Qt::Orientation orientation, int role) const +QVariant DownloadList::headerData(int section, Qt::Orientation orientation, + int role) const { - if ((role == Qt::DisplayRole) && - (orientation == Qt::Horizontal)) { + if ((role == Qt::DisplayRole) && (orientation == Qt::Horizontal)) { switch (section) { - case COL_NAME: return tr("Name"); - case COL_MODNAME: return tr("Mod name"); - case COL_VERSION: return tr("Version"); - case COL_ID: return tr("Nexus ID"); - case COL_SIZE: return tr("Size"); - case COL_STATUS: return tr("Status"); - case COL_FILETIME: return tr("Filetime"); - case COL_SOURCEGAME: return tr("Source Game"); - default: return QVariant(); + case COL_NAME: + return tr("Name"); + case COL_MODNAME: + return tr("Mod name"); + case COL_VERSION: + return tr("Version"); + case COL_ID: + return tr("Nexus ID"); + case COL_SIZE: + return tr("Size"); + case COL_STATUS: + return tr("Status"); + case COL_FILETIME: + return tr("Filetime"); + case COL_SOURCEGAME: + return tr("Source Game"); + default: + return QVariant(); } } else { return QAbstractItemModel::headerData(section, orientation, role); @@ -100,68 +105,94 @@ QMimeData* DownloadList::mimeData(const QModelIndexList& indexes) const return result; } -QVariant DownloadList::data(const QModelIndex &index, int role) const +QVariant DownloadList::data(const QModelIndex& index, int role) const { bool pendingDownload = index.row() >= m_manager.numTotalDownloads(); if (role == Qt::DisplayRole) { if (pendingDownload) { - std::tuple<QString, int, int> nexusids = m_manager.getPendingDownload(index.row() - m_manager.numTotalDownloads()); + std::tuple<QString, int, int> nexusids = + m_manager.getPendingDownload(index.row() - m_manager.numTotalDownloads()); switch (index.column()) { - case COL_NAME: return tr("< game %1 mod %2 file %3 >").arg(std::get<0>(nexusids)).arg(std::get<1>(nexusids)).arg(std::get<2>(nexusids)); - case COL_SIZE: return tr("Unknown"); - case COL_STATUS: return tr("Pending"); + case COL_NAME: + return tr("< game %1 mod %2 file %3 >") + .arg(std::get<0>(nexusids)) + .arg(std::get<1>(nexusids)) + .arg(std::get<2>(nexusids)); + case COL_SIZE: + return tr("Unknown"); + case COL_STATUS: + return tr("Pending"); } } else { switch (index.column()) { - case COL_NAME: return m_settings.interface().metaDownloads() ? m_manager.getDisplayName(index.row()) : m_manager.getFileName(index.row()); - case COL_MODNAME: { - if (m_manager.isInfoIncomplete(index.row())) { - return {}; - } else { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(index.row()); - return info->modName; - } + case COL_NAME: + return m_settings.interface().metaDownloads() + ? m_manager.getDisplayName(index.row()) + : m_manager.getFileName(index.row()); + case COL_MODNAME: { + if (m_manager.isInfoIncomplete(index.row())) { + return {}; + } else { + const MOBase::ModRepositoryFileInfo* info = + m_manager.getFileInfo(index.row()); + return info->modName; } - case COL_VERSION: { - if (m_manager.isInfoIncomplete(index.row())) { - return {}; - } else { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(index.row()); - return info->version.canonicalString(); - } + } + case COL_VERSION: { + if (m_manager.isInfoIncomplete(index.row())) { + return {}; + } else { + const MOBase::ModRepositoryFileInfo* info = + m_manager.getFileInfo(index.row()); + return info->version.canonicalString(); } - case COL_ID: { - if (m_manager.isInfoIncomplete(index.row())) { - return {}; - } else { - return QString("%1").arg(m_manager.getModID(index.row())); - } + } + case COL_ID: { + if (m_manager.isInfoIncomplete(index.row())) { + return {}; + } else { + return QString("%1").arg(m_manager.getModID(index.row())); } - case COL_SOURCEGAME: { - if (m_manager.isInfoIncomplete(index.row())) { - return {}; - } else { - return QString("%1").arg(m_manager.getDisplayGameName(index.row())); - } + } + case COL_SOURCEGAME: { + if (m_manager.isInfoIncomplete(index.row())) { + return {}; + } else { + return QString("%1").arg(m_manager.getDisplayGameName(index.row())); + } + } + case COL_SIZE: + return MOBase::localizedByteSize(m_manager.getFileSize(index.row())); + case COL_FILETIME: + return m_manager.getFileTime(index.row()); + case COL_STATUS: + switch (m_manager.getState(index.row())) { + // STATE_DOWNLOADING handled by DownloadProgressDelegate + case DownloadManager::STATE_STARTED: + return tr("Started"); + case DownloadManager::STATE_CANCELING: + return tr("Canceling"); + case DownloadManager::STATE_PAUSING: + return tr("Pausing"); + case DownloadManager::STATE_CANCELED: + return tr("Canceled"); + case DownloadManager::STATE_PAUSED: + return tr("Paused"); + case DownloadManager::STATE_ERROR: + return tr("Error"); + case DownloadManager::STATE_FETCHINGMODINFO: + return tr("Fetching Info"); + case DownloadManager::STATE_FETCHINGFILEINFO: + return tr("Fetching Info"); + case DownloadManager::STATE_FETCHINGMODINFO_MD5: + return tr("Fetching Info"); + case DownloadManager::STATE_READY: + return tr("Downloaded"); + case DownloadManager::STATE_INSTALLED: + return tr("Installed"); + case DownloadManager::STATE_UNINSTALLED: + return tr("Uninstalled"); } - case COL_SIZE: return MOBase::localizedByteSize(m_manager.getFileSize(index.row())); - case COL_FILETIME: return m_manager.getFileTime(index.row()); - case COL_STATUS: - switch (m_manager.getState(index.row())) { - // STATE_DOWNLOADING handled by DownloadProgressDelegate - case DownloadManager::STATE_STARTED: return tr("Started"); - case DownloadManager::STATE_CANCELING: return tr("Canceling"); - case DownloadManager::STATE_PAUSING: return tr("Pausing"); - case DownloadManager::STATE_CANCELED: return tr("Canceled"); - case DownloadManager::STATE_PAUSED: return tr("Paused"); - case DownloadManager::STATE_ERROR: return tr("Error"); - case DownloadManager::STATE_FETCHINGMODINFO: return tr("Fetching Info"); - case DownloadManager::STATE_FETCHINGFILEINFO: return tr("Fetching Info"); - case DownloadManager::STATE_FETCHINGMODINFO_MD5: return tr("Fetching Info"); - case DownloadManager::STATE_READY: return tr("Downloaded"); - case DownloadManager::STATE_INSTALLED: return tr("Installed"); - case DownloadManager::STATE_UNINSTALLED: return tr("Uninstalled"); - } } } } else if (role == Qt::ForegroundRole && index.column() == COL_STATUS) { @@ -182,16 +213,22 @@ QVariant DownloadList::data(const QModelIndex &index, int role) const } else { QString text = m_manager.getFileName(index.row()) + "\n"; if (m_manager.isInfoIncomplete(index.row())) { - text += tr("Information missing, please select \"Query Info\" from the context menu to re-retrieve."); + text += tr("Information missing, please select \"Query Info\" from the context " + "menu to re-retrieve."); } else { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(index.row()); - return QString("%1 (ID %2) %3<br><span>%4</span>").arg(info->modName).arg(m_manager.getModID(index.row())).arg(info->version.canonicalString()).arg(info->description.chopped(4096)); + const MOBase::ModRepositoryFileInfo* info = m_manager.getFileInfo(index.row()); + return QString("%1 (ID %2) %3<br><span>%4</span>") + .arg(info->modName) + .arg(m_manager.getModID(index.row())) + .arg(info->version.canonicalString()) + .arg(info->description.chopped(4096)); } return text; } } else if (role == Qt::DecorationRole && index.column() == COL_NAME) { - if (!pendingDownload && m_manager.getState(index.row()) >= DownloadManager::STATE_READY - && m_manager.isInfoIncomplete(index.row())) + if (!pendingDownload && + m_manager.getState(index.row()) >= DownloadManager::STATE_READY && + m_manager.isInfoIncomplete(index.row())) return QIcon(":/MO/gui/warning_16"); } else if (role == Qt::TextAlignmentRole) { if (index.column() == COL_SIZE) @@ -202,75 +239,78 @@ QVariant DownloadList::data(const QModelIndex &index, int role) const return QVariant(); } - void DownloadList::aboutToUpdate() { emit beginResetModel(); } - void DownloadList::update(int row) { if (row < 0) emit endResetModel(); else if (row < this->rowCount()) - emit dataChanged(this->index(row, 0, QModelIndex()), this->index(row, this->columnCount(QModelIndex())-1, QModelIndex())); + emit dataChanged( + this->index(row, 0, QModelIndex()), + this->index(row, this->columnCount(QModelIndex()) - 1, QModelIndex())); else log::error("invalid row {} in download list, update failed", row); } -bool DownloadList::lessThanPredicate(const QModelIndex &left, const QModelIndex &right) +bool DownloadList::lessThanPredicate(const QModelIndex& left, const QModelIndex& right) { int leftIndex = left.row(); int rightIndex = right.row(); - if ((leftIndex < m_manager.numTotalDownloads()) - && (rightIndex < m_manager.numTotalDownloads())) { + if ((leftIndex < m_manager.numTotalDownloads()) && + (rightIndex < m_manager.numTotalDownloads())) { if (left.column() == DownloadList::COL_NAME) { - return left.data(Qt::DisplayRole).toString().compare(right.data(Qt::DisplayRole).toString(), Qt::CaseInsensitive) < 0; + return left.data(Qt::DisplayRole) + .toString() + .compare(right.data(Qt::DisplayRole).toString(), Qt::CaseInsensitive) < + 0; } else if (left.column() == DownloadList::COL_MODNAME) { QString leftName, rightName; if (!m_manager.isInfoIncomplete(left.row())) { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(left.row()); - leftName = info->modName; + const MOBase::ModRepositoryFileInfo* info = m_manager.getFileInfo(left.row()); + leftName = info->modName; } if (!m_manager.isInfoIncomplete(right.row())) { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(right.row()); - rightName = info->modName; + const MOBase::ModRepositoryFileInfo* info = m_manager.getFileInfo(right.row()); + rightName = info->modName; } return leftName.compare(rightName, Qt::CaseInsensitive) < 0; } else if (left.column() == DownloadList::COL_VERSION) { - MOBase::VersionInfo versionLeft, versionRight; + MOBase::VersionInfo versionLeft, versionRight; - if (!m_manager.isInfoIncomplete(left.row())) { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(left.row()); - versionLeft = info->version; - } + if (!m_manager.isInfoIncomplete(left.row())) { + const MOBase::ModRepositoryFileInfo* info = m_manager.getFileInfo(left.row()); + versionLeft = info->version; + } - if (!m_manager.isInfoIncomplete(right.row())) { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(right.row()); - versionRight = info->version; - } + if (!m_manager.isInfoIncomplete(right.row())) { + const MOBase::ModRepositoryFileInfo* info = m_manager.getFileInfo(right.row()); + versionRight = info->version; + } - return versionLeft < versionRight; + return versionLeft < versionRight; } else if (left.column() == DownloadList::COL_ID) { - int leftID=0, rightID=0; + int leftID = 0, rightID = 0; if (!m_manager.isInfoIncomplete(left.row())) { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(left.row()); - leftID = info->modID; + const MOBase::ModRepositoryFileInfo* info = m_manager.getFileInfo(left.row()); + leftID = info->modID; } if (!m_manager.isInfoIncomplete(right.row())) { - const MOBase::ModRepositoryFileInfo *info = m_manager.getFileInfo(right.row()); - rightID = info->modID; + const MOBase::ModRepositoryFileInfo* info = m_manager.getFileInfo(right.row()); + rightID = info->modID; } return leftID < rightID; } else if (left.column() == DownloadList::COL_STATUS) { - DownloadManager::DownloadState leftState = m_manager.getState(left.row()); + DownloadManager::DownloadState leftState = m_manager.getState(left.row()); DownloadManager::DownloadState rightState = m_manager.getState(right.row()); if (leftState == rightState) return m_manager.getFileTime(left.row()) > m_manager.getFileTime(right.row()); @@ -281,7 +321,8 @@ bool DownloadList::lessThanPredicate(const QModelIndex &left, const QModelIndex } else if (left.column() == DownloadList::COL_FILETIME) { return m_manager.getFileTime(left.row()) < m_manager.getFileTime(right.row()); } else if (left.column() == DownloadList::COL_SOURCEGAME) { - return m_manager.getDisplayGameName(left.row()) < m_manager.getDisplayGameName(right.row()); + return m_manager.getDisplayGameName(left.row()) < + m_manager.getDisplayGameName(right.row()); } else { return leftIndex < rightIndex; } |
