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)); return ensureFolderPathExists(QFileInfo(folderPathName));
} }
bool checkFolderPathExists(const QString& folderPathName)
{
return QDir(folderPathName).exists();
}
bool checkFolderPathEmpty(const QString& folderPathName) bool checkFolderPathEmpty(const QString& folderPathName)
{ {
return QDir(folderPathName).isEmpty(QDir::Filters(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System)); 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); 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 * @brief Check if the given folder is empty or doesn't exist
* @param folderPathName The path to a folder to check * @param folderPathName The path to a folder to check

View File

@ -1317,7 +1317,7 @@ QList<Mod*> MinecraftInstance::getJarMods() const
void MinecraftInstance::applySettings() void MinecraftInstance::applySettings()
{ {
// Shared directories // 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(); 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 dialog(source, destination, true, parent);
FileConflictDialog::Result result = dialog.execWithResult(); FileConflictDialog::Result result = dialog.execWithResult();
if (result == FileConflictDialog::Cancel) switch(result) {
case FileConflictDialog::Cancel:
return false; return false;
else if (result == FileConflictDialog::ChooseDestination) case FileConflictDialog::ChooseDestination:
return FS::deletePath(source); return FS::deletePath(source);
else if (result == FileConflictDialog::ChooseSource) case FileConflictDialog::ChooseSource:
FS::deletePath(destination); FS::deletePath(destination);
break;
}
} }
return FS::move(source, destination); return FS::move(source, destination);
@ -58,9 +61,8 @@ class TryCreateSymlinkTask : public Task {
explicit TryCreateSymlinkTask(const QString& source, explicit TryCreateSymlinkTask(const QString& source,
const QString& destination, const QString& destination,
MinecraftInstance* instance, MinecraftInstance* instance,
const QString& setting, const QString& setting)
QWidget* parent) : m_source(source), m_destination(destination), m_inst(instance), m_setting(setting)
: m_source(source), m_destination(destination), m_inst(instance), m_setting(setting), m_parent(parent)
{ {
setObjectName("TryCreateSymlinkTask"); setObjectName("TryCreateSymlinkTask");
} }
@ -98,9 +100,9 @@ class TryCreateSymlinkTask : public Task {
} }
FS::deletePath(m_destination); FS::deletePath(m_destination);
} else if (FS::checkFolderPathExists(m_destination)) { } else if (QFileInfo::exists(m_destination)) {
if (!FS::checkFolderPathEmpty(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)); fail(tr("Failed to create shared folder.\nEnsure that \"%1\" is empty.").arg(m_destination));
return; return;
} }
@ -140,36 +142,33 @@ class TryCreateSymlinkTask : public Task {
QString m_destination; QString m_destination;
MinecraftInstance* m_inst; MinecraftInstance* m_inst;
QString m_setting; QString m_setting;
QWidget* m_parent;
}; };
UpdateSharedDirectoriesTask::UpdateSharedDirectoriesTask(MinecraftInstance* inst, QWidget* parent) UpdateSharedDirectoriesTask::UpdateSharedDirectoriesTask(MinecraftInstance* inst)
: Task(parent), m_inst(inst), m_parent(parent) : Task(), m_inst(inst)
{} {}
UpdateSharedDirectoriesTask::~UpdateSharedDirectoriesTask() {}
void UpdateSharedDirectoriesTask::executeTask() void UpdateSharedDirectoriesTask::executeTask()
{ {
auto tasks = makeShared<ConcurrentTask>("UpdateSharedDirectoriesTask"); auto tasks = makeShared<ConcurrentTask>("UpdateSharedDirectoriesTask");
auto screenshotsTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedScreenshotsPath").toString(), 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); connect(screenshotsTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(screenshotsTask); tasks->addTask(screenshotsTask);
auto savesTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedSavesPath").toString(), m_inst->worldDir(), m_inst, 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); connect(savesTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(savesTask); tasks->addTask(savesTask);
auto resoucePacksTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedResourcePacksPath").toString(), 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); connect(resoucePacksTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(resoucePacksTask); tasks->addTask(resoucePacksTask);
auto texturePacksTask = makeShared<TryCreateSymlinkTask>(m_inst->settings()->get("SharedResourcePacksPath").toString(), 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); connect(texturePacksTask.get(), &Task::failed, this, &UpdateSharedDirectoriesTask::notifyFailed);
tasks->addTask(texturePacksTask); tasks->addTask(texturePacksTask);
@ -182,6 +181,6 @@ void UpdateSharedDirectoriesTask::executeTask()
void UpdateSharedDirectoriesTask::notifyFailed(QString reason) 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); emit failed(reason);
} }

View File

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

View File

@ -26,14 +26,14 @@
<string>Would you like to overwrite the destination?</string> <string>Would you like to overwrite the destination?</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set> <set>Qt::AlignCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum> <enum>QLayout::SetDefaultConstraint</enum>
</property> </property>
<item> <item>
<layout class="QVBoxLayout" name="sourceLayout" stretch="0,1"> <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> <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>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop</set> <set>Qt::AlignHCenter|Qt::AlignTop</set>
</property> </property>
</widget> </widget>
</item> </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> <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>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property> </property>
</widget> </widget>
</item> </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> <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>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop</set> <set>Qt::AlignHCenter|Qt::AlignTop</set>
</property> </property>
</widget> </widget>
</item> </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> <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>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property> </property>
</widget> </widget>
</item> </item>
@ -100,10 +100,10 @@
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation"> <property name="orientation">
<enum>Qt::Orientation::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::StandardButton::Cancel</set> <set>QDialogButtonBox::Cancel</set>
</property> </property>
</widget> </widget>
</item> </item>

View File

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

View File

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

View File

@ -43,7 +43,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="dragDropMode"> <property name="dragDropMode">
<enum>QAbstractItemView::DragDropMode::DragDrop</enum> <enum>QAbstractItemView::DragDrop</enum>
</property> </property>
<property name="alternatingRowColors"> <property name="alternatingRowColors">
<bool>true</bool> <bool>true</bool>
@ -72,10 +72,10 @@
<string>Actions</string> <string>Actions</string>
</property> </property>
<property name="allowedAreas"> <property name="allowedAreas">
<set>Qt::ToolBarArea::LeftToolBarArea|Qt::ToolBarArea::RightToolBarArea</set> <set>Qt::LeftToolBarArea|Qt::RightToolBarArea</set>
</property> </property>
<property name="toolButtonStyle"> <property name="toolButtonStyle">
<enum>Qt::ToolButtonStyle::ToolButtonTextOnly</enum> <enum>Qt::ToolButtonTextOnly</enum>
</property> </property>
<property name="floatable"> <property name="floatable">
<bool>false</bool> <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> <string>Settings</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property> </property>
<layout class="QVBoxLayout" name="sharedFoldersSettingsVerticalLayout"> <layout class="QVBoxLayout" name="sharedFoldersSettingsVerticalLayout">
<item> <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> <bool>false</bool>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>