forked from qt-creator/qt-creator
Core: Hide About dialog definition in .cpp
Change-Id: Ic8bd2535868319eb78ba61e90f35bf63b74b7b2e Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -272,7 +272,6 @@ public:
|
||||
void aboutToShowRecentFiles();
|
||||
|
||||
static void setFocusToEditor();
|
||||
void aboutQtCreator();
|
||||
void changeLog();
|
||||
void contact();
|
||||
void updateFocusWidget(QWidget *old, QWidget *now);
|
||||
@@ -309,7 +308,6 @@ public:
|
||||
NavigationWidget *m_leftNavigationWidget = nullptr;
|
||||
NavigationWidget *m_rightNavigationWidget = nullptr;
|
||||
RightPaneWidget *m_rightPaneWidget = nullptr;
|
||||
VersionDialog *m_versionDialog = nullptr;
|
||||
|
||||
QList<IContext *> m_activeContext;
|
||||
|
||||
@@ -2036,7 +2034,7 @@ void ICorePrivate::registerDefaultActions()
|
||||
aboutIdeAction.setMenuRole(QAction::AboutRole);
|
||||
aboutIdeAction.addToContainer(Constants::M_HELP, Constants::G_HELP_ABOUT);
|
||||
aboutIdeAction.setEnabled(true);
|
||||
aboutIdeAction.addOnTriggered(this, [this] { aboutQtCreator(); });
|
||||
aboutIdeAction.addOnTriggered(this, &showAboutQtCreator);
|
||||
|
||||
// About Plugins Action
|
||||
ActionBuilder aboutPluginsAction(this, Constants::ABOUT_PLUGINS);
|
||||
@@ -2429,27 +2427,6 @@ void ICorePrivate::aboutToShowRecentFiles()
|
||||
}
|
||||
}
|
||||
|
||||
void ICorePrivate::aboutQtCreator()
|
||||
{
|
||||
if (!m_versionDialog) {
|
||||
m_versionDialog = new VersionDialog(m_mainwindow);
|
||||
connect(m_versionDialog, &QDialog::finished,
|
||||
this, &ICorePrivate::destroyVersionDialog);
|
||||
ICore::registerWindow(m_versionDialog, Context("Core.VersionDialog"));
|
||||
m_versionDialog->show();
|
||||
} else {
|
||||
ICore::raiseWindow(m_versionDialog);
|
||||
}
|
||||
}
|
||||
|
||||
void ICorePrivate::destroyVersionDialog()
|
||||
{
|
||||
if (m_versionDialog) {
|
||||
m_versionDialog->deleteLater();
|
||||
m_versionDialog = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
class LogDialog : public QDialog
|
||||
{
|
||||
public:
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include <utils/stringutils.h>
|
||||
#include <utils/utilsicons.h>
|
||||
|
||||
#include <QDialog>
|
||||
#include <QDialogButtonBox>
|
||||
#include <QGridLayout>
|
||||
#include <QGuiApplication>
|
||||
@@ -23,11 +24,18 @@
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
|
||||
using namespace Core;
|
||||
using namespace Core::Internal;
|
||||
namespace Core::Internal {
|
||||
|
||||
VersionDialog::VersionDialog(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
class VersionDialog final : public QDialog
|
||||
{
|
||||
public:
|
||||
VersionDialog();
|
||||
|
||||
bool event(QEvent *event) final;
|
||||
};
|
||||
|
||||
VersionDialog::VersionDialog()
|
||||
: QDialog(ICore::dialogParent())
|
||||
{
|
||||
// We need to set the window icon explicitly here since for some reason the
|
||||
// application icon isn't used when the size of the dialog is fixed (at least not on X11/GNOME)
|
||||
@@ -78,3 +86,27 @@ bool VersionDialog::event(QEvent *event)
|
||||
}
|
||||
return QDialog::event(event);
|
||||
}
|
||||
|
||||
static QDialog *s_versionDialog = nullptr;
|
||||
|
||||
static void destroyVersionDialog()
|
||||
{
|
||||
if (s_versionDialog) {
|
||||
s_versionDialog->deleteLater();
|
||||
s_versionDialog = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void showAboutQtCreator()
|
||||
{
|
||||
if (s_versionDialog) {
|
||||
ICore::raiseWindow(s_versionDialog);
|
||||
} else {
|
||||
s_versionDialog = new VersionDialog;
|
||||
QObject::connect(s_versionDialog, &QDialog::finished, &destroyVersionDialog);
|
||||
ICore::registerWindow(s_versionDialog, Context("Core.VersionDialog"));
|
||||
s_versionDialog->show();
|
||||
}
|
||||
}
|
||||
|
||||
} // Core::Internal
|
||||
|
@@ -3,24 +3,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
namespace Core::Internal {
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QEvent;
|
||||
QT_END_NAMESPACE
|
||||
void showAboutQtCreator();
|
||||
|
||||
namespace Core {
|
||||
namespace Internal {
|
||||
|
||||
class VersionDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit VersionDialog(QWidget *parent);
|
||||
|
||||
bool event(QEvent *event) override;
|
||||
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Core
|
||||
} // Core::Internal
|
||||
|
Reference in New Issue
Block a user