Review feedback

Signed-off-by: Naomi <103967@gmail.com>
This commit is contained in:
Naomi 2025-06-22 15:17:28 +02:00
parent d6aaee6ea6
commit 62e4845dca
10 changed files with 42 additions and 56 deletions

View File

@ -277,11 +277,6 @@ bool ensureFolderPathExists(const QString folderPathName)
return ensureFolderPathExists(QFileInfo(folderPathName));
}
bool checkFolderPathExists(const QString& folderPathName)
{
return QDir(folderPathName).exists();
}
bool checkFolderPathEmpty(const QString& folderPathName)
{
return QDir(folderPathName).isEmpty(QDir::Filters(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System));

View File

@ -99,13 +99,6 @@ bool ensureFolderPathExists(const QFileInfo folderPath);
*/
bool ensureFolderPathExists(const QString folderPathName);
/**
* @brief Check if the given folder exists
* @param folderPathName The path to a folder to check
* @return True if the given folder exists
*/
bool checkFolderPathExists(const QString& folderPathName);
/**
* @brief Check if the given folder is empty or doesn't exist
* @param folderPathName The path to a folder to check

View File

@ -1317,7 +1317,7 @@ QList<Mod*> MinecraftInstance::getJarMods() const
void MinecraftInstance::applySettings()
{
// Shared directories
m_update_shared_directories_task = std::make_shared<UpdateSharedDirectoriesTask>(this, nullptr);
m_update_shared_directories_task = std::make_shared<UpdateSharedDirectoriesTask>(this);
m_update_shared_directories_task->start();
}

View File

@ -42,12 +42,15 @@ bool interactiveMove(const QString& source, const QString& destination, bool rec
FileConflictDialog dialog(source, destination, true, parent);
FileConflictDialog::Result result = dialog.execWithResult();
if (result == FileConflictDialog::Cancel)
switch(result) {
case FileConflictDialog::Cancel:
return false;
else if (result == FileConflictDialog::ChooseDestination)
case FileConflictDialog::ChooseDestination:
return FS::deletePath(source);
else if (result == FileConflictDialog::ChooseSource)
case FileConflictDialog::ChooseSource:
FS::deletePath(destination);
break;
}
}
return FS::move(source, destination);
@ -58,9 +61,8 @@ class TryCreateSymlinkTask : public Task {
explicit TryCreateSymlinkTask(const QString& source,
const QString& destination,
MinecraftInstance* instance,
const QString& setting,
QWidget* parent)
: m_source(source), m_destination(destination), m_inst(instance), m_setting(setting), m_parent(parent)
const QString& setting)
: m_source(source), m_destination(destination), m_inst(instance), m_setting(setting)
{
setObjectName("TryCreateSymlinkTask");
}
@ -98,9 +100,9 @@ class TryCreateSymlinkTask : public Task {
}
FS::deletePath(m_destination);
} else if (FS::checkFolderPathExists(m_destination)) {
} else if (QFileInfo::exists(m_destination)) {
if (!FS::checkFolderPathEmpty(m_destination)) {
if (!interactiveMove(m_destination, m_source, true, m_parent)) {
if (!interactiveMove(m_destination, m_source, true)) {
fail(tr("Failed to create shared folder.\nEnsure that \"%1\" is empty.").arg(m_destination));
return;
}
@ -140,36 +142,33 @@ class TryCreateSymlinkTask : public Task {
QString m_destination;
MinecraftInstance* m_inst;
QString m_setting;
QWidget* m_parent;
};
UpdateSharedDirectoriesTask::UpdateSharedDirectoriesTask(MinecraftInstance* inst, QWidget* parent)
: Task(parent), m_inst(inst), m_parent(parent)
UpdateSharedDirectoriesTask::UpdateSharedDirectoriesTask(MinecraftInstance* inst)
: Task(), m_inst(inst)
{}
UpdateSharedDirectoriesTask::~UpdateSharedDirectoriesTask() {}
void UpdateSharedDirectoriesTask::executeTask()
{
auto tasks = makeShared<ConcurrentTask>("UpdateSharedDirectoriesTask");
auto screenshotsTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedScreenshotsPath").toString(),
m_inst->screenshotsDir(), m_inst, "UseSharedScreenshotsFolder", m_parent);
m_inst->screenshotsDir(), m_inst, "UseSharedScreenshotsFolder");
connect(screenshotsTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(screenshotsTask);
auto savesTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedSavesPath").toString(), m_inst->worldDir(), m_inst,
"UseSharedSavesFolder", m_parent);
"UseSharedSavesFolder");
connect(savesTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(savesTask);
auto resoucePacksTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedResourcePacksPath").toString(),
m_inst->resourcePacksDir(), m_inst, "UseSharedResourcePacksFolder", m_parent);
m_inst->resourcePacksDir(), m_inst, "UseSharedResourcePacksFolder");
connect(resoucePacksTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(resoucePacksTask);
auto texturePacksTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedResourcePacksPath").toString(),
m_inst->texturePacksDir(), m_inst, "UseSharedResourcePacksFolder", m_parent);
m_inst->texturePacksDir(), m_inst, "UseSharedResourcePacksFolder");
connect(texturePacksTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(texturePacksTask);
@ -182,6 +181,6 @@ void UpdateSharedDirectoriesTask::executeTask()
void UpdateSharedDirectoriesTask::notifyFailed(QString reason)
{
CustomMessageBox::selectable(m_parent, tr("Failed"), reason, QMessageBox::Warning, QMessageBox::Ok)->exec();
CustomMessageBox::selectable(nullptr, tr("Failed"), reason, QMessageBox::Warning, QMessageBox::Ok)->exec();
emit failed(reason);
}

View File

@ -6,8 +6,8 @@ class MinecraftInstance;
class UpdateSharedDirectoriesTask : public Task {
public:
explicit UpdateSharedDirectoriesTask(MinecraftInstance* inst, QWidget* parent = 0);
virtual ~UpdateSharedDirectoriesTask();
explicit UpdateSharedDirectoriesTask(MinecraftInstance* inst);
virtual ~UpdateSharedDirectoriesTask = default;
protected:
virtual void executeTask() override;
@ -17,6 +17,5 @@ class UpdateSharedDirectoriesTask : public Task {
private:
MinecraftInstance* m_inst;
QWidget* m_parent;
Task::Ptr m_tasks;
};

View File

@ -26,14 +26,14 @@
<string>Would you like to overwrite the destination?</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint">
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<layout class="QVBoxLayout" name="sourceLayout" stretch="0,1">
@ -49,7 +49,7 @@
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Source&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
</widget>
</item>
@ -65,7 +65,7 @@
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;b&gt;Name:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Size:&lt;/p&gt;&lt;p&gt;Date:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
@ -79,7 +79,7 @@
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:700;&quot;&gt;Destination&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
</widget>
</item>
@ -89,7 +89,7 @@
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Name:&lt;/p&gt;&lt;p&gt;Size:&lt;/p&gt;&lt;p&gt;Date:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
@ -100,10 +100,10 @@
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::StandardButton::Cancel</set>
<set>QDialogButtonBox::Cancel</set>
</property>
</widget>
</item>

View File

@ -60,7 +60,7 @@
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DragDropMode::DropOnly</enum>
<enum>QAbstractItemView::DropOnly</enum>
</property>
<property name="uniformRowHeights">
<bool>true</bool>
@ -235,11 +235,6 @@
</action>
</widget>
<customwidgets>
<customwidget>
<class>WideBar</class>
<extends>QToolBar</extends>
<header>ui/widgets/WideBar.h</header>
</customwidget>
<customwidget>
<class>ModListView</class>
<extends>QTreeView</extends>
@ -251,6 +246,11 @@
<header>ui/widgets/InfoFrame.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>WideBar</class>
<extends>QToolBar</extends>
<header>ui/widgets/WideBar.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>treeView</tabstop>

View File

@ -40,10 +40,10 @@
<item>
<widget class="QListView" name="listView">
<property name="selectionMode">
<enum>QAbstractItemView::SelectionMode::ExtendedSelection</enum>
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectionBehavior::SelectRows</enum>
<enum>QAbstractItemView::SelectRows</enum>
</property>
</widget>
</item>
@ -54,7 +54,7 @@
<string>Actions</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonStyle::ToolButtonTextOnly</enum>
<enum>Qt::ToolButtonTextOnly</enum>
</property>
<attribute name="toolBarArea">
<enum>RightToolBarArea</enum>

View File

@ -43,7 +43,7 @@
<bool>true</bool>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DragDropMode::DragDrop</enum>
<enum>QAbstractItemView::DragDrop</enum>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
@ -72,10 +72,10 @@
<string>Actions</string>
</property>
<property name="allowedAreas">
<set>Qt::ToolBarArea::LeftToolBarArea|Qt::ToolBarArea::RightToolBarArea</set>
<set>Qt::LeftToolBarArea|Qt::RightToolBarArea</set>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonStyle::ToolButtonTextOnly</enum>
<enum>Qt::ToolButtonTextOnly</enum>
</property>
<property name="floatable">
<bool>false</bool>

View File

@ -824,7 +824,7 @@ It is most likely you will need to change the path - please refer to the mod's w
<string>Settings</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<layout class="QVBoxLayout" name="sharedFoldersSettingsVerticalLayout">
<item>
@ -861,7 +861,7 @@ It is most likely you will need to change the path - please refer to the mod's w
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>