mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-21 04:45:31 +08:00
refs #488, allow to select items in views and clear the console
This commit is contained in:
committed by
Mathew Sutcliffe
parent
54ed4140d3
commit
1b75f068be
@@ -19,28 +19,52 @@ namespace BlackGui
|
||||
{
|
||||
namespace Components
|
||||
{
|
||||
CConsoleTextEdit::CConsoleTextEdit(QWidget *parent) : QPlainTextEdit(parent)
|
||||
{
|
||||
bool c = connect(this, &CConsoleTextEdit::customContextMenuRequested, this, &CConsoleTextEdit::ps_customMenuRequested);
|
||||
Q_ASSERT_X(c, Q_FUNC_INFO, "Custom menu");
|
||||
Q_UNUSED(c);
|
||||
this->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
}
|
||||
|
||||
void CConsoleTextEdit::ps_customMenuRequested(const QPoint &pos)
|
||||
{
|
||||
QMenu *menu = QPlainTextEdit::createStandardContextMenu();
|
||||
menu->addAction(CIcons::delete16(), "Clear console", this, SLOT(clear()));
|
||||
menu->exec(this->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
CLogComponent::CLogComponent(QWidget *parent) :
|
||||
QFrame(parent), ui(new Ui::CLogComponent)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->ui->tvp_StatusMessages->setAutoResizeFrequency(3);
|
||||
connect(this->ui->tvp_StatusMessages, &CStatusMessageView::messageSelected,
|
||||
this->ui->form_StatusMessage, &CStatusMessageForm::setValue);
|
||||
connect(this->ui->tvp_StatusMessages, &CStatusMessageView::objectSelected, this->ui->form_StatusMessage, &CStatusMessageForm::setVariant);
|
||||
this->ui->tvp_StatusMessages->setCustomMenu(new CLogMenu(this));
|
||||
}
|
||||
|
||||
CLogComponent::~CLogComponent()
|
||||
{ }
|
||||
|
||||
void CLogComponent::displayLog()
|
||||
{
|
||||
this->ui->tw_StatusPage->setCurrentIndex(0);
|
||||
}
|
||||
|
||||
void CLogComponent::displayConsole()
|
||||
{
|
||||
this->ui->tw_StatusPage->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
void CLogComponent::appendStatusMessageToConsole(const CStatusMessage &statusMessage)
|
||||
{
|
||||
if (statusMessage.isEmpty()) return;
|
||||
this->ui->te_StatusPageConsole->appendHtml(statusMessage.toHtml());
|
||||
this->ui->tep_StatusPageConsole->appendHtml(statusMessage.toHtml());
|
||||
}
|
||||
|
||||
void CLogComponent::appendPlainTextToConsole(const QString &text)
|
||||
{
|
||||
this->ui->te_StatusPageConsole->appendPlainText(text);
|
||||
this->ui->tep_StatusPageConsole->appendPlainText(text);
|
||||
}
|
||||
|
||||
void CLogComponent::appendStatusMessageToList(const CStatusMessage &statusMessage)
|
||||
@@ -55,7 +79,7 @@ namespace BlackGui
|
||||
Q_ASSERT_X(logComp, Q_FUNC_INFO, "Missing parent");
|
||||
|
||||
bool v = logComp->ui->form_StatusMessage->isVisible();
|
||||
QString formString(v ? "Hide details" : "Show details");
|
||||
QString formString(v ? "Hide log details" : "Show log details");
|
||||
QAction *a = menu.addAction(BlackMisc::CIcons::databaseTable16(), formString, logComp->ui->form_StatusMessage, SLOT(toggleVisibility()));
|
||||
a->setCheckable(true);
|
||||
a->setChecked(v);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "enableforruntime.h"
|
||||
#include "blackmisc/statusmessagelist.h"
|
||||
#include "blackgui/menudelegate.h"
|
||||
#include <QPlainTextEdit>
|
||||
#include <QFrame>
|
||||
#include <QScopedPointer>
|
||||
|
||||
@@ -25,6 +26,20 @@ namespace BlackGui
|
||||
{
|
||||
namespace Components
|
||||
{
|
||||
//! Text edit for our log component
|
||||
class BLACKGUI_EXPORT CConsoleTextEdit : public QPlainTextEdit
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
//! Constructor
|
||||
CConsoleTextEdit(QWidget *parent = nullptr);
|
||||
|
||||
protected slots:
|
||||
//! Custom menu
|
||||
void ps_customMenuRequested(const QPoint &pos);
|
||||
};
|
||||
|
||||
//! GUI displaying log and status messages
|
||||
class BLACKGUI_EXPORT CLogComponent :
|
||||
public QFrame,
|
||||
@@ -39,6 +54,12 @@ namespace BlackGui
|
||||
//! Destructor
|
||||
~CLogComponent();
|
||||
|
||||
//! Display log
|
||||
void displayLog();
|
||||
|
||||
//! Display console
|
||||
void displayConsole();
|
||||
|
||||
public slots:
|
||||
//! Append status message to console
|
||||
void appendStatusMessageToConsole(const BlackMisc::CStatusMessage &statusMessage);
|
||||
@@ -62,7 +83,6 @@ namespace BlackGui
|
||||
//! \copydoc IMenuDelegate::customMenu
|
||||
virtual void customMenu(QMenu &menu) const override;
|
||||
};
|
||||
|
||||
};
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="te_StatusPageConsole">
|
||||
<widget class="BlackGui::Components::CConsoleTextEdit" name="tep_StatusPageConsole">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
@@ -147,6 +147,9 @@
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="documentTitle">
|
||||
<string>Console output</string>
|
||||
</property>
|
||||
<property name="lineWrapMode">
|
||||
<enum>QPlainTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
@@ -173,6 +176,11 @@
|
||||
<header>blackgui/statusmessageform.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>BlackGui::Components::CConsoleTextEdit</class>
|
||||
<extends>QPlainTextEdit</extends>
|
||||
<header>blackgui/components/logcomponent.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
Reference in New Issue
Block a user