summaryrefslogtreecommitdiff
path: root/src/modlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modlist.cpp')
-rw-r--r--src/modlist.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modlist.cpp b/src/modlist.cpp
index 6c04738a..7ca0667a 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -616,17 +616,20 @@ Qt::ItemFlags ModList::flags(const QModelIndex &modelIndex) const
}
if (modelIndex.isValid()) {
ModInfo::Ptr modInfo = ModInfo::getByIndex(modelIndex.row());
+ std::vector<ModInfo::EFlag> flags = modInfo->getFlags();
if (modInfo->getFixedPriority() == INT_MIN) {
result |= Qt::ItemIsDragEnabled;
result |= Qt::ItemIsUserCheckable;
- if ((modelIndex.column() == COL_NAME) ||
- (modelIndex.column() == COL_PRIORITY) ||
+ if ((modelIndex.column() == COL_PRIORITY) ||
(modelIndex.column() == COL_VERSION) ||
(modelIndex.column() == COL_MODID)) {
result |= Qt::ItemIsEditable;
}
+ if ((modelIndex.column() == COL_NAME)
+ && (std::find(flags.begin(), flags.end(), ModInfo::FLAG_FOREIGN) == flags.end())) {
+ result |= Qt::ItemIsEditable;
+ }
}
- std::vector<ModInfo::EFlag> flags = modInfo->getFlags();
if (m_DropOnItems
&& (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) == flags.end())) {
result |= Qt::ItemIsDropEnabled;