aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
Diffstat (limited to 'launcher')
-rw-r--r--launcher/FileIgnoreProxy.cpp5
-rw-r--r--launcher/FileIgnoreProxy.h3
-rw-r--r--launcher/ui/dialogs/ExportMrPackDialog.cpp17
3 files changed, 18 insertions, 7 deletions
diff --git a/launcher/FileIgnoreProxy.cpp b/launcher/FileIgnoreProxy.cpp
index 7dda0290..fd05624a 100644
--- a/launcher/FileIgnoreProxy.cpp
+++ b/launcher/FileIgnoreProxy.cpp
@@ -248,11 +248,6 @@ void FileIgnoreProxy::setBlockedPaths(QStringList paths)
endResetModel();
}
-const SeparatorPrefixTree<'/'>& FileIgnoreProxy::blockedPaths() const
-{
- return blocked;
-}
-
bool FileIgnoreProxy::filterAcceptsColumn(int source_column, const QModelIndex& source_parent) const
{
Q_UNUSED(source_parent)
diff --git a/launcher/FileIgnoreProxy.h b/launcher/FileIgnoreProxy.h
index a0f6c51a..baf05c7a 100644
--- a/launcher/FileIgnoreProxy.h
+++ b/launcher/FileIgnoreProxy.h
@@ -60,7 +60,8 @@ class FileIgnoreProxy : public QSortFilterProxyModel {
void setBlockedPaths(QStringList paths);
- const SeparatorPrefixTree<'/'>& blockedPaths() const;
+ inline const SeparatorPrefixTree<'/'>& blockedPaths() const { return blocked; }
+ inline SeparatorPrefixTree<'/'>& blockedPaths() { return blocked; }
protected:
bool filterAcceptsColumn(int source_column, const QModelIndex& source_parent) const;
diff --git a/launcher/ui/dialogs/ExportMrPackDialog.cpp b/launcher/ui/dialogs/ExportMrPackDialog.cpp
index 1a69cc53..03238ec4 100644
--- a/launcher/ui/dialogs/ExportMrPackDialog.cpp
+++ b/launcher/ui/dialogs/ExportMrPackDialog.cpp
@@ -39,11 +39,26 @@ ExportMrPackDialog::ExportMrPackDialog(InstancePtr instance, QWidget* parent)
QString root = instance->gameRoot();
proxy = new FileIgnoreProxy(root, this);
proxy->setSourceModel(model);
+
+ QDir::Filters filter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
+
+ for (QString file : QDir(root).entryList(filter)) {
+ if (!(file == "mods" || file == "coremods" || file == "datapacks" || file == "config" || file == "options.txt" ||
+ file == "servers.dat"))
+ proxy->blockedPaths().insert(file);
+ }
+
+ QDir modsIndex(instance->gameRoot() + "/mods/.index");
+ if (modsIndex.exists())
+ proxy->blockedPaths().insert("mods/.index");
+
ui->treeView->setModel(proxy);
ui->treeView->setRootIndex(proxy->mapFromSource(model->index(root)));
ui->treeView->sortByColumn(0, Qt::AscendingOrder);
- model->setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
+
+ model->setFilter(filter);
model->setRootPath(root);
+
auto headerView = ui->treeView->header();
headerView->setSectionResizeMode(QHeaderView::ResizeToContents);
headerView->setSectionResizeMode(0, QHeaderView::Stretch);