From 7ee008e150bc5bcf76082d726f719ee0fdfda982 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 11 Feb 2026 02:37:39 -0600 Subject: Fluorine Manager: full Linux port of Mod Organizer 2 Complete native Linux port with FUSE-based virtual filesystem, Proton/umu-run integration, and Flatpak packaging. Key features: - FUSE VFS replacing Windows USVFS (in-process + standalone helper for Flatpak) - Proton/GE-Proton/umu-run launcher with env var forwarding - Flatpak support (sandbox-aware VFS, NXM handler, umu-run) - Wine prefix management UI - Case-insensitive path resolution for Linux filesystems - QSettings-safe INI handling (avoids Bethesda INI corruption) - Portable instance support with auto-generated launcher scripts Co-Authored-By: Claude Opus 4.6 --- .../src/installer_fomod_postdialog.h | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 libs/installer_fomod_csharp/src/installer_fomod_postdialog.h (limited to 'libs/installer_fomod_csharp/src/installer_fomod_postdialog.h') diff --git a/libs/installer_fomod_csharp/src/installer_fomod_postdialog.h b/libs/installer_fomod_csharp/src/installer_fomod_postdialog.h new file mode 100644 index 0000000..9804610 --- /dev/null +++ b/libs/installer_fomod_csharp/src/installer_fomod_postdialog.h @@ -0,0 +1,87 @@ +#ifndef INSTALLER_FOMOD_POSTDIALOG_H +#define INSTALLER_FOMOD_POSTDIALOG_H + +#include "ui_installer_fomod_csharp_postdialog.h" + +#include + +#include "psettings.h" + +/** + * @brief Dialog for the installation of a simple archive + * a simple archive is one that doesn't require any manual changes to work correctly + **/ +class InstallerFomodPostDialog : public QDialog +{ + Q_OBJECT + +public: + enum class Result + { + APPLY, + DISCARD, + MOVE, + }; + + /** + * @brief constructor + * + * @param preset suggested name for the mod + * @param parent parent widget + **/ + explicit InstallerFomodPostDialog(QWidget* parent = 0) + : QDialog(parent), ui(new Ui::FomodCSharpPostDialog) + { + ui->setupUi(this); + setWindowFlags(windowFlags() & (~Qt::WindowContextHelpButtonHint)); + } + + ~InstallerFomodPostDialog() {} + + /** + * @return the result of this dialog if the user did not cancel. + */ + Result result() const { return m_Result; } + + /** + * + */ + void setIniSettings(std::map const& settings) + { + for (auto p : settings) { + QTextEdit* widget = new QTextEdit(this); + widget->append(p.second.toString()); + widget->setReadOnly(true); + ui->tabWidget->addTab(widget, p.first); + } + } + +private slots: + + void on_discardBtn_clicked() + { + m_Result = Result::DISCARD; + this->accept(); + } + + void on_applyBtn_clicked() + { + m_Result = Result::APPLY; + this->accept(); + } + + void on_moveBtn_clicked() + { + m_Result = Result::MOVE; + this->accept(); + } + + void on_cancelBtn_clicked() { this->reject(); } + +private: + std::unique_ptr ui; + + Result m_Result{Result::APPLY}; +}; + +#endif -- cgit v1.3.1