summaryrefslogtreecommitdiff
path: root/src/pluginlist.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2015-03-01 11:28:49 +0100
committerTannin <devnull@localhost>2015-03-01 11:28:49 +0100
commitd08e0ebab09b0a71c3042cd20b8994ec1c10a525 (patch)
tree326a75bae849f2e2ed42cba0914933437bb92f89 /src/pluginlist.cpp
parent6479f972dccaabb3afadb570583a4269e8a785e4 (diff)
- some fixes to how file changes are signaled and delayed
Diffstat (limited to 'src/pluginlist.cpp')
-rw-r--r--src/pluginlist.cpp42
1 files changed, 9 insertions, 33 deletions
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index f72ab690..f8a27ef4 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -69,23 +69,12 @@ static bool ByPriority(const PluginList::ESPInfo& LHS, const PluginList::ESPInfo
static bool ByDate(const PluginList::ESPInfo& LHS, const PluginList::ESPInfo& RHS) {
return QFileInfo(LHS.m_FullPath).lastModified() < QFileInfo(RHS.m_FullPath).lastModified();
-/* QString lhsExtension = LHS.m_Name.right(3).toLower();
- QString rhsExtension = RHS.m_Name.right(3).toLower();
- if (lhsExtension != rhsExtension) {
- return lhsExtension == "esm";
- }
-
- return ::CompareFileTime(&LHS.m_Time, &RHS.m_Time) < 0;*/
}
PluginList::PluginList(QObject *parent)
: QAbstractItemModel(parent)
, m_FontMetrics(QFont())
- , m_SaveTimer(this)
{
- m_SaveTimer.setSingleShot(true);
- connect(&m_SaveTimer, SIGNAL(timeout()), this, SIGNAL(saveTimer()));
-
m_Utf8Codec = QTextCodec::codecForName("utf-8");
m_LocalCodec = QTextCodec::codecForName("Windows-1252");
@@ -238,7 +227,8 @@ void PluginList::enableESP(const QString &name, bool enable)
if (iter != m_ESPsByName.end()) {
m_ESPs[iter->second].m_Enabled = enable;
- startSaveTime();
+
+ emit writePluginsList();
} else {
reportError(tr("esp not found: %1").arg(name));
}
@@ -252,7 +242,7 @@ void PluginList::enableAll()
for (std::vector<ESPInfo>::iterator iter = m_ESPs.begin(); iter != m_ESPs.end(); ++iter) {
iter->m_Enabled = true;
}
- startSaveTime();
+ emit writePluginsList();
}
}
@@ -266,7 +256,7 @@ void PluginList::disableAll()
iter->m_Enabled = false;
}
}
- startSaveTime();
+ emit writePluginsList();
}
}
@@ -382,7 +372,7 @@ void PluginList::readEnabledFrom(const QString &fileName)
m_ESPs[iter->second].m_Enabled = true;
} else {
qWarning("plugin %s not found", modName.toUtf8().constData());
- startSaveTime();
+ emit writePluginsList();
}
}
}
@@ -503,8 +493,6 @@ void PluginList::saveTo(const QString &pluginFileName
} else if (QFile::exists(deleterFileName)) {
shellDelete(QStringList() << deleterFileName);
}
-
- m_SaveTimer.stop();
}
@@ -581,7 +569,8 @@ void PluginList::lockESPIndex(int index, bool lock)
m_LockedOrder.erase(iter);
}
}
- startSaveTime();
+qDebug(__FUNCTION__);
+ emit writePluginsList();
}
@@ -631,7 +620,7 @@ void PluginList::refreshLoadOrder()
setPluginPriority(index, temp);
m_ESPs[index].m_LoadOrder = iter->first;
syncLoadOrder();
- startSaveTime();
+ emit writePluginsList();
}
}
}
@@ -897,7 +886,7 @@ bool PluginList::setData(const QModelIndex &modIndex, const QVariant &value, int
emit dataChanged(modIndex, modIndex);
refreshLoadOrder();
- startSaveTime();
+ emit writePluginsList();
result = true;
} else if (role == Qt::EditRole) {
@@ -1034,21 +1023,8 @@ void PluginList::changePluginPriority(std::vector<int> rows, int newPriority)
layoutChange.finish();
refreshLoadOrder();
-
- startSaveTime();
-}
-
-
-void PluginList::startSaveTime()
-{
- testMasters();
-
- if (!m_SaveTimer.isActive()) {
- m_SaveTimer.start(2000);
- }
}
-
bool PluginList::dropMimeData(const QMimeData *mimeData, Qt::DropAction action, int row, int, const QModelIndex &parent)
{
if (action == Qt::IgnoreAction) {