mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-03 16:25:54 +08:00
Ref T357, support for overlay messages in QWizardPage
This commit is contained in:
@@ -203,23 +203,6 @@ namespace BlackGui
|
|||||||
return typeId;
|
return typeId;
|
||||||
}
|
}
|
||||||
|
|
||||||
COverlayMessagesFrame *CGuiUtility::nextOverlayMessageFrame(QWidget *widget, int maxLevels)
|
|
||||||
{
|
|
||||||
if (!widget || maxLevels < 1) { return nullptr; }
|
|
||||||
COverlayMessagesFrame *o = qobject_cast<COverlayMessagesFrame *> (widget);
|
|
||||||
if (o) { return o; }
|
|
||||||
int cl = 0;
|
|
||||||
QWidget *cw = widget->parentWidget();
|
|
||||||
while (cl < maxLevels && cw)
|
|
||||||
{
|
|
||||||
o = qobject_cast<COverlayMessagesFrame *> (cw);
|
|
||||||
if (o) { return o; }
|
|
||||||
cl++;
|
|
||||||
cw = cw->parentWidget();
|
|
||||||
}
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString &CGuiUtility::swiftJsonDragAndDropMimeType()
|
const QString &CGuiUtility::swiftJsonDragAndDropMimeType()
|
||||||
{
|
{
|
||||||
static const QString m("text/json/swift");
|
static const QString m("text/json/swift");
|
||||||
@@ -251,6 +234,21 @@ namespace BlackGui
|
|||||||
return fn.endsWith("json", Qt::CaseInsensitive);
|
return fn.endsWith("json", Qt::CaseInsensitive);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
COverlayMessagesFrame *CGuiUtility::nextOverlayMessageFrame(QWidget *widget, int maxLevels)
|
||||||
|
{
|
||||||
|
return nextOverlayMessageWidget<COverlayMessagesFrame>(widget, maxLevels);
|
||||||
|
}
|
||||||
|
|
||||||
|
COverlayMessagesTabWidget *CGuiUtility::nextOverlayMessageTabWidget(QWidget *widget, int maxLevels)
|
||||||
|
{
|
||||||
|
return nextOverlayMessageWidget<COverlayMessagesTabWidget>(widget, maxLevels);
|
||||||
|
}
|
||||||
|
|
||||||
|
COverlayMessagesWizardPage *CGuiUtility::nextOverlayMessageWizardPage(QWidget *widget, int maxLevels)
|
||||||
|
{
|
||||||
|
return nextOverlayMessageWidget<COverlayMessagesWizardPage>(widget, maxLevels);
|
||||||
|
}
|
||||||
|
|
||||||
void CGuiUtility::checkBoxReadOnly(QCheckBox *checkBox, bool readOnly)
|
void CGuiUtility::checkBoxReadOnly(QCheckBox *checkBox, bool readOnly)
|
||||||
{
|
{
|
||||||
static const QCheckBox defaultBox;
|
static const QCheckBox defaultBox;
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ namespace BlackGui
|
|||||||
{
|
{
|
||||||
class CEnableForFramelessWindow;
|
class CEnableForFramelessWindow;
|
||||||
class COverlayMessagesFrame;
|
class COverlayMessagesFrame;
|
||||||
|
class COverlayMessagesWizardPage;
|
||||||
|
class COverlayMessagesTabWidget;
|
||||||
|
|
||||||
//! GUI utilities
|
//! GUI utilities
|
||||||
class BLACKGUI_EXPORT CGuiUtility
|
class BLACKGUI_EXPORT CGuiUtility
|
||||||
@@ -102,9 +104,33 @@ namespace BlackGui
|
|||||||
//! Is representing existing JSON file
|
//! Is representing existing JSON file
|
||||||
static bool isMimeRepresentingReadableJsonFile(const QMimeData *mime);
|
static bool isMimeRepresentingReadableJsonFile(const QMimeData *mime);
|
||||||
|
|
||||||
//! Find next BlackGui::COverlayMessages QFrame
|
//! Find next BlackGui::COverlayMessages QFrame or other implementing widget
|
||||||
|
template <class OverlayWidget> static OverlayWidget *nextOverlayMessageWidget(QWidget *widget, int maxLevels = 10)
|
||||||
|
{
|
||||||
|
if (!widget || maxLevels < 1) { return nullptr; }
|
||||||
|
OverlayWidget *o = qobject_cast<OverlayWidget *> (widget);
|
||||||
|
if (o) { return o; }
|
||||||
|
int cl = 0;
|
||||||
|
QWidget *cw = widget->parentWidget();
|
||||||
|
while (cl < maxLevels && cw)
|
||||||
|
{
|
||||||
|
o = qobject_cast<OverlayWidget *> (cw);
|
||||||
|
if (o) { return o; }
|
||||||
|
cl++;
|
||||||
|
cw = cw->parentWidget();
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
//! Find next COverlayMessagesFrame
|
||||||
static COverlayMessagesFrame *nextOverlayMessageFrame(QWidget *widget, int maxLevels = 10);
|
static COverlayMessagesFrame *nextOverlayMessageFrame(QWidget *widget, int maxLevels = 10);
|
||||||
|
|
||||||
|
//! Find next COverlayMessagesTabWidget
|
||||||
|
static COverlayMessagesTabWidget *nextOverlayMessageTabWidget(QWidget *widget, int maxLevels = 10);
|
||||||
|
|
||||||
|
//! Find next COverlayMessagesWizardPage
|
||||||
|
static COverlayMessagesWizardPage *nextOverlayMessageWizardPage(QWidget *widget, int maxLevels = 10);
|
||||||
|
|
||||||
//! Metatype
|
//! Metatype
|
||||||
static const QString &swiftJsonDragAndDropMimeType();
|
static const QString &swiftJsonDragAndDropMimeType();
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ namespace BlackGui
|
|||||||
explicit COverlayMessages(const QString &headerText, int w, int h, QWidget *parent);
|
explicit COverlayMessages(const QString &headerText, int w, int h, QWidget *parent);
|
||||||
|
|
||||||
//! Destructor
|
//! Destructor
|
||||||
virtual ~COverlayMessages();
|
virtual ~COverlayMessages() override;
|
||||||
|
|
||||||
//! Messages mode
|
//! Messages mode
|
||||||
void setModeToMessages(bool withKillButton = false);
|
void setModeToMessages(bool withKillButton = false);
|
||||||
|
|||||||
@@ -26,11 +26,14 @@ using namespace BlackMisc::Network;
|
|||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
COverlayMessagesFrame::COverlayMessagesFrame(QWidget *parent) : COverlayMessagesBase(parent)
|
COverlayMessagesFrame::COverlayMessagesFrame(QWidget *parent, Qt::WindowFlags f) : COverlayMessagesBase(parent, f)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
COverlayMessagesTabWidget::COverlayMessagesTabWidget(QWidget *parent) : COverlayMessagesBase(parent)
|
COverlayMessagesTabWidget::COverlayMessagesTabWidget(QWidget *parent) : COverlayMessagesBase(parent)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
COverlayMessagesWizardPage::COverlayMessagesWizardPage(QWidget *parent) : COverlayMessagesBase(parent)
|
||||||
|
{ }
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
#include <QTabWidget>
|
#include <QTabWidget>
|
||||||
|
#include <QWizardPage>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QSize>
|
#include <QSize>
|
||||||
@@ -31,7 +32,6 @@
|
|||||||
|
|
||||||
class QKeyEvent;
|
class QKeyEvent;
|
||||||
class QPaintEvent;
|
class QPaintEvent;
|
||||||
class QWidget;
|
|
||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
@@ -167,8 +167,9 @@ namespace BlackGui
|
|||||||
COverlayMessages *m_overlayMessages = nullptr; //!< embedded QFrame with status messages
|
COverlayMessages *m_overlayMessages = nullptr; //!< embedded QFrame with status messages
|
||||||
|
|
||||||
//! Constructor
|
//! Constructor
|
||||||
COverlayMessagesBase(QWidget *parent) : WIDGET(parent)
|
COverlayMessagesBase(QWidget *parent, Qt::WindowFlags f = Qt::WindowFlags()) : WIDGET(parent)
|
||||||
{
|
{
|
||||||
|
this->setWindowFlags(f);
|
||||||
const bool isFrameless = CGuiUtility::isMainWindowFrameless();
|
const bool isFrameless = CGuiUtility::isMainWindowFrameless();
|
||||||
m_middleFactor = isFrameless ? 1.25 : 1.5; // 2 is middle in normal window
|
m_middleFactor = isFrameless ? 1.25 : 1.5; // 2 is middle in normal window
|
||||||
}
|
}
|
||||||
@@ -253,7 +254,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
explicit COverlayMessagesFrame(QWidget *parent = nullptr);
|
explicit COverlayMessagesFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -267,6 +268,19 @@ namespace BlackGui
|
|||||||
//! Constructor
|
//! Constructor
|
||||||
explicit COverlayMessagesTabWidget(QWidget *parent = nullptr);
|
explicit COverlayMessagesTabWidget(QWidget *parent = nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Using this class provides a QWizardPage with the overlay functionality already integrated.
|
||||||
|
*/
|
||||||
|
class BLACKGUI_EXPORT COverlayMessagesWizardPage : public COverlayMessagesBase<QWizardPage>
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
//! Constructor
|
||||||
|
explicit COverlayMessagesWizardPage(QWidget *parent = nullptr);
|
||||||
|
};
|
||||||
|
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
#endif // guard
|
#endif // guard
|
||||||
|
|||||||
Reference in New Issue
Block a user