aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2021-10-05 12:52:26 +0200
committerDavid Schulz <david.schulz@qt.io>2021-10-06 09:57:02 +0000
commit704a758f69d43df8b772147bb5ebe03126335212 (patch)
treed411a300ce422369968ec39a425e39b12bcba43a
parent0f480cee70a2bf0e4a99b9cfcd93194a00aa8f81 (diff)
Docker: use PathListEditor for mounts
Change-Id: I5ed0ebf5ecdad17c1800f15906063d3413307da3 Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/libs/utils/pathlisteditor.cpp1
-rw-r--r--src/libs/utils/pathlisteditor.h3
-rw-r--r--src/plugins/docker/dockerdevice.cpp26
3 files changed, 18 insertions, 12 deletions
diff --git a/src/libs/utils/pathlisteditor.cpp b/src/libs/utils/pathlisteditor.cpp
index 61d215fd83..d24be4995b 100644
--- a/src/libs/utils/pathlisteditor.cpp
+++ b/src/libs/utils/pathlisteditor.cpp
@@ -130,6 +130,7 @@ PathListEditor::PathListEditor(QWidget *parent) :
});
addButton(tr("Delete Line"), this, [this] { deletePathAtCursor(); });
addButton(tr("Clear"), this, [this] { d->edit->clear(); });
+ connect(d->edit, &QPlainTextEdit::textChanged, this, &PathListEditor::changed);
}
PathListEditor::~PathListEditor()
diff --git a/src/libs/utils/pathlisteditor.h b/src/libs/utils/pathlisteditor.h
index 07392fbe6e..edd70336c0 100644
--- a/src/libs/utils/pathlisteditor.h
+++ b/src/libs/utils/pathlisteditor.h
@@ -58,6 +58,9 @@ public:
void setPathList(const QString &pathString);
void setFileDialogTitle(const QString &l);
+signals:
+ void changed();
+
protected:
// Index after which to insert further "Add" buttons
static const int lastInsertButtonIndex;
diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp
index 11be0ce2b0..6948552c96 100644
--- a/src/plugins/docker/dockerdevice.cpp
+++ b/src/plugins/docker/dockerdevice.cpp
@@ -49,17 +49,18 @@
#include <utils/algorithm.h>
#include <utils/basetreeview.h>
#include <utils/environment.h>
+#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
-#include <utils/utilsicons.h>
#include <utils/layoutbuilder.h>
#include <utils/overridecursor.h>
+#include <utils/pathlisteditor.h>
#include <utils/port.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/stringutils.h>
#include <utils/temporaryfile.h>
#include <utils/treemodel.h>
-#include <utils/fileutils.h>
+#include <utils/utilsicons.h>
#include <QApplication>
#include <QCheckBox>
@@ -394,15 +395,13 @@ public:
dockerDevice->tryCreateLocalFileAccess();
});
- m_pathsLineEdit = new QLineEdit;
- m_pathsLineEdit->setText(data.repo);
- m_pathsLineEdit->setToolTip(tr("Paths in this semi-colon separated list will be "
- "mapped one-to-one into the Docker container."));
- m_pathsLineEdit->setText(data.mounts.join(';'));
- m_pathsLineEdit->setPlaceholderText(tr("List project source directories here"));
+ m_pathsListEdit = new PathListEditor;
+ m_pathsListEdit->setToolTip(tr("Paths in this list will be mapped one-to-one into the "
+ "Docker container."));
+ m_pathsListEdit->setPathList(data.mounts);
- connect(m_pathsLineEdit, &QLineEdit::textChanged, this, [dockerDevice](const QString &text) {
- dockerDevice->setMounts(text.split(';', Qt::SkipEmptyParts));
+ connect(m_pathsListEdit, &PathListEditor::changed, this, [dockerDevice, this]() {
+ dockerDevice->setMounts(m_pathsListEdit->pathList());
});
auto logView = new QTextBrowser;
@@ -443,7 +442,10 @@ public:
daemonStateLabel, m_daemonReset, m_daemonState, Break(),
m_runAsOutsideUser, Break(),
m_usePathMapping, Break(),
- tr("Paths to mount:"), m_pathsLineEdit, Break(),
+ Column {
+ new QLabel(tr("Paths to mount:")),
+ m_pathsListEdit,
+ }, Break(),
Column {
Space(20),
Row { autoDetectButton, undoAutoDetectButton, listAutoDetectedButton, Stretch() },
@@ -463,7 +465,7 @@ private:
QLabel *m_daemonState;
QCheckBox *m_runAsOutsideUser;
QCheckBox *m_usePathMapping;
- QLineEdit *m_pathsLineEdit;
+ Utils::PathListEditor *m_pathsListEdit;
KitDetector m_kitItemDetector;
};