mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-28 20:25:34 +08:00
refs #471, removed old info window and migrated to overlay widget
* added small message display (more suitable for swift GUI) * fixed nullptr bug with ESC key * adjusted swift GUI
This commit is contained in:
committed by
Mathew Sutcliffe
parent
012543ef02
commit
8e57914e67
@@ -1,143 +0,0 @@
|
|||||||
/* Copyright (C) 2013
|
|
||||||
* swift project Community / Contributors
|
|
||||||
*
|
|
||||||
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
|
||||||
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
|
||||||
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
|
||||||
* contained in the LICENSE file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "infowindowcomponent.h"
|
|
||||||
#include "ui_infowindowcomponent.h"
|
|
||||||
#include "../stylesheetutility.h"
|
|
||||||
#include "blackmisc/icon.h"
|
|
||||||
#include <QTimer>
|
|
||||||
#include <QDesktopWidget>
|
|
||||||
|
|
||||||
using namespace BlackMisc;
|
|
||||||
using namespace BlackMisc::Network;
|
|
||||||
|
|
||||||
|
|
||||||
namespace BlackGui
|
|
||||||
{
|
|
||||||
namespace Components
|
|
||||||
{
|
|
||||||
CInfoWindowComponent::CInfoWindowComponent(QWidget *parent) :
|
|
||||||
QWizardPage(parent),
|
|
||||||
ui(new Ui::InfoWindow)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
this->hide();
|
|
||||||
this->m_hideTimer = new QTimer(this);
|
|
||||||
this->m_hideTimer->setSingleShot(true);
|
|
||||||
this->ps_onStyleSheetsChanged();
|
|
||||||
|
|
||||||
connect(this->m_hideTimer, &QTimer::timeout, this, &CInfoWindowComponent::hide);
|
|
||||||
connect(this->ui->pb_Close, &QPushButton::pressed, this, &CInfoWindowComponent::hide);
|
|
||||||
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &CInfoWindowComponent::ps_onStyleSheetsChanged);
|
|
||||||
}
|
|
||||||
|
|
||||||
CInfoWindowComponent::~CInfoWindowComponent() { }
|
|
||||||
|
|
||||||
void CInfoWindowComponent::displayStringMessage(const QString &message, int displayTimeMs)
|
|
||||||
{
|
|
||||||
if (message.isEmpty())
|
|
||||||
{
|
|
||||||
this->hide();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// message and display
|
|
||||||
this->ui->te_StringMessage->setText(message);
|
|
||||||
this->setCurrentPage(this->ui->pg_StringMessage);
|
|
||||||
this->showWindow(displayTimeMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoWindowComponent::displayTextMessage(const CTextMessage &textMessage, int displayTimeMs)
|
|
||||||
{
|
|
||||||
if (textMessage.isEmpty())
|
|
||||||
{
|
|
||||||
this->hide();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// message and display
|
|
||||||
this->ui->le_TmFrom->setText(textMessage.getSenderCallsign().asString());
|
|
||||||
this->ui->le_TmTo->setText(textMessage.getRecipientCallsign().asString());
|
|
||||||
this->ui->le_TmReceived->setText(textMessage.getFormattedUtcTimestampHms());
|
|
||||||
this->ui->te_TmText->setText(textMessage.getMessage());
|
|
||||||
|
|
||||||
this->setCurrentPage(this->ui->pg_TextMessage);
|
|
||||||
this->showWindow(displayTimeMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoWindowComponent::displayStatusMessage(const CStatusMessage &statusMessage, int displayTimeMs)
|
|
||||||
{
|
|
||||||
if (statusMessage.isEmpty())
|
|
||||||
{
|
|
||||||
this->hide();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this->ui->le_SmSeverity->setText(statusMessage.getSeverityAsString());
|
|
||||||
this->ui->le_SmCategories->setText(statusMessage.getCategories().toQString());
|
|
||||||
this->ui->te_SmStatusMessage->setText(statusMessage.getMessage());
|
|
||||||
this->ui->lbl_SmSeverityIcon->setPixmap(statusMessage.toPixmap());
|
|
||||||
|
|
||||||
this->setCurrentPage(this->ui->pg_StatusMessage);
|
|
||||||
this->showWindow(displayTimeMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoWindowComponent::display(const BlackMisc::CVariant &variant, int displayTimeMs)
|
|
||||||
{
|
|
||||||
if (variant.isNull())
|
|
||||||
{
|
|
||||||
this->hide();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (variant.canConvert<CTextMessage>())
|
|
||||||
{
|
|
||||||
this->displayTextMessage(variant.value<CTextMessage>(), displayTimeMs);
|
|
||||||
}
|
|
||||||
else if (variant.canConvert<CStatusMessage>())
|
|
||||||
{
|
|
||||||
this->displayStatusMessage(variant.value<CStatusMessage>(), displayTimeMs);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this->displayStringMessage(variant.toQString(), displayTimeMs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoWindowComponent::initWindow()
|
|
||||||
{
|
|
||||||
// center
|
|
||||||
const QRect parent = this->parentWidget()->geometry();
|
|
||||||
const QRect myself = this->rect();
|
|
||||||
int dx = (parent.width() - myself.width()) / 2;
|
|
||||||
int dy = (parent.height() - myself.height()) / 2;
|
|
||||||
dy -= 80; // some offset, in order to display further on top
|
|
||||||
this->move(dx, dy);
|
|
||||||
this->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoWindowComponent::showWindow(int displayTimeMs)
|
|
||||||
{
|
|
||||||
this->initWindow();
|
|
||||||
|
|
||||||
// hide after some time
|
|
||||||
this->m_hideTimer->start(displayTimeMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoWindowComponent::setCurrentPage(QWidget *widget)
|
|
||||||
{
|
|
||||||
this->ui->sw_DifferentModes->setCurrentWidget(widget);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoWindowComponent::ps_onStyleSheetsChanged()
|
|
||||||
{
|
|
||||||
QString st = CStyleSheetUtility::instance().style(CStyleSheetUtility::fileNameInfoWindow());
|
|
||||||
this->setStyleSheet(st);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} // namespace
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
/* Copyright (C) 2013
|
|
||||||
* swift project Community / Contributors
|
|
||||||
*
|
|
||||||
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
|
||||||
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
|
||||||
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
|
||||||
* contained in the LICENSE file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
//! \file
|
|
||||||
|
|
||||||
#ifndef BLACKGUI_INFOWINDOW_H
|
|
||||||
#define BLACKGUI_INFOWINDOW_H
|
|
||||||
|
|
||||||
#include "blackgui/blackguiexport.h"
|
|
||||||
#include "blackmisc/network/textmessage.h"
|
|
||||||
#include "blackmisc/statusmessage.h"
|
|
||||||
#include "blackmisc/variant.h"
|
|
||||||
|
|
||||||
#include <QWizardPage>
|
|
||||||
#include <QScopedPointer>
|
|
||||||
|
|
||||||
namespace Ui { class InfoWindow; }
|
|
||||||
|
|
||||||
namespace BlackGui
|
|
||||||
{
|
|
||||||
namespace Components
|
|
||||||
{
|
|
||||||
/*!
|
|
||||||
* Multi purpose info window (like pop up window)
|
|
||||||
*/
|
|
||||||
class BLACKGUI_EXPORT CInfoWindowComponent : public QWizardPage
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
const static int DefaultDisplayTimeMs = 4000; //!< Display n milliseconds
|
|
||||||
|
|
||||||
//! Constructor
|
|
||||||
explicit CInfoWindowComponent(QWidget *parent = nullptr);
|
|
||||||
|
|
||||||
//! Destructor
|
|
||||||
~CInfoWindowComponent();
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
//! Info message, pure string
|
|
||||||
void displayStringMessage(const QString &message, int displayTimeMs = DefaultDisplayTimeMs);
|
|
||||||
|
|
||||||
//! Info message, based on text message
|
|
||||||
void displayTextMessage(const BlackMisc::Network::CTextMessage &textMessage, int displayTimeMs = DefaultDisplayTimeMs);
|
|
||||||
|
|
||||||
//! Info message, based on status message
|
|
||||||
void displayStatusMessage(const BlackMisc::CStatusMessage &statusMessage, int displayTimeMs = DefaultDisplayTimeMs);
|
|
||||||
|
|
||||||
//! Display any of the specialized types
|
|
||||||
void display(const BlackMisc::CVariant &variant, int displayTimeMs = DefaultDisplayTimeMs);
|
|
||||||
|
|
||||||
private:
|
|
||||||
QScopedPointer<Ui::InfoWindow> ui; //!< user interface
|
|
||||||
QTimer *m_hideTimer = nullptr;
|
|
||||||
|
|
||||||
//! Init the window
|
|
||||||
void initWindow();
|
|
||||||
|
|
||||||
//! Show window, hide after some time
|
|
||||||
void showWindow(int displayTimeMs);
|
|
||||||
|
|
||||||
//! Current page
|
|
||||||
void setCurrentPage(QWidget *widget);
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
//! Style sheet changed
|
|
||||||
void ps_onStyleSheetsChanged();
|
|
||||||
};
|
|
||||||
} // namespace
|
|
||||||
} // namespace
|
|
||||||
#endif // guard
|
|
||||||
@@ -1,220 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>InfoWindow</class>
|
|
||||||
<widget class="QWizardPage" name="InfoWindow">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>300</width>
|
|
||||||
<height>185</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>WizardPage</string>
|
|
||||||
</property>
|
|
||||||
<property name="styleSheet">
|
|
||||||
<string notr="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>Information</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="vl_InfoWindow">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QFrame" name="fr_InfoWindow">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Raised</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="vl_layoutInfoFrame">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item alignment="Qt::AlignRight">
|
|
||||||
<widget class="QPushButton" name="pb_Close">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../../blackmisc/blackmisc.qrc">
|
|
||||||
<normaloff>:/diagona/icons/diagona/icons/cross-button.png</normaloff>:/diagona/icons/diagona/icons/cross-button.png</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QStackedWidget" name="sw_DifferentModes">
|
|
||||||
<property name="currentIndex">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="pg_StringMessage">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QTextEdit" name="te_StringMessage">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="pg_TextMessage">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" name="gl_TextMessage">
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="QLabel" name="lbl_TmTo">
|
|
||||||
<property name="text">
|
|
||||||
<string>To</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Received</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLineEdit" name="le_TmReceived"/>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="lbl_TmFrom">
|
|
||||||
<property name="text">
|
|
||||||
<string>From</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="3">
|
|
||||||
<widget class="QLineEdit" name="le_TmTo">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLineEdit" name="le_TmFrom">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1" colspan="3">
|
|
||||||
<widget class="QTextEdit" name="te_TmText"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="pg_StatusMessage">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" name="gl_StatusMessage">
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="lbl_SmCategories">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Categories</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Cat.</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLineEdit" name="le_SmSeverity">
|
|
||||||
<property name="text">
|
|
||||||
<string>severity</string>
|
|
||||||
</property>
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLineEdit" name="le_SmCategories">
|
|
||||||
<property name="text">
|
|
||||||
<string>type</string>
|
|
||||||
</property>
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0" colspan="3">
|
|
||||||
<widget class="QTextEdit" name="te_SmStatusMessage">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="lbl_SmSeverity">
|
|
||||||
<property name="text">
|
|
||||||
<string>Severity</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QLabel" name="lbl_SmSeverityIcon">
|
|
||||||
<property name="text">
|
|
||||||
<string>icon</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources>
|
|
||||||
<include location="../../blackmisc/blackmisc.qrc"/>
|
|
||||||
</resources>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
||||||
@@ -23,6 +23,7 @@ namespace BlackGui
|
|||||||
ui(new Ui::COverlayMessages)
|
ui(new Ui::COverlayMessages)
|
||||||
{
|
{
|
||||||
this->init(w, h);
|
this->init(w, h);
|
||||||
|
connect(&CStyleSheetUtility::instance(), &CStyleSheetUtility::styleSheetsChanged, this, &COverlayMessages::ps_onStyleSheetsChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
COverlayMessages::COverlayMessages(const QString &headerText, int w, int h, QWidget *parent) :
|
COverlayMessages::COverlayMessages(const QString &headerText, int w, int h, QWidget *parent) :
|
||||||
@@ -56,6 +57,16 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void COverlayMessages::ps_onStyleSheetsChanged()
|
||||||
|
{
|
||||||
|
// stlye sheet
|
||||||
|
}
|
||||||
|
|
||||||
|
bool COverlayMessages::useSmall() const
|
||||||
|
{
|
||||||
|
return (this->width() < 400);
|
||||||
|
}
|
||||||
|
|
||||||
COverlayMessages::~COverlayMessages()
|
COverlayMessages::~COverlayMessages()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -70,8 +81,16 @@ namespace BlackGui
|
|||||||
void COverlayMessages::showMessage(const BlackMisc::CStatusMessage &message, int timeOutMs)
|
void COverlayMessages::showMessage(const BlackMisc::CStatusMessage &message, int timeOutMs)
|
||||||
{
|
{
|
||||||
if (message.isEmpty()) { return; }
|
if (message.isEmpty()) { return; }
|
||||||
|
if (this->useSmall())
|
||||||
|
{
|
||||||
|
this->setModeToMessageSmall();
|
||||||
|
this->ui->form_StatusMessageSmall->setValue(message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
this->setModeToMessage();
|
this->setModeToMessage();
|
||||||
this->ui->form_StatusMessage->setValue(message);
|
this->ui->form_StatusMessage->setValue(message);
|
||||||
|
}
|
||||||
this->display(timeOutMs);
|
this->display(timeOutMs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,6 +137,12 @@ namespace BlackGui
|
|||||||
this->setHeader("Message");
|
this->setHeader("Message");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void COverlayMessages::setModeToMessageSmall()
|
||||||
|
{
|
||||||
|
this->ui->sw_StatusMessagesComponent->setCurrentWidget(this->ui->pg_StatusMessageSmall);
|
||||||
|
this->setHeader("Message");
|
||||||
|
}
|
||||||
|
|
||||||
void COverlayMessages::setModeToTextMessage()
|
void COverlayMessages::setModeToTextMessage()
|
||||||
{
|
{
|
||||||
this->ui->sw_StatusMessagesComponent->setCurrentWidget(this->ui->pg_TextMessage);
|
this->ui->sw_StatusMessagesComponent->setCurrentWidget(this->ui->pg_TextMessage);
|
||||||
@@ -126,11 +151,15 @@ namespace BlackGui
|
|||||||
|
|
||||||
void COverlayMessages::keyPressEvent(QKeyEvent *event)
|
void COverlayMessages::keyPressEvent(QKeyEvent *event)
|
||||||
{
|
{
|
||||||
if (event->key() == Qt::Key_Escape)
|
if (this->isVisible() && event->key() == Qt::Key_Escape)
|
||||||
{
|
{
|
||||||
this->close();
|
this->close();
|
||||||
event->setAccepted(true);
|
event->setAccepted(true);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QFrame::keyPressEvent(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverlayMessages::close()
|
void COverlayMessages::close()
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#ifndef BLACKGUI_OVERLAYMESSAGES_H
|
#ifndef BLACKGUI_OVERLAYMESSAGES_H
|
||||||
#define BLACKGUI_OVERLAYMESSAGES_H
|
#define BLACKGUI_OVERLAYMESSAGES_H
|
||||||
|
|
||||||
|
#include "blackgui/blackguiexport.h"
|
||||||
#include "blackmisc/network/textmessage.h"
|
#include "blackmisc/network/textmessage.h"
|
||||||
#include "blackmisc/statusmessagelist.h"
|
#include "blackmisc/statusmessagelist.h"
|
||||||
#include "blackmisc/variant.h"
|
#include "blackmisc/variant.h"
|
||||||
@@ -26,7 +27,7 @@ namespace BlackGui
|
|||||||
/*!
|
/*!
|
||||||
* Display status messages (nested in another widget)
|
* Display status messages (nested in another widget)
|
||||||
*/
|
*/
|
||||||
class COverlayMessages : public QFrame
|
class BLACKGUI_EXPORT COverlayMessages : public QFrame
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@@ -40,6 +41,22 @@ namespace BlackGui
|
|||||||
//! Destructor
|
//! Destructor
|
||||||
~COverlayMessages();
|
~COverlayMessages();
|
||||||
|
|
||||||
|
//! Messages mode
|
||||||
|
void setModeToMessages();
|
||||||
|
|
||||||
|
//! Single Message mode
|
||||||
|
void setModeToMessage();
|
||||||
|
|
||||||
|
//! Single Message mode
|
||||||
|
void setModeToMessageSmall();
|
||||||
|
|
||||||
|
//! Single Text message mode
|
||||||
|
void setModeToTextMessage();
|
||||||
|
|
||||||
|
//! Set header text
|
||||||
|
void setHeaderText(const QString &header);
|
||||||
|
|
||||||
|
public slots:
|
||||||
//! Show multiple messages
|
//! Show multiple messages
|
||||||
void showMessages(const BlackMisc::CStatusMessageList &messages, int timeOutMs = -1);
|
void showMessages(const BlackMisc::CStatusMessageList &messages, int timeOutMs = -1);
|
||||||
|
|
||||||
@@ -52,19 +69,6 @@ namespace BlackGui
|
|||||||
//! Display one of the supported types
|
//! Display one of the supported types
|
||||||
void showVariant(const BlackMisc::CVariant &variant, int timeOutMs = -1);
|
void showVariant(const BlackMisc::CVariant &variant, int timeOutMs = -1);
|
||||||
|
|
||||||
//! Messages mode
|
|
||||||
void setModeToMessages();
|
|
||||||
|
|
||||||
//! Single Message mode
|
|
||||||
void setModeToMessage();
|
|
||||||
|
|
||||||
//! Single Text message mode
|
|
||||||
void setModeToTextMessage();
|
|
||||||
|
|
||||||
//! Set header text
|
|
||||||
void setHeaderText(const QString &header);
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
//! Close button clicked
|
//! Close button clicked
|
||||||
void close();
|
void close();
|
||||||
|
|
||||||
@@ -78,6 +82,13 @@ namespace BlackGui
|
|||||||
//! \copydoc QFrame::paintEvent
|
//! \copydoc QFrame::paintEvent
|
||||||
virtual void paintEvent(QPaintEvent *event) override;
|
virtual void paintEvent(QPaintEvent *event) override;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
//! Stylesheet changed
|
||||||
|
void ps_onStyleSheetsChanged();
|
||||||
|
|
||||||
|
//! Small
|
||||||
|
bool useSmall() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QScopedPointer<Ui::COverlayMessages> ui;
|
QScopedPointer<Ui::COverlayMessages> ui;
|
||||||
QString m_header;
|
QString m_header;
|
||||||
|
|||||||
@@ -113,6 +113,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="sw_StatusMessagesComponent">
|
<widget class="QStackedWidget" name="sw_StatusMessagesComponent">
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
<widget class="QWidget" name="pg_StatusMessages">
|
<widget class="QWidget" name="pg_StatusMessages">
|
||||||
<layout class="QVBoxLayout" name="vl_PgStatusMessages">
|
<layout class="QVBoxLayout" name="vl_PgStatusMessages">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
@@ -174,6 +177,35 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QWidget" name="pg_StatusMessageSmall">
|
||||||
|
<layout class="QVBoxLayout" name="vl_StatusMessageSmall">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="BlackGui::CStatusMessageFormSmall" name="form_StatusMessageSmall">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
<widget class="QWidget" name="pg_TextMessage">
|
<widget class="QWidget" name="pg_TextMessage">
|
||||||
<layout class="QVBoxLayout" name="vl_TextMessage">
|
<layout class="QVBoxLayout" name="vl_TextMessage">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
@@ -257,6 +289,12 @@
|
|||||||
<header>blackgui/statusmessageform.h</header>
|
<header>blackgui/statusmessageform.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>BlackGui::CStatusMessageFormSmall</class>
|
||||||
|
<extends>QFrame</extends>
|
||||||
|
<header>blackgui/statusmessageformsmall.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../blackmisc/blackmisc.qrc"/>
|
<include location="../blackmisc/blackmisc.qrc"/>
|
||||||
|
|||||||
@@ -28,22 +28,37 @@ namespace BlackGui
|
|||||||
|
|
||||||
void COverlayMessagesFrame::hideStatusMessagesFrame()
|
void COverlayMessagesFrame::hideStatusMessagesFrame()
|
||||||
{
|
{
|
||||||
if (!m_statusMessages) { return; }
|
if (!m_overlayMessages) { return; }
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverlayMessagesFrame::showMessages(const BlackMisc::CStatusMessageList &messages)
|
void COverlayMessagesFrame::showMessage(const BlackMisc::CStatusMessage &message, int timeOutMs)
|
||||||
{
|
|
||||||
if (messages.isEmpty()) { return; }
|
|
||||||
this->initInnerFrame();
|
|
||||||
this->m_statusMessages->showMessages(messages);
|
|
||||||
this->repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
void COverlayMessagesFrame::showMessage(const BlackMisc::CStatusMessage &message)
|
|
||||||
{
|
{
|
||||||
if (message.isEmpty()) { return; }
|
if (message.isEmpty()) { return; }
|
||||||
this->initInnerFrame();
|
this->initInnerFrame();
|
||||||
this->m_statusMessages->showMessage(message);
|
this->m_overlayMessages->showMessage(message, timeOutMs);
|
||||||
|
this->repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
void COverlayMessagesFrame::showMessages(const BlackMisc::CStatusMessageList &messages, int timeOutMs)
|
||||||
|
{
|
||||||
|
if (messages.isEmpty()) { return; }
|
||||||
|
this->initInnerFrame();
|
||||||
|
this->m_overlayMessages->showMessages(messages, timeOutMs);
|
||||||
|
this->repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
void COverlayMessagesFrame::showTextMessage(const BlackMisc::Network::CTextMessage &textMessage, int timeOutMs)
|
||||||
|
{
|
||||||
|
if (textMessage.isEmpty()) { return; }
|
||||||
|
this->initInnerFrame();
|
||||||
|
this->m_overlayMessages->showTextMessage(textMessage, timeOutMs);
|
||||||
|
this->repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
void COverlayMessagesFrame::showVariant(const BlackMisc::CVariant &variant, int timeOutMs)
|
||||||
|
{
|
||||||
|
this->initInnerFrame();
|
||||||
|
this->m_overlayMessages->showVariant(variant, timeOutMs);
|
||||||
this->repaint();
|
this->repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,10 +71,9 @@ namespace BlackGui
|
|||||||
|
|
||||||
void COverlayMessagesFrame::keyPressEvent(QKeyEvent *event)
|
void COverlayMessagesFrame::keyPressEvent(QKeyEvent *event)
|
||||||
{
|
{
|
||||||
if (!m_statusMessages) { QFrame::keyPressEvent(event); }
|
if (m_overlayMessages && event->key() == Qt::Key_Escape)
|
||||||
if (event->key() == Qt::Key_Escape)
|
|
||||||
{
|
{
|
||||||
m_statusMessages->close();
|
m_overlayMessages->close();
|
||||||
event->setAccepted(true);
|
event->setAccepted(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -80,9 +94,9 @@ namespace BlackGui
|
|||||||
void COverlayMessagesFrame::initInnerFrame()
|
void COverlayMessagesFrame::initInnerFrame()
|
||||||
{
|
{
|
||||||
QSize inner(innerFrameSize());
|
QSize inner(innerFrameSize());
|
||||||
if (!this->m_statusMessages)
|
if (!this->m_overlayMessages)
|
||||||
{
|
{
|
||||||
this->m_statusMessages = new COverlayMessages(inner.width(), inner.height(), this);
|
this->m_overlayMessages = new COverlayMessages(inner.width(), inner.height(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
QPoint middle = this->geometry().center();
|
QPoint middle = this->geometry().center();
|
||||||
@@ -90,6 +104,6 @@ namespace BlackGui
|
|||||||
int h = inner.height();
|
int h = inner.height();
|
||||||
int x = middle.x() - w / 2;
|
int x = middle.x() - w / 2;
|
||||||
int y = middle.y() - h / 2;
|
int y = middle.y() - h / 2;
|
||||||
this->m_statusMessages->setGeometry(x, y, w, h);
|
this->m_overlayMessages->setGeometry(x, y, w, h);
|
||||||
}
|
}
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#ifndef BLACKGUI_OVERLAYMESSAGES_FRAME_H
|
#ifndef BLACKGUI_OVERLAYMESSAGES_FRAME_H
|
||||||
#define BLACKGUI_OVERLAYMESSAGES_FRAME_H
|
#define BLACKGUI_OVERLAYMESSAGES_FRAME_H
|
||||||
|
|
||||||
|
#include "blackgui/blackguiexport.h"
|
||||||
#include "blackgui/overlaymessages.h"
|
#include "blackgui/overlaymessages.h"
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ namespace BlackGui
|
|||||||
/*!
|
/*!
|
||||||
* Display status messages (nested in another widget)
|
* Display status messages (nested in another widget)
|
||||||
*/
|
*/
|
||||||
class COverlayMessagesFrame : public QFrame
|
class BLACKGUI_EXPORT COverlayMessagesFrame : public QFrame
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@@ -37,11 +38,18 @@ namespace BlackGui
|
|||||||
//! Hide the inner frame
|
//! Hide the inner frame
|
||||||
void hideStatusMessagesFrame();
|
void hideStatusMessagesFrame();
|
||||||
|
|
||||||
//! Show multiple messages
|
public slots:
|
||||||
void showMessages(const BlackMisc::CStatusMessageList &messages);
|
//! \copydoc COverlayMessages::showMessages
|
||||||
|
void showMessages(const BlackMisc::CStatusMessageList &messages, int timeOutMs = -1);
|
||||||
|
|
||||||
//! Show single message
|
//! \copydoc COverlayMessages::showMessage
|
||||||
void showMessage(const BlackMisc::CStatusMessage &message);
|
void showMessage(const BlackMisc::CStatusMessage &message, int timeOutMs = -1);
|
||||||
|
|
||||||
|
//! \copydoc COverlayMessages::showTextMessage
|
||||||
|
void showTextMessage(const BlackMisc::Network::CTextMessage &textMessage, int timeOutMs = -1);
|
||||||
|
|
||||||
|
//! \copydoc COverlayMessages::showVariant
|
||||||
|
void showVariant(const BlackMisc::CVariant &variant, int timeOutMs = -1);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! \copydoc QFrame::paintEvent
|
//! \copydoc QFrame::paintEvent
|
||||||
@@ -50,7 +58,7 @@ namespace BlackGui
|
|||||||
//! \copydoc QFrame::keyPressEvent
|
//! \copydoc QFrame::keyPressEvent
|
||||||
virtual void keyPressEvent(QKeyEvent *event) override;
|
virtual void keyPressEvent(QKeyEvent *event) override;
|
||||||
|
|
||||||
COverlayMessages *m_statusMessages = nullptr; //!< embedded QFrame with Status messages
|
COverlayMessages *m_overlayMessages = nullptr; //!< embedded QFrame with Status messages
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//! Calculate inner frame size
|
//! Calculate inner frame size
|
||||||
@@ -59,7 +67,6 @@ namespace BlackGui
|
|||||||
//! Init the inner frame (if not yet initialized)
|
//! Init the inner frame (if not yet initialized)
|
||||||
void initInnerFrame();
|
void initInnerFrame();
|
||||||
};
|
};
|
||||||
|
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
#endif // guard
|
#endif // guard
|
||||||
|
|||||||
48
src/blackgui/statusmessageformsmall.cpp
Normal file
48
src/blackgui/statusmessageformsmall.cpp
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright (C) 2015
|
||||||
|
* swift project Community / Contributors
|
||||||
|
*
|
||||||
|
* This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level
|
||||||
|
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
||||||
|
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
||||||
|
* contained in the LICENSE file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "statusmessageformsmall.h"
|
||||||
|
#include "ui_statusmessageformsmall.h"
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
using namespace BlackMisc;
|
||||||
|
|
||||||
|
namespace BlackGui
|
||||||
|
{
|
||||||
|
CStatusMessageFormSmall::CStatusMessageFormSmall(QWidget *parent) :
|
||||||
|
QFrame(parent),
|
||||||
|
ui(new Ui::CStatusMessageFormSmall)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
CStatusMessageFormSmall::~CStatusMessageFormSmall()
|
||||||
|
{ }
|
||||||
|
|
||||||
|
void CStatusMessageFormSmall::setVariant(const CVariant &messageVariant)
|
||||||
|
{
|
||||||
|
if (!this->isVisible()) { return; }
|
||||||
|
this->setValue(messageVariant.value<CStatusMessage>());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStatusMessageFormSmall::setValue(const CStatusMessage &message)
|
||||||
|
{
|
||||||
|
ui->te_Message->setPlainText(message.getMessage());
|
||||||
|
ui->lbl_SeverityIcon->setPixmap(message.toPixmap());
|
||||||
|
ui->le_Categories->setText(message.getCategories().toQString(true));
|
||||||
|
ui->le_Severity->setText(message.getSeverityAsString());
|
||||||
|
ui->le_Timestamp->setText(message.getFormattedUtcTimestampYmdhms());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStatusMessageFormSmall::toggleVisibility()
|
||||||
|
{
|
||||||
|
this->setVisible(!isVisible());
|
||||||
|
}
|
||||||
|
|
||||||
|
} // ns
|
||||||
52
src/blackgui/statusmessageformsmall.h
Normal file
52
src/blackgui/statusmessageformsmall.h
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright (C) 2015
|
||||||
|
* swift project Community / Contributors
|
||||||
|
*
|
||||||
|
* This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level
|
||||||
|
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
||||||
|
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
||||||
|
* contained in the LICENSE file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//! \file
|
||||||
|
|
||||||
|
#ifndef BLACKGUI_STATUSMESSAGEFORMSMALL_H
|
||||||
|
#define BLACKGUI_STATUSMESSAGEFORMSMALL_H
|
||||||
|
|
||||||
|
#include "blackgui/blackguiexport.h"
|
||||||
|
#include "blackmisc/statusmessage.h"
|
||||||
|
#include <QFrame>
|
||||||
|
|
||||||
|
namespace Ui { class CStatusMessageFormSmall; }
|
||||||
|
|
||||||
|
namespace BlackGui
|
||||||
|
{
|
||||||
|
/*!
|
||||||
|
* Display details about a single status message
|
||||||
|
*/
|
||||||
|
class BLACKGUI_EXPORT CStatusMessageFormSmall : public QFrame
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
//! Constructor
|
||||||
|
explicit CStatusMessageFormSmall(QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
//! Destructor
|
||||||
|
~CStatusMessageFormSmall();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
//! Set message
|
||||||
|
void setVariant(const BlackMisc::CVariant &messageVariant);
|
||||||
|
|
||||||
|
//! Set message
|
||||||
|
void setValue(const BlackMisc::CStatusMessage &message);
|
||||||
|
|
||||||
|
//! Toggle visibility
|
||||||
|
void toggleVisibility();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QScopedPointer<Ui::CStatusMessageFormSmall> ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // ns
|
||||||
|
#endif // guard
|
||||||
115
src/blackgui/statusmessageformsmall.ui
Normal file
115
src/blackgui/statusmessageformsmall.ui
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CStatusMessageFormSmall</class>
|
||||||
|
<widget class="QFrame" name="CStatusMessageFormSmall">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>266</width>
|
||||||
|
<height>274</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Frame</string>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="spacing">
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lbl_Severity">
|
||||||
|
<property name="text">
|
||||||
|
<string>Severity:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_Severity">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>200</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0" colspan="3">
|
||||||
|
<widget class="QPlainTextEdit" name="te_Message">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_Categories">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QLineEdit" name="le_Timestamp">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>200</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="lbl_SeverityIcon">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap resource="../blackmisc/blackmisc.qrc">:/diagona/icons/diagona/icons/question.png</pixmap>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="lbl_Timestamp">
|
||||||
|
<property name="text">
|
||||||
|
<string>Timestamp:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="lbl_Categories">
|
||||||
|
<property name="text">
|
||||||
|
<string>Categories:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources>
|
||||||
|
<include location="../blackmisc/blackmisc.qrc"/>
|
||||||
|
</resources>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
@@ -48,7 +48,6 @@ SwiftGuiStd::SwiftGuiStd(BlackGui::CEnableForFramelessWindow::WindowMode windowM
|
|||||||
// GUI
|
// GUI
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->setDynamicProperties(windowMode == CEnableForFramelessWindow::WindowFrameless);
|
this->setDynamicProperties(windowMode == CEnableForFramelessWindow::WindowFrameless);
|
||||||
this->m_compInfoWindow = new CInfoWindowComponent(this); // setupUi has to be first!
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SwiftGuiStd::~SwiftGuiStd()
|
SwiftGuiStd::~SwiftGuiStd()
|
||||||
@@ -97,13 +96,6 @@ void SwiftGuiStd::performGracefulShutdown()
|
|||||||
this->ui->comp_MainInfoArea->dockAllWidgets();
|
this->ui->comp_MainInfoArea->dockAllWidgets();
|
||||||
this->ui->comp_InvisibleInfoArea->dockAllWidgets();
|
this->ui->comp_InvisibleInfoArea->dockAllWidgets();
|
||||||
|
|
||||||
// close info window
|
|
||||||
if (this->m_compInfoWindow)
|
|
||||||
{
|
|
||||||
this->m_compInfoWindow->close();
|
|
||||||
this->m_compInfoWindow = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
// allow some other parts to react
|
// allow some other parts to react
|
||||||
QApplication::processEvents(QEventLoop::AllEvents, 100);
|
QApplication::processEvents(QEventLoop::AllEvents, 100);
|
||||||
|
|
||||||
@@ -256,7 +248,7 @@ void SwiftGuiStd::ps_displayStatusMessageInGui(const CStatusMessage &statusMessa
|
|||||||
// display overlay for errors, but not for validation
|
// display overlay for errors, but not for validation
|
||||||
if (statusMessage.getSeverity() == CStatusMessage::SeverityError && ! statusMessage.getCategories().contains(CLogCategory::validation()))
|
if (statusMessage.getSeverity() == CStatusMessage::SeverityError && ! statusMessage.getCategories().contains(CLogCategory::validation()))
|
||||||
{
|
{
|
||||||
this->m_compInfoWindow->displayStatusMessage(statusMessage);
|
this->ui->fr_CentralFrameInside->showMessage(statusMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
#include "blackcore/actionbind.h"
|
#include "blackcore/actionbind.h"
|
||||||
#include "blackcore/data/globalsetup.h"
|
#include "blackcore/data/globalsetup.h"
|
||||||
#include "blackgui/components/enableforruntime.h"
|
#include "blackgui/components/enableforruntime.h"
|
||||||
#include "blackgui/components/infowindowcomponent.h"
|
|
||||||
#include "blackgui/components/maininfoareacomponent.h"
|
#include "blackgui/components/maininfoareacomponent.h"
|
||||||
#include "blackgui/transpondermodeselector.h"
|
#include "blackgui/transpondermodeselector.h"
|
||||||
#include "blackgui/models/atcstationlistmodel.h"
|
#include "blackgui/models/atcstationlistmodel.h"
|
||||||
@@ -30,6 +29,7 @@
|
|||||||
#include "blackgui/models/statusmessagelistmodel.h"
|
#include "blackgui/models/statusmessagelistmodel.h"
|
||||||
#include "blackgui/enableforframelesswindow.h"
|
#include "blackgui/enableforframelesswindow.h"
|
||||||
#include "blackgui/managedstatusbar.h"
|
#include "blackgui/managedstatusbar.h"
|
||||||
|
#include "blackgui/overlaymessagesframe.h"
|
||||||
#include "blackmisc/network/textmessage.h"
|
#include "blackmisc/network/textmessage.h"
|
||||||
#include "blackmisc/loghandler.h"
|
#include "blackmisc/loghandler.h"
|
||||||
#include "blackmisc/identifiable.h"
|
#include "blackmisc/identifiable.h"
|
||||||
@@ -111,7 +111,6 @@ protected:
|
|||||||
private:
|
private:
|
||||||
QScopedPointer<Ui::SwiftGuiStd> ui;
|
QScopedPointer<Ui::SwiftGuiStd> ui;
|
||||||
bool m_init = false;
|
bool m_init = false;
|
||||||
BlackGui::Components::CInfoWindowComponent *m_compInfoWindow = nullptr; //!< the info window (popup
|
|
||||||
BlackGui::CManagedStatusBar m_statusBar;
|
BlackGui::CManagedStatusBar m_statusBar;
|
||||||
BlackMisc::CLogSubscriber m_logSubscriber { this, &SwiftGuiStd::ps_displayStatusMessageInGui };
|
BlackMisc::CLogSubscriber m_logSubscriber { this, &SwiftGuiStd::ps_displayStatusMessageInGui };
|
||||||
BlackCore::CData<BlackCore::Data::GlobalSetup> m_setup {this}; //!< setup cache
|
BlackCore::CData<BlackCore::Data::GlobalSetup> m_setup {this}; //!< setup cache
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QFrame" name="fr_CentralFrameInside">
|
<widget class="BlackGui::COverlayMessagesFrame" name="fr_CentralFrameInside">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
@@ -573,6 +573,12 @@
|
|||||||
<header>blackgui/components/invisibleinfoareacomponent.h</header>
|
<header>blackgui/components/invisibleinfoareacomponent.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>BlackGui::COverlayMessagesFrame</class>
|
||||||
|
<extends>QFrame</extends>
|
||||||
|
<header>blackgui/overlaymessagesframe.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ void SwiftGuiStd::initGuiSignals()
|
|||||||
connect(this->ui->menu_InternalsDisplayCachedFiles, &QAction::triggered, this, &SwiftGuiStd::ps_onMenuClicked);
|
connect(this->ui->menu_InternalsDisplayCachedFiles, &QAction::triggered, this, &SwiftGuiStd::ps_onMenuClicked);
|
||||||
|
|
||||||
// command line / text messages
|
// command line / text messages
|
||||||
connect(this->ui->comp_MainInfoArea->getTextMessageComponent(), &CTextMessageComponent::displayInInfoWindow, this->m_compInfoWindow, &CInfoWindowComponent::display);
|
connect(this->ui->comp_MainInfoArea->getTextMessageComponent(), &CTextMessageComponent::displayInInfoWindow, this->ui->fr_CentralFrameInside, &COverlayMessagesFrame::showVariant);
|
||||||
|
|
||||||
// settings (GUI component), styles
|
// settings (GUI component), styles
|
||||||
connect(this->ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedWindowsOpacity, this, &SwiftGuiStd::ps_onChangedWindowOpacity);
|
connect(this->ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedWindowsOpacity, this, &SwiftGuiStd::ps_onChangedWindowOpacity);
|
||||||
|
|||||||
Reference in New Issue
Block a user