diff options
| author | Tannin <devnull@localhost> | 2014-07-15 20:45:29 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2014-07-15 20:45:29 +0200 |
| commit | 0a152ceadfc90650359b15dc448751f702e1070c (patch) | |
| tree | 02e468fb58330d25fd765974e48ab681bf360cab /src/pluginlist.cpp | |
| parent | d412060d59b1597ae1d11d793662610e90863fc9 (diff) | |
| parent | 5718af351034c1936a91a3782651733dfecdc4e5 (diff) | |
Merge
Diffstat (limited to 'src/pluginlist.cpp')
| -rw-r--r-- | src/pluginlist.cpp | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp index 4f363900..9f0924a2 100644 --- a/src/pluginlist.cpp +++ b/src/pluginlist.cpp @@ -469,20 +469,21 @@ void PluginList::saveTo(const QString &pluginFileName writeLockedOrder(lockedOrderFileName); if (hideUnchecked) { - QFile deleterFile(deleterFileName); - deleterFile.open(QIODevice::WriteOnly); - deleterFile.resize(0); - deleterFile.write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8()); + SafeWriteFile deleterFile(deleterFileName); + deleterFile->write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8()); for (size_t i = 0; i < m_ESPs.size(); ++i) { int priority = m_ESPsByPriority[i]; if (!m_ESPs[priority].m_Enabled) { - deleterFile.write(m_ESPs[priority].m_Name.toUtf8()); - deleterFile.write("\r\n"); + deleterFile->write(m_ESPs[priority].m_Name.toUtf8()); + deleterFile->write("\r\n"); } } - deleterFile.close(); - qDebug("%s saved", QDir::toNativeSeparators(deleterFileName).toUtf8().constData()); + if (deleterFile.commitIfDifferent(m_LastSaveHash[deleterFileName])) { + qDebug("%s saved", qPrintable(QDir::toNativeSeparators(deleterFileName))); + } + } else { + shellDelete(QStringList() << deleterFileName); } m_SaveTimer.stop(); @@ -744,7 +745,8 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const { int index = modelIndex.row(); - if (role == Qt::DisplayRole) { + if ((role == Qt::DisplayRole) + || (role == Qt::EditRole)) { switch (modelIndex.column()) { case COL_NAME: { return m_ESPs[index].m_Name; @@ -860,6 +862,7 @@ QVariant PluginList::data(const QModelIndex &modelIndex, int role) const bool PluginList::setData(const QModelIndex &modIndex, const QVariant &value, int role) { + bool result = false; if (role == Qt::CheckStateRole) { m_ESPs[modIndex.row()].m_Enabled = value.toInt() == Qt::Checked; emit dataChanged(modIndex, modIndex); @@ -867,10 +870,19 @@ bool PluginList::setData(const QModelIndex &modIndex, const QVariant &value, int refreshLoadOrder(); startSaveTime(); - return true; - } else { - return false; + result = true; + } else if (role == Qt::EditRole) { + if (modIndex.column() == COL_PRIORITY) { + bool ok = false; + int newPriority = value.toInt(&ok); + if (ok) { + setPluginPriority(modIndex.row(), newPriority); + result = true; + } + refreshLoadOrder(); + } } + return result; } @@ -902,6 +914,9 @@ Qt::ItemFlags PluginList::flags(const QModelIndex &modelIndex) const if (!m_ESPs[index].m_ForceEnabled) { result |= Qt::ItemIsUserCheckable | Qt::ItemIsDragEnabled; } + if (modelIndex.column() == COL_PRIORITY) { + result |= Qt::ItemIsEditable; + } } else { result |= Qt::ItemIsDropEnabled; } |
