mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 12:35:43 +08:00
refs #506, using filters in view/logcomponet
This commit is contained in:
committed by
Mathew Sutcliffe
parent
67216876f1
commit
63dab2dd28
@@ -12,6 +12,7 @@
|
|||||||
#include "blackgui/menus/menuaction.h"
|
#include "blackgui/menus/menuaction.h"
|
||||||
#include "blackgui/views/statusmessageview.h"
|
#include "blackgui/views/statusmessageview.h"
|
||||||
#include "blackgui/views/viewbase.h"
|
#include "blackgui/views/viewbase.h"
|
||||||
|
#include "blackgui/guiutility.h"
|
||||||
#include "blackmisc/icons.h"
|
#include "blackmisc/icons.h"
|
||||||
#include "ui_logcomponent.h"
|
#include "ui_logcomponent.h"
|
||||||
|
|
||||||
@@ -49,8 +50,10 @@ namespace BlackGui
|
|||||||
QFrame(parent), ui(new Ui::CLogComponent)
|
QFrame(parent), ui(new Ui::CLogComponent)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->tvp_StatusMessages->setAutoResizeFrequency(3);
|
|
||||||
connect(ui->tvp_StatusMessages, &CStatusMessageView::objectSelected, ui->form_StatusMessage, &CStatusMessageForm::setVariant);
|
connect(ui->tvp_StatusMessages, &CStatusMessageView::objectSelected, ui->form_StatusMessage, &CStatusMessageForm::setVariant);
|
||||||
|
connect(ui->tvp_StatusMessages, &CStatusMessageView::modelDataChangedDigest, this, &CLogComponent::onStatusMessageDataChanged);
|
||||||
|
ui->tvp_StatusMessages->setAutoResizeFrequency(3);
|
||||||
|
ui->tvp_StatusMessages->addFilterDialog();
|
||||||
ui->tvp_StatusMessages->setCustomMenu(new CLogMenu(this));
|
ui->tvp_StatusMessages->setCustomMenu(new CLogMenu(this));
|
||||||
ui->tvp_StatusMessages->menuAddItems(CStatusMessageView::MenuSave);
|
ui->tvp_StatusMessages->menuAddItems(CStatusMessageView::MenuSave);
|
||||||
}
|
}
|
||||||
@@ -105,6 +108,17 @@ namespace BlackGui
|
|||||||
ui->tvp_StatusMessages->insert(statusMessages);
|
ui->tvp_StatusMessages->insert(statusMessages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CLogComponent::onStatusMessageDataChanged(int count, bool withFilter)
|
||||||
|
{
|
||||||
|
Q_UNUSED(count);
|
||||||
|
Q_UNUSED(withFilter);
|
||||||
|
const int i = ui->tw_StatusPage->indexOf(ui->pg_LogPage);
|
||||||
|
QString o = ui->tw_StatusPage->tabText(i);
|
||||||
|
const QString f = ui->tvp_StatusMessages->hasFilter() ? "F" : "";
|
||||||
|
o = CGuiUtility::replaceTabCountValue(o, ui->tvp_StatusMessages->rowCount()) + f;
|
||||||
|
ui->tw_StatusPage->setTabText(i, o);
|
||||||
|
}
|
||||||
|
|
||||||
void CLogComponent::CLogMenu::customMenu(CMenuActions &menuActions)
|
void CLogComponent::CLogMenu::customMenu(CMenuActions &menuActions)
|
||||||
{
|
{
|
||||||
CLogComponent *logComp = qobject_cast<CLogComponent *>(this->parent());
|
CLogComponent *logComp = qobject_cast<CLogComponent *>(this->parent());
|
||||||
|
|||||||
@@ -28,11 +28,9 @@ class QPoint;
|
|||||||
class QWidget;
|
class QWidget;
|
||||||
|
|
||||||
namespace Ui { class CLogComponent; }
|
namespace Ui { class CLogComponent; }
|
||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
namespace Menus { class CMenuActions; }
|
namespace Menus { class CMenuActions; }
|
||||||
|
|
||||||
namespace Components
|
namespace Components
|
||||||
{
|
{
|
||||||
//! Text edit for our log component
|
//! Text edit for our log component
|
||||||
@@ -60,7 +58,7 @@ namespace BlackGui
|
|||||||
explicit CLogComponent(QWidget *parent = nullptr);
|
explicit CLogComponent(QWidget *parent = nullptr);
|
||||||
|
|
||||||
//! Destructor
|
//! Destructor
|
||||||
~CLogComponent();
|
virtual ~CLogComponent();
|
||||||
|
|
||||||
//! Display log
|
//! Display log
|
||||||
void displayLog(bool attention = false);
|
void displayLog(bool attention = false);
|
||||||
@@ -94,6 +92,9 @@ namespace BlackGui
|
|||||||
private:
|
private:
|
||||||
QScopedPointer<Ui::CLogComponent> ui;
|
QScopedPointer<Ui::CLogComponent> ui;
|
||||||
|
|
||||||
|
//! Status messages changed
|
||||||
|
void onStatusMessageDataChanged(int count, bool withFilter);
|
||||||
|
|
||||||
//! Custom menu for the log component
|
//! Custom menu for the log component
|
||||||
class CLogMenu : public BlackGui::Menus::IMenuDelegate
|
class CLogMenu : public BlackGui::Menus::IMenuDelegate
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,11 +9,12 @@
|
|||||||
|
|
||||||
#include "blackgui/models/statusmessagelistmodel.h"
|
#include "blackgui/models/statusmessagelistmodel.h"
|
||||||
#include "blackgui/views/statusmessageview.h"
|
#include "blackgui/views/statusmessageview.h"
|
||||||
|
#include "blackgui/filters/statusmessagefilterdialog.h"
|
||||||
#include <QFlags>
|
#include <QFlags>
|
||||||
|
|
||||||
using namespace BlackMisc;
|
using namespace BlackMisc;
|
||||||
using namespace BlackGui::Models;
|
using namespace BlackGui::Models;
|
||||||
|
using namespace BlackGui::Filters;
|
||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
@@ -32,5 +33,14 @@ namespace BlackGui
|
|||||||
this->derivedModel()->setMode(mode);
|
this->derivedModel()->setMode(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CStatusMessageView::addFilterDialog()
|
||||||
|
{
|
||||||
|
this->setFilterDialog(new CStatusMessageFilterDialog(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
CStatusMessageFilterDialog *CStatusMessageView::getFilterDialog() const
|
||||||
|
{
|
||||||
|
return qobject_cast<CStatusMessageFilterDialog *>(this->getFilterWidget());
|
||||||
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class QWidget;
|
|||||||
|
|
||||||
namespace BlackGui
|
namespace BlackGui
|
||||||
{
|
{
|
||||||
|
namespace Filters { class CStatusMessageFilterDialog; }
|
||||||
namespace Views
|
namespace Views
|
||||||
{
|
{
|
||||||
//! Status message view
|
//! Status message view
|
||||||
@@ -38,6 +39,12 @@ namespace BlackGui
|
|||||||
|
|
||||||
//! Set mode
|
//! Set mode
|
||||||
void setMode(BlackGui::Models::CStatusMessageListModel::Mode mode);
|
void setMode(BlackGui::Models::CStatusMessageListModel::Mode mode);
|
||||||
|
|
||||||
|
//! Add my own filter dialog
|
||||||
|
void addFilterDialog();
|
||||||
|
|
||||||
|
//! Filter dialog if any
|
||||||
|
BlackGui::Filters::CStatusMessageFilterDialog *getFilterDialog() const;
|
||||||
};
|
};
|
||||||
} // ns
|
} // ns
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
Reference in New Issue
Block a user