mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-28 11:45:40 +08:00
refs #883, Kill button for overlay error messages
Example: swift pilot client started for core, but core not running. There is no way to stop the application as there are permanent errors.
This commit is contained in:
committed by
Mathew Sutcliffe
parent
83dbd3fcb6
commit
368b955c66
@@ -54,6 +54,7 @@ namespace BlackGui
|
|||||||
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &COverlayMessages::ps_onStyleSheetsChanged);
|
connect(sGui, &CGuiApplication::styleSheetsChanged, this, &COverlayMessages::ps_onStyleSheetsChanged);
|
||||||
connect(ui->pb_Ok, &QPushButton::clicked, this, &COverlayMessages::ps_okClicked);
|
connect(ui->pb_Ok, &QPushButton::clicked, this, &COverlayMessages::ps_okClicked);
|
||||||
connect(ui->pb_Cancel, &QPushButton::clicked, this, &COverlayMessages::ps_cancelClicked);
|
connect(ui->pb_Cancel, &QPushButton::clicked, this, &COverlayMessages::ps_cancelClicked);
|
||||||
|
connect(ui->pb_Kill, &QPushButton::clicked, this, &COverlayMessages::ps_killClicked);
|
||||||
|
|
||||||
ui->tvp_StatusMessages->setResizeMode(CStatusMessageView::ResizingAuto);
|
ui->tvp_StatusMessages->setResizeMode(CStatusMessageView::ResizingAuto);
|
||||||
ui->fr_Confirmation->setVisible(false);
|
ui->fr_Confirmation->setVisible(false);
|
||||||
@@ -73,9 +74,9 @@ namespace BlackGui
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->resize(w, h);
|
this->resize(w, h);
|
||||||
this->setAutoFillBackground(true);
|
this->setAutoFillBackground(true);
|
||||||
|
this->m_autoCloseTimer.setObjectName(objectName() + ":autoCloseTimer");
|
||||||
ui->tvp_StatusMessages->setMode(CStatusMessageListModel::Simplified);
|
ui->tvp_StatusMessages->setMode(CStatusMessageListModel::Simplified);
|
||||||
connect(ui->tb_Close, &QToolButton::released, this, &COverlayMessages::close);
|
connect(ui->tb_Close, &QToolButton::released, this, &COverlayMessages::close);
|
||||||
this->m_autoCloseTimer.setObjectName(objectName() + ":autoCloseTimer");
|
|
||||||
connect(&m_autoCloseTimer, &QTimer::timeout, this, &COverlayMessages::close);
|
connect(&m_autoCloseTimer, &QTimer::timeout, this, &COverlayMessages::close);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,11 +113,31 @@ namespace BlackGui
|
|||||||
this->close();
|
this->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void COverlayMessages::ps_killClicked()
|
||||||
|
{
|
||||||
|
QMessageBox msgBox;
|
||||||
|
msgBox.setText("Shutdown the application.");
|
||||||
|
msgBox.setInformativeText("Do you want to terminate " + sGui->getApplicationNameAndVersion() + "?");
|
||||||
|
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
|
||||||
|
msgBox.setDefaultButton(QMessageBox::Save);
|
||||||
|
if (QMessageBox::Ok == msgBox.exec())
|
||||||
|
{
|
||||||
|
sGui->gracefulShutdown();
|
||||||
|
sGui->exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool COverlayMessages::useSmall() const
|
bool COverlayMessages::useSmall() const
|
||||||
{
|
{
|
||||||
return (this->width() < 400);
|
return (this->width() < 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void COverlayMessages::showKill(bool show)
|
||||||
|
{
|
||||||
|
ui->pb_Kill->setVisible(show);
|
||||||
|
ui->pb_Kill->setEnabled(show);
|
||||||
|
}
|
||||||
|
|
||||||
bool COverlayMessages::displayTextMessage(const CTextMessage &textMessage) const
|
bool COverlayMessages::displayTextMessage(const CTextMessage &textMessage) const
|
||||||
{
|
{
|
||||||
const CTextMessageSettings s = this->m_messageSettings.getThreadLocal();
|
const CTextMessageSettings s = this->m_messageSettings.getThreadLocal();
|
||||||
@@ -142,8 +163,9 @@ namespace BlackGui
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->setModeToMessages();
|
|
||||||
ui->tvp_StatusMessages->updateContainer(messages);
|
ui->tvp_StatusMessages->updateContainer(messages);
|
||||||
|
this->showKill(false);
|
||||||
|
this->setModeToMessages(messages.hasErrorMessages());
|
||||||
this->display(timeOutMs);
|
this->display(timeOutMs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,12 +184,12 @@ namespace BlackGui
|
|||||||
|
|
||||||
if (this->useSmall())
|
if (this->useSmall())
|
||||||
{
|
{
|
||||||
this->setModeToMessageSmall();
|
this->setModeToMessageSmall(message.isFailure());
|
||||||
ui->form_StatusMessageSmall->setValue(message);
|
ui->form_StatusMessageSmall->setValue(message);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->setModeToMessage();
|
this->setModeToMessage(message.isFailure());
|
||||||
ui->form_StatusMessage->setValue(message);
|
ui->form_StatusMessage->setValue(message);
|
||||||
}
|
}
|
||||||
this->display(timeOutMs);
|
this->display(timeOutMs);
|
||||||
@@ -266,21 +288,24 @@ namespace BlackGui
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverlayMessages::setModeToMessages()
|
void COverlayMessages::setModeToMessages(bool withKillButton)
|
||||||
{
|
{
|
||||||
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_StatusMessages);
|
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_StatusMessages);
|
||||||
|
this->showKill(withKillButton);
|
||||||
this->setHeader("Messages");
|
this->setHeader("Messages");
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverlayMessages::setModeToMessage()
|
void COverlayMessages::setModeToMessage(bool withKillButton)
|
||||||
{
|
{
|
||||||
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_StatusMessage);
|
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_StatusMessage);
|
||||||
|
this->showKill(withKillButton);
|
||||||
this->setHeader("Message");
|
this->setHeader("Message");
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverlayMessages::setModeToMessageSmall()
|
void COverlayMessages::setModeToMessageSmall(bool withKillButton)
|
||||||
{
|
{
|
||||||
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_StatusMessageSmall);
|
ui->sw_StatusMessagesComponent->setCurrentWidget(ui->pg_StatusMessageSmall);
|
||||||
|
this->showKill(withKillButton);
|
||||||
this->setHeader("Message");
|
this->setHeader("Message");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,13 +54,13 @@ namespace BlackGui
|
|||||||
virtual ~COverlayMessages();
|
virtual ~COverlayMessages();
|
||||||
|
|
||||||
//! Messages mode
|
//! Messages mode
|
||||||
void setModeToMessages();
|
void setModeToMessages(bool withKillButton = false);
|
||||||
|
|
||||||
//! Single Message mode
|
//! Single Message mode
|
||||||
void setModeToMessage();
|
void setModeToMessage(bool withKillButton = false);
|
||||||
|
|
||||||
//! Single Message mode
|
//! Single Message mode
|
||||||
void setModeToMessageSmall();
|
void setModeToMessageSmall(bool withKillButton = false);
|
||||||
|
|
||||||
//! Single Text message mode
|
//! Single Text message mode
|
||||||
void setModeToTextMessage();
|
void setModeToTextMessage();
|
||||||
@@ -129,6 +129,9 @@ namespace BlackGui
|
|||||||
//! Cancel clicked (only when confirmation bar is active)
|
//! Cancel clicked (only when confirmation bar is active)
|
||||||
void ps_cancelClicked();
|
void ps_cancelClicked();
|
||||||
|
|
||||||
|
//! Kill clicked (only when errors)
|
||||||
|
void ps_killClicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QScopedPointer<Ui::COverlayMessages> ui;
|
QScopedPointer<Ui::COverlayMessages> ui;
|
||||||
BlackMisc::CSettingReadOnly<BlackGui::Settings::TextMessageSettings> m_messageSettings { this };
|
BlackMisc::CSettingReadOnly<BlackGui::Settings::TextMessageSettings> m_messageSettings { this };
|
||||||
@@ -148,6 +151,9 @@ namespace BlackGui
|
|||||||
//! Small
|
//! Small
|
||||||
bool useSmall() const;
|
bool useSmall() const;
|
||||||
|
|
||||||
|
//! Show kill button
|
||||||
|
void showKill(bool show);
|
||||||
|
|
||||||
//! Display this message (use settings to decide)
|
//! Display this message (use settings to decide)
|
||||||
bool displayTextMessage(const BlackMisc::Network::CTextMessage &textMessage) const;
|
bool displayTextMessage(const BlackMisc::Network::CTextMessage &textMessage) const;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="hl_Header">
|
<layout class="QHBoxLayout" name="hl_Header">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>0</number>
|
<number>10</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
@@ -97,6 +97,19 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pb_Kill">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>kill application</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Kill</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="tb_Close">
|
<widget class="QToolButton" name="tb_Close">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -114,7 +127,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="sw_StatusMessagesComponent">
|
<widget class="QStackedWidget" name="sw_StatusMessagesComponent">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>4</number>
|
<number>3</number>
|
||||||
</property>
|
</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">
|
||||||
|
|||||||
Reference in New Issue
Block a user