refs #322, included context menu and methods for injecting test data (ATC stations) in GUI

This commit is contained in:
Klaus Basan
2014-09-04 01:31:28 +02:00
parent 87e87013f9
commit e4545f23d2
14 changed files with 124 additions and 5 deletions

View File

@@ -8,6 +8,7 @@
*/
#include "atcstationview.h"
#include "blackmisc/testing.h"
#include <QHeaderView>
using namespace BlackMisc;
@@ -48,5 +49,15 @@ namespace BlackGui
this->resizeColumnsToContents();
this->resizeRowsToContents();
}
void CAtcStationView::customMenu(QMenu &menu) const
{
if (BlackMisc::CProject::isDebugBuild())
{
menu.addAction("Test: 1k ATC online stations", this, SLOT(ps_testRequest1kAtcOnlineDummies()));
menu.addAction("Test: 3k ATC online stations", this, SLOT(ps_testRequest3kAtcOnlineDummies()));
}
CViewBase::customMenu(menu);
}
}
}

View File

@@ -14,6 +14,7 @@
#include "viewbase.h"
#include "../models/atcstationlistmodel.h"
#include "blackmisc/project.h"
namespace BlackGui
{
@@ -22,6 +23,7 @@ namespace BlackGui
//! ATC stations view
class CAtcStationView : public CViewBase<Models::CAtcStationListModel>
{
Q_OBJECT
public:
@@ -31,10 +33,21 @@ namespace BlackGui
//! Set station mode
void setStationMode(Models::CAtcStationListModel::AtcStationMode stationMode);
signals:
//! Request some dummy ATC stations
void testRequestDummyAtcOnlineStations(int number);
public slots:
//! \copydoc CAtcStationListModel::changedAtcStationConnectionStatus
void changedAtcStationConnectionStatus(const BlackMisc::Aviation::CAtcStation &station, bool added);
protected:
//! \copydoc CViewBase::customMenu
virtual void customMenu(QMenu &menu) const override;
private slots:
void ps_testRequest1kAtcOnlineDummies() { emit this->testRequestDummyAtcOnlineStations(1000); }
void ps_testRequest3kAtcOnlineDummies() { emit this->testRequestDummyAtcOnlineStations(3000); }
};
}
}

View File

@@ -13,6 +13,8 @@
//! \file
#include <QTableView>
#include <QMenu>
#include <QPoint>
namespace BlackGui
{
@@ -101,6 +103,8 @@ namespace BlackGui
{
this->setSortingEnabled(true);
if (model) { this->setModel(this->m_model); }
this->setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, &QWidget::customContextMenuRequested, this, &CViewBase::ps_customMenuRequested);
}
//! Destructor
@@ -134,8 +138,24 @@ namespace BlackGui
this->horizontalHeader()->setStretchLastSection(true);
}
ModelClass *m_model = nullptr; //!< corresponding model
//! Method creating the menu
//! \remarks override this method to contribute to the menu
virtual void customMenu(QMenu &menu) const
{
Q_UNUSED(menu);
}
private slots:
//! Custom menu was requested
void ps_customMenuRequested(QPoint pos)
{
QMenu menu;
this->customMenu(menu);
if (menu.isEmpty()) { return; }
QPoint globalPos = this->mapToGlobal(pos);
menu.exec(globalPos);
}
};
}
}