aboutsummaryrefslogtreecommitdiff
path: root/libs/uibase/src/lineeditclear.cpp
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 02:37:39 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 02:37:39 -0600
commit7ee008e150bc5bcf76082d726f719ee0fdfda982 (patch)
tree27fb39be241fdb5ac2734c574de678977d1856d0 /libs/uibase/src/lineeditclear.cpp
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 <noreply@anthropic.com>
Diffstat (limited to 'libs/uibase/src/lineeditclear.cpp')
-rw-r--r--libs/uibase/src/lineeditclear.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/libs/uibase/src/lineeditclear.cpp b/libs/uibase/src/lineeditclear.cpp
new file mode 100644
index 0000000..476c874
--- /dev/null
+++ b/libs/uibase/src/lineeditclear.cpp
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (c) 2007 Trolltech ASA <info@trolltech.com>
+**
+** Use, modification and distribution is allowed without limitation,
+** warranty, liability or support of any kind.
+**
+****************************************************************************/
+
+#include <uibase/lineeditclear.h>
+#include <QStyle>
+#include <QToolButton>
+
+namespace MOBase
+{
+
+LineEditClear::LineEditClear(QWidget* parent) : QLineEdit(parent)
+{
+ clearButton = new QToolButton(this);
+ QPixmap pixmap(":/MO/gui/edit_clear");
+ clearButton->setIcon(QIcon(pixmap));
+ clearButton->setIconSize(pixmap.size());
+ clearButton->setCursor(Qt::ArrowCursor);
+ clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }");
+ clearButton->hide();
+ connect(clearButton, SIGNAL(clicked()), this, SLOT(clear()));
+ connect(this, SIGNAL(textChanged(const QString&)), this,
+ SLOT(updateCloseButton(const QString&)));
+ int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+ setStyleSheet(QString("QLineEdit { padding-right: %1px; } ")
+ .arg(clearButton->sizeHint().width() + frameWidth + 1));
+ /* QSize msz = minimumSizeHint();
+ setMinimumSize(qMax(msz.width(), clearButton->sizeHint().height() + frameWidth * 2 +
+ 2), qMax(msz.height(), clearButton->sizeHint().height() + frameWidth * 2 + 2));*/
+}
+
+void LineEditClear::resizeEvent(QResizeEvent*)
+{
+ QSize sz = clearButton->sizeHint();
+ int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+ clearButton->move(rect().right() - frameWidth - sz.width(),
+ (rect().bottom() + 1 - sz.height()) / 2);
+}
+
+void LineEditClear::updateCloseButton(const QString& text)
+{
+ clearButton->setVisible(!text.isEmpty());
+}
+
+} // namespace MOBase