mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-04-29 22:24:26 +02:00
refactor to remove code duplication
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
parent
9d25680587
commit
797cacf804
@ -273,3 +273,28 @@ bool FileIgnoreProxy::filterFile(const QString& fileName) const
|
|||||||
{
|
{
|
||||||
return m_blocked.covers(fileName) || ignoreFile(QFileInfo(QDir(m_root), fileName));
|
return m_blocked.covers(fileName) || ignoreFile(QFileInfo(QDir(m_root), fileName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FileIgnoreProxy::loadBlockedPathsFromFile(const QString& fileName)
|
||||||
|
{
|
||||||
|
QFile ignoreFile(fileName);
|
||||||
|
if (!ignoreFile.open(QIODevice::ReadOnly)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto ignoreData = ignoreFile.readAll();
|
||||||
|
auto string = QString::fromUtf8(ignoreData);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||||
|
setBlockedPaths(string.split('\n', Qt::SkipEmptyParts));
|
||||||
|
#else
|
||||||
|
setBlockedPaths(string.split('\n', QString::SkipEmptyParts));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileIgnoreProxy::saveBlockedPathsToFile(const QString& fileName)
|
||||||
|
{
|
||||||
|
auto ignoreData = blockedPaths().toStringList().join('\n').toUtf8();
|
||||||
|
try {
|
||||||
|
FS::write(fileName, ignoreData);
|
||||||
|
} catch (const Exception& e) {
|
||||||
|
qWarning() << e.cause();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -71,6 +71,10 @@ class FileIgnoreProxy : public QSortFilterProxyModel {
|
|||||||
|
|
||||||
bool filterFile(const QString& fileName) const;
|
bool filterFile(const QString& fileName) const;
|
||||||
|
|
||||||
|
void loadBlockedPathsFromFile(const QString& fileName);
|
||||||
|
|
||||||
|
void saveBlockedPathsToFile(const QString& fileName);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool filterAcceptsColumn(int source_column, const QModelIndex& source_parent) const;
|
bool filterAcceptsColumn(int source_column, const QModelIndex& source_parent) const;
|
||||||
bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const;
|
bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const;
|
||||||
|
@ -73,7 +73,7 @@ ExportInstanceDialog::ExportInstanceDialog(InstancePtr instance, QWidget* parent
|
|||||||
m_proxyModel->ignoreFilesWithPath().insert(FS::PathCombine(prefix, path));
|
m_proxyModel->ignoreFilesWithPath().insert(FS::PathCombine(prefix, path));
|
||||||
}
|
}
|
||||||
m_proxyModel->ignoreFilesWithName().append({ ".DS_Store", "thumbs.db", "Thumbs.db" });
|
m_proxyModel->ignoreFilesWithName().append({ ".DS_Store", "thumbs.db", "Thumbs.db" });
|
||||||
loadPackIgnore();
|
m_proxyModel->loadBlockedPathsFromFile(ignoreFileName());
|
||||||
|
|
||||||
m_ui->treeView->setModel(m_proxyModel);
|
m_ui->treeView->setModel(m_proxyModel);
|
||||||
m_ui->treeView->setRootIndex(m_proxyModel->mapFromSource(model->index(root)));
|
m_ui->treeView->setRootIndex(m_proxyModel->mapFromSource(model->index(root)));
|
||||||
@ -164,7 +164,7 @@ void ExportInstanceDialog::doExport()
|
|||||||
|
|
||||||
void ExportInstanceDialog::done(int result)
|
void ExportInstanceDialog::done(int result)
|
||||||
{
|
{
|
||||||
savePackIgnore();
|
m_proxyModel->saveBlockedPathsToFile(ignoreFileName());
|
||||||
if (result == QDialog::Accepted) {
|
if (result == QDialog::Accepted) {
|
||||||
doExport();
|
doExport();
|
||||||
return;
|
return;
|
||||||
@ -191,30 +191,3 @@ QString ExportInstanceDialog::ignoreFileName()
|
|||||||
{
|
{
|
||||||
return FS::PathCombine(m_instance->instanceRoot(), ".packignore");
|
return FS::PathCombine(m_instance->instanceRoot(), ".packignore");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExportInstanceDialog::loadPackIgnore()
|
|
||||||
{
|
|
||||||
auto filename = ignoreFileName();
|
|
||||||
QFile ignoreFile(filename);
|
|
||||||
if (!ignoreFile.open(QIODevice::ReadOnly)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
auto ignoreData = ignoreFile.readAll();
|
|
||||||
auto string = QString::fromUtf8(ignoreData);
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
|
||||||
m_proxyModel->setBlockedPaths(string.split('\n', Qt::SkipEmptyParts));
|
|
||||||
#else
|
|
||||||
m_proxyModel->setBlockedPaths(string.split('\n', QString::SkipEmptyParts));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void ExportInstanceDialog::savePackIgnore()
|
|
||||||
{
|
|
||||||
auto ignoreData = m_proxyModel->blockedPaths().toStringList().join('\n').toUtf8();
|
|
||||||
auto filename = ignoreFileName();
|
|
||||||
try {
|
|
||||||
FS::write(filename, ignoreData);
|
|
||||||
} catch (const Exception& e) {
|
|
||||||
qWarning() << e.cause();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -60,8 +60,6 @@ class ExportInstanceDialog : public QDialog {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void doExport();
|
void doExport();
|
||||||
void loadPackIgnore();
|
|
||||||
void savePackIgnore();
|
|
||||||
QString ignoreFileName();
|
QString ignoreFileName();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -79,7 +79,7 @@ ExportPackDialog::ExportPackDialog(InstancePtr instance, QWidget* parent, ModPla
|
|||||||
}
|
}
|
||||||
m_proxy->ignoreFilesWithName().append({ ".DS_Store", "thumbs.db", "Thumbs.db" });
|
m_proxy->ignoreFilesWithName().append({ ".DS_Store", "thumbs.db", "Thumbs.db" });
|
||||||
m_proxy->setSourceModel(model);
|
m_proxy->setSourceModel(model);
|
||||||
loadPackIgnore();
|
m_proxy->loadBlockedPathsFromFile(ignoreFileName());
|
||||||
|
|
||||||
const QDir::Filters filter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
|
const QDir::Filters filter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ ExportPackDialog::~ExportPackDialog()
|
|||||||
|
|
||||||
void ExportPackDialog::done(int result)
|
void ExportPackDialog::done(int result)
|
||||||
{
|
{
|
||||||
savePackIgnore();
|
m_proxy->saveBlockedPathsToFile(ignoreFileName());
|
||||||
auto settings = m_instance->settings();
|
auto settings = m_instance->settings();
|
||||||
settings->set("ExportName", m_ui->name->text());
|
settings->set("ExportName", m_ui->name->text());
|
||||||
settings->set("ExportVersion", m_ui->version->text());
|
settings->set("ExportVersion", m_ui->version->text());
|
||||||
@ -180,30 +180,3 @@ QString ExportPackDialog::ignoreFileName()
|
|||||||
{
|
{
|
||||||
return FS::PathCombine(m_instance->instanceRoot(), ".packignore");
|
return FS::PathCombine(m_instance->instanceRoot(), ".packignore");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExportPackDialog::loadPackIgnore()
|
|
||||||
{
|
|
||||||
auto filename = ignoreFileName();
|
|
||||||
QFile ignoreFile(filename);
|
|
||||||
if (!ignoreFile.open(QIODevice::ReadOnly)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
auto ignoreData = ignoreFile.readAll();
|
|
||||||
auto string = QString::fromUtf8(ignoreData);
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
|
||||||
m_proxy->setBlockedPaths(string.split('\n', Qt::SkipEmptyParts));
|
|
||||||
#else
|
|
||||||
m_proxy->setBlockedPaths(string.split('\n', QString::SkipEmptyParts));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void ExportPackDialog::savePackIgnore()
|
|
||||||
{
|
|
||||||
auto ignoreData = m_proxy->blockedPaths().toStringList().join('\n').toUtf8();
|
|
||||||
auto filename = ignoreFileName();
|
|
||||||
try {
|
|
||||||
FS::write(filename, ignoreData);
|
|
||||||
} catch (const Exception& e) {
|
|
||||||
qWarning() << e.cause();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -41,8 +41,6 @@ class ExportPackDialog : public QDialog {
|
|||||||
void validate();
|
void validate();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadPackIgnore();
|
|
||||||
void savePackIgnore();
|
|
||||||
QString ignoreFileName();
|
QString ignoreFileName();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user