aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/devicesupport/idevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/devicesupport/idevice.h')
-rw-r--r--src/plugins/projectexplorer/devicesupport/idevice.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/devicesupport/idevice.h b/src/plugins/projectexplorer/devicesupport/idevice.h
index 560325617c..b263544000 100644
--- a/src/plugins/projectexplorer/devicesupport/idevice.h
+++ b/src/plugins/projectexplorer/devicesupport/idevice.h
@@ -120,6 +120,7 @@ public:
// See cpp file for documentation.
class PROJECTEXPLORER_EXPORT IDevice : public QEnableSharedFromThis<IDevice>
{
+ friend class Internal::IDevicePrivate;
public:
using Ptr = QSharedPointer<IDevice>;
using ConstPtr = QSharedPointer<const IDevice>;
@@ -127,9 +128,10 @@ public:
enum Origin { ManuallyAdded, AutoDetected };
enum MachineType { Hardware, Emulator };
- IDevice &operator=(const IDevice &) = delete;
virtual ~IDevice();
+ Ptr clone() const;
+
QString displayName() const;
void setDisplayName(const QString &name);
@@ -187,7 +189,6 @@ public:
virtual void fromMap(const QVariantMap &map);
virtual QVariantMap toMap() const;
- virtual Ptr clone() const = 0;
static Core::Id typeFromMap(const QVariantMap &map);
static Core::Id idFromMap(const QVariantMap &map);
@@ -218,11 +219,19 @@ public:
void setupId(Origin origin, Core::Id id = Core::Id());
+ bool canOpenTerminal() const;
+ void openTerminal(const Utils::Environment &env, const QString &workingDir) const;
+
protected:
IDevice();
- IDevice(const IDevice &other);
+
+ using OpenTerminal = std::function<void(const Utils::Environment &, const QString &)>;
+ void setOpenTerminal(const OpenTerminal &openTerminal);
private:
+ IDevice(const IDevice &) = delete;
+ IDevice &operator=(const IDevice &) = delete;
+
int version() const;
const std::unique_ptr<Internal::IDevicePrivate> d;