forked from qt-creator/qt-creator
QmlDesigner: Hide ADS for lite designer
* Adapt top toolbar by removing lock button and workspace combo box both in toolbar and flyout * Add lite mode bool to dockamanager in order to lock workspace by default and skip config parameter * Add new flag to ADS to block context menu on DockWidgetTab * Hide workspace menu in view menu * Deactivate middle mouse button and close button on DockWidgetTab Task-number: QDS-13169 Change-Id: I3158c9d7eaef1a58520dc466e85a859e074d1c9e Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Henning Gründl
parent
ea5a5b7f1c
commit
7b0b0deb84
@@ -763,6 +763,11 @@ bool ToolBarBackend::isDocumentDirty() const
|
||||
&& Core::EditorManager::currentDocument()->isModified();
|
||||
}
|
||||
|
||||
bool ToolBarBackend::isLiteModeEnabled() const
|
||||
{
|
||||
return QmlDesignerBasePlugin::isLiteModeEnabled();
|
||||
}
|
||||
|
||||
void ToolBarBackend::launchGlobalAnnotations()
|
||||
{
|
||||
QmlDesignerPlugin::emitUsageStatistics(Constants::EVENT_TOOLBAR_EDIT_GLOBAL_ANNOTATION);
|
||||
|
||||
@@ -99,6 +99,8 @@ class ToolBarBackend : public QObject
|
||||
Q_PROPERTY(bool isSharingEnabled READ isSharingEnabled NOTIFY isSharingEnabledChanged)
|
||||
Q_PROPERTY(bool isDocumentDirty READ isDocumentDirty NOTIFY isDocumentDirtyChanged)
|
||||
|
||||
Q_PROPERTY(bool isLiteModeEnabled READ isLiteModeEnabled CONSTANT)
|
||||
|
||||
public:
|
||||
ToolBarBackend(QObject *parent = nullptr);
|
||||
static void registerDeclarativeType();
|
||||
@@ -150,6 +152,8 @@ public:
|
||||
|
||||
bool isDocumentDirty() const;
|
||||
|
||||
bool isLiteModeEnabled() const;
|
||||
|
||||
static void launchGlobalAnnotations();
|
||||
|
||||
signals:
|
||||
|
||||
@@ -205,14 +205,20 @@ void DesignModeWidget::setup()
|
||||
ADS::DockManager::setConfigFlag(ADS::DockManager::OpaqueSplitterResize, true);
|
||||
ADS::DockManager::setConfigFlag(ADS::DockManager::AllTabsHaveCloseButton, false);
|
||||
ADS::DockManager::setConfigFlag(ADS::DockManager::RetainTabSizeWhenCloseButtonHidden, true);
|
||||
|
||||
//ADS::DockManager::setAutoHideConfigFlags(ADS::DockManager::DefaultAutoHideConfig);
|
||||
|
||||
if (QmlDesignerBasePlugin::isLiteModeEnabled()) {
|
||||
ADS::DockManager::setConfigFlag(ADS::DockManager::ActiveTabHasCloseButton, false);
|
||||
ADS::DockManager::setConfigFlag(ADS::DockManager::MiddleMouseButtonClosesTab, false);
|
||||
ADS::DockManager::setConfigFlag(ADS::DockManager::HideContextMenuDockWidgetTab, true);
|
||||
}
|
||||
|
||||
auto designerSettings = DesignerSettings(settings);
|
||||
if (designerSettings.value(DesignerSettingsKey::ENABLE_DOCKWIDGET_CONTENT_MIN_SIZE).toBool())
|
||||
m_minimumSizeHintMode = ADS::DockWidget::MinimumSizeHintFromContentMinimumSize;
|
||||
|
||||
m_dockManager = new ADS::DockManager(this);
|
||||
m_dockManager->setLiteMode(QmlDesignerBasePlugin::isLiteModeEnabled());
|
||||
m_dockManager->setSettings(settings);
|
||||
m_dockManager->setWorkspacePresetsPath(
|
||||
Core::ICore::resourcePath("qmldesigner/workspacePresets/").toString());
|
||||
@@ -277,35 +283,6 @@ void DesignModeWidget::setup()
|
||||
ADS::DockManager::iconProvider().registerCustomIcon(ADS::FloatingWidgetNormalIcon,
|
||||
floatingWidgetNormalIcon);
|
||||
|
||||
// Setup Actions and Menus
|
||||
Core::ActionContainer *mview = Core::ActionManager::actionContainer(Core::Constants::M_VIEW);
|
||||
// View > Views
|
||||
Core::ActionContainer *mviews = Core::ActionManager::createMenu(Core::Constants::M_VIEW_VIEWS);
|
||||
connect(mviews->menu(), &QMenu::aboutToShow, this, &DesignModeWidget::aboutToShowViews);
|
||||
mviews->menu()->addSeparator();
|
||||
// View > Workspaces
|
||||
Core::ActionContainer *mworkspaces = Core::ActionManager::createMenu(QmlDesigner::Constants::M_VIEW_WORKSPACES);
|
||||
mview->addMenu(mworkspaces, Core::Constants::G_VIEW_VIEWS);
|
||||
mworkspaces->menu()->setTitle(tr("&Workspaces"));
|
||||
mworkspaces->setOnAllDisabledBehavior(Core::ActionContainer::Show);
|
||||
// Connect opening of the 'workspaces' menu with creation of the workspaces menu
|
||||
connect(mworkspaces->menu(), &QMenu::aboutToShow, this, &DesignModeWidget::aboutToShowWorkspaces);
|
||||
|
||||
// Initially disable menus
|
||||
mworkspaces->menu()->setEnabled(false);
|
||||
|
||||
// Enable/disable menus when mode is different to MODE_DESIGN
|
||||
connect(Core::ModeManager::instance(),
|
||||
&Core::ModeManager::currentModeChanged,
|
||||
this,
|
||||
[mworkspaces](Utils::Id mode, Utils::Id) {
|
||||
if (mode == Core::Constants::MODE_DESIGN) {
|
||||
mworkspaces->menu()->setEnabled(true);
|
||||
} else {
|
||||
mworkspaces->menu()->setEnabled(false);
|
||||
}
|
||||
});
|
||||
|
||||
// Create a DockWidget for each QWidget and add them to the DockManager
|
||||
const Core::Context designContext(Core::Constants::C_DESIGN_MODE);
|
||||
static const Utils::Id actionToggle("QmlDesigner.Toggle");
|
||||
@@ -403,8 +380,40 @@ void DesignModeWidget::setup()
|
||||
return first->description() < second->description();
|
||||
});
|
||||
|
||||
for (Core::Command *command : viewCommands)
|
||||
mviews->addAction(command);
|
||||
if (!QmlDesignerBasePlugin::isLiteModeEnabled()) {
|
||||
// Setup Actions and Menus
|
||||
Core::ActionContainer *mview = Core::ActionManager::actionContainer(Core::Constants::M_VIEW);
|
||||
// View > Views
|
||||
Core::ActionContainer *mviews = Core::ActionManager::createMenu(Core::Constants::M_VIEW_VIEWS);
|
||||
connect(mviews->menu(), &QMenu::aboutToShow, this, &DesignModeWidget::aboutToShowViews);
|
||||
mviews->menu()->addSeparator();
|
||||
// View > Workspaces
|
||||
Core::ActionContainer *mworkspaces = Core::ActionManager::createMenu(
|
||||
QmlDesigner::Constants::M_VIEW_WORKSPACES);
|
||||
mview->addMenu(mworkspaces, Core::Constants::G_VIEW_VIEWS);
|
||||
mworkspaces->menu()->setTitle(tr("&Workspaces"));
|
||||
mworkspaces->setOnAllDisabledBehavior(Core::ActionContainer::Show);
|
||||
// Connect opening of the 'workspaces' menu with creation of the workspaces menu
|
||||
connect(mworkspaces->menu(), &QMenu::aboutToShow, this, &DesignModeWidget::aboutToShowWorkspaces);
|
||||
|
||||
// Initially disable menus
|
||||
mworkspaces->menu()->setEnabled(false);
|
||||
|
||||
// Enable/disable menus when mode is different to MODE_DESIGN
|
||||
connect(Core::ModeManager::instance(),
|
||||
&Core::ModeManager::currentModeChanged,
|
||||
this,
|
||||
[mworkspaces](Utils::Id mode, Utils::Id) {
|
||||
if (mode == Core::Constants::MODE_DESIGN) {
|
||||
mworkspaces->menu()->setEnabled(true);
|
||||
} else {
|
||||
mworkspaces->menu()->setEnabled(false);
|
||||
}
|
||||
});
|
||||
|
||||
for (Core::Command *command : viewCommands)
|
||||
mviews->addAction(command);
|
||||
}
|
||||
|
||||
// Create toolbars
|
||||
if (!ToolBar::isVisible()) {
|
||||
|
||||
Reference in New Issue
Block a user