QmlDesigner: Add live preview zoom to run button

Task-number: QDS-14682
Change-Id: I0c3275a872e1a5a15fbdc2feb5f763ed550ce8f0
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Henning Gruendl
2025-02-07 14:02:27 +01:00
committed by Henning Gründl
parent 777251dcb4
commit 3bdc56264a
5 changed files with 46 additions and 0 deletions

View File

@@ -129,6 +129,15 @@ Rectangle {
onCancelClicked: backend.cancelRunning() onCancelClicked: backend.cancelRunning()
onRunTargetSelected: function(targetName) { backend.selectRunTarget(targetName) } onRunTargetSelected: function(targetName) { backend.selectRunTarget(targetName) }
onOpenRunTargets: backend.openDeviceManager() onOpenRunTargets: backend.openDeviceManager()
TapHandler {
enabled: backend.runTargetType === RunManager.LivePreview
acceptedButtons: Qt.RightButton
onTapped: {
var p = splitButton.mapToGlobal(0, 0)
backend.showZoomMenu(p.x, p.y)
}
}
} }
StudioControls.TopLevelComboBox { StudioControls.TopLevelComboBox {

View File

@@ -277,6 +277,11 @@ int RunManager::currentTargetIndex() const
return runTargetIndex(m_currentTargetId); return runTargetIndex(m_currentTargetId);
} }
RunManager::TargetType RunManager::currentTargetType() const
{
return m_currentTargetType;
}
bool RunManager::selectRunTarget(Utils::Id id) bool RunManager::selectRunTarget(Utils::Id id)
{ {
if (m_currentTargetId == id) if (m_currentTargetId == id)
@@ -292,6 +297,20 @@ bool RunManager::selectRunTarget(Utils::Id id)
m_currentTargetId = id; m_currentTargetId = id;
emit runTargetChanged(); emit runTargetChanged();
TargetType type;
if (m_currentTargetId == ProjectExplorer::Constants::NORMAL_RUN_MODE)
type = TargetType::Normal;
else if (m_currentTargetId == ProjectExplorer::Constants::QML_PREVIEW_RUN_MODE)
type = TargetType::LivePreview;
else
type = TargetType::Android;
if (m_currentTargetType != type) {
m_currentTargetType = type;
emit runTargetTypeChanged();
}
return true; return true;
} }

View File

@@ -57,6 +57,9 @@ public:
enum TargetState { Packing, Sending, Starting, Running, NotRunning }; enum TargetState { Packing, Sending, Starting, Running, NotRunning };
Q_ENUM(TargetState) Q_ENUM(TargetState)
enum TargetType { Normal, LivePreview, Android };
Q_ENUM(TargetType)
void udpateTargets(); void udpateTargets();
const QList<Target> targets() const; const QList<Target> targets() const;
@@ -65,6 +68,7 @@ public:
void cancelCurrentTarget(); void cancelCurrentTarget();
int currentTargetIndex() const; int currentTargetIndex() const;
TargetType currentTargetType() const;
bool selectRunTarget(Utils::Id id); bool selectRunTarget(Utils::Id id);
bool selectRunTarget(const QString &targetName); bool selectRunTarget(const QString &targetName);
@@ -88,6 +92,7 @@ private:
QList<Target> m_targets; QList<Target> m_targets;
Utils::Id m_currentTargetId; Utils::Id m_currentTargetId;
TargetType m_currentTargetType = TargetType::Normal;
QList<RunningTarget> m_runningTargets; QList<RunningTarget> m_runningTargets;
@@ -97,6 +102,7 @@ private:
signals: signals:
void runTargetChanged(); void runTargetChanged();
void runTargetTypeChanged();
void stateChanged(); void stateChanged();
void targetsChanged(); void targetsChanged();
void progressChanged(); void progressChanged();

View File

@@ -491,6 +491,10 @@ ToolBarBackend::ToolBarBackend(QObject *parent)
&RunManager::runTargetChanged, &RunManager::runTargetChanged,
this, this,
&ToolBarBackend::runTargetIndexChanged); &ToolBarBackend::runTargetIndexChanged);
connect(&QmlDesignerPlugin::runManager(),
&RunManager::runTargetTypeChanged,
this,
&ToolBarBackend::runTargetTypeChanged);
connect(&QmlDesignerPlugin::runManager(), connect(&QmlDesignerPlugin::runManager(),
&RunManager::stateChanged, &RunManager::stateChanged,
this, this,
@@ -917,6 +921,11 @@ int ToolBarBackend::runTargetIndex() const
return QmlDesignerPlugin::runManager().currentTargetIndex(); return QmlDesignerPlugin::runManager().currentTargetIndex();
} }
int ToolBarBackend::runTargetType() const
{
return QmlDesignerPlugin::runManager().currentTargetType();
}
int ToolBarBackend::runManagerState() const int ToolBarBackend::runManagerState() const
{ {
return QmlDesignerPlugin::runManager().state(); return QmlDesignerPlugin::runManager().state();

View File

@@ -127,6 +127,7 @@ class ToolBarBackend : public QObject
Q_PROPERTY(bool isLiteModeEnabled READ isLiteModeEnabled CONSTANT) Q_PROPERTY(bool isLiteModeEnabled READ isLiteModeEnabled CONSTANT)
Q_PROPERTY(int runTargetIndex READ runTargetIndex NOTIFY runTargetIndexChanged) Q_PROPERTY(int runTargetIndex READ runTargetIndex NOTIFY runTargetIndexChanged)
Q_PROPERTY(int runTargetType READ runTargetType NOTIFY runTargetTypeChanged)
Q_PROPERTY(int runManagerState READ runManagerState NOTIFY runManagerStateChanged) Q_PROPERTY(int runManagerState READ runManagerState NOTIFY runManagerStateChanged)
Q_PROPERTY(int runManagerProgress READ runManagerProgress NOTIFY runManagerProgressChanged) Q_PROPERTY(int runManagerProgress READ runManagerProgress NOTIFY runManagerProgressChanged)
Q_PROPERTY(QString runManagerError READ runManagerError NOTIFY runManagerErrorChanged) Q_PROPERTY(QString runManagerError READ runManagerError NOTIFY runManagerErrorChanged)
@@ -192,6 +193,7 @@ public:
bool isLiteModeEnabled() const; bool isLiteModeEnabled() const;
int runTargetIndex() const; int runTargetIndex() const;
int runTargetType() const;
int runManagerState() const; int runManagerState() const;
int runManagerProgress() const; int runManagerProgress() const;
QString runManagerError() const; QString runManagerError() const;
@@ -221,6 +223,7 @@ signals:
void isDocumentDirtyChanged(); void isDocumentDirtyChanged();
void runTargetIndexChanged(); void runTargetIndexChanged();
void runTargetTypeChanged();
void runManagerStateChanged(); void runManagerStateChanged();
void runManagerProgressChanged(); void runManagerProgressChanged();
void runManagerErrorChanged(); void runManagerErrorChanged();