swift
datamaininfoareacomponent.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <QIcon>
7 
8 #include "ui_datamaininfoareacomponent.h"
9 
16 #include "misc/icons.h"
17 #include "misc/verify.h"
18 
19 using namespace swift::misc;
20 using namespace swift::gui;
21 using namespace swift::gui::components;
22 
23 namespace swift::gui::components
24 {
25  CDataMainInfoAreaComponent::CDataMainInfoAreaComponent(QWidget *parent)
26  : CInfoArea(parent), ui(new Ui::CDataMainInfoAreaComponent)
27  {
28  ui->setupUi(this);
29  this->initInfoArea(); // init base class
30  this->setWindowIcon(CIcons::swiftDatabase24());
31 
32  connect(ui->comp_Mapping, &CDbMappingComponent::filterByLivery, ui->comp_DataInfoArea->getLiveryComponent(),
34  connect(ui->comp_Mapping, &CDbMappingComponent::filterByAircraftIcao,
35  ui->comp_DataInfoArea->getAircraftComponent(), &CDbAircraftIcaoComponent::filter);
36  connect(ui->comp_Mapping, &CDbMappingComponent::requestUpdatedData, ui->comp_DataInfoArea,
38 
39  connect(ui->comp_DataInfoArea->getModelComponent(), &CDbModelComponent::requestStash, ui->comp_Mapping,
42 
43  ui->comp_Log->showFilterBar();
44  }
45 
47 
49 
51 
53  {
54  return ui->comp_DataInfoArea;
55  }
56 
58 
60  {
61  this->selectArea(InfoAreaLog);
62  SWIFT_VERIFY_X(this->getLogComponent(), Q_FUNC_INFO, "No log component");
63  if (!this->getLogComponent()) { return; }
64  this->getLogComponent()->displayLog();
65  }
66 
67  void CDataMainInfoAreaComponent::selectLog() { this->selectArea(InfoAreaLog); }
68 
70  {
71  const InfoArea area = static_cast<InfoArea>(areaIndex);
72  switch (area)
73  {
74  case InfoAreaData:
75  case InfoAreaMapping:
76  case InfoAreaSettings:
77  case InfoAreaLog:
78  default: return QSize(800, 600);
79  }
80  }
81 
82  const QPixmap &CDataMainInfoAreaComponent::indexToPixmap(int areaIndex) const
83  {
84  const InfoArea area = static_cast<InfoArea>(areaIndex);
85  switch (area)
86  {
87  case InfoAreaData: return CIcons::appDatabase16();
88  case InfoAreaMapping: return CIcons::appMappings16();
89  case InfoAreaSettings: return CIcons::appSettings16();
90  case InfoAreaLog: return CIcons::appLog16();
91  default: return CIcons::empty();
92  }
93  }
94 } // namespace swift::gui::components
Info area, hosting dockable widgets.
Definition: infoarea.h:41
void selectArea(int areaIndex)
Select area.
Definition: infoarea.cpp:396
void initInfoArea()
Init area after(!) GUI is initialized.
Definition: infoarea.cpp:47
Info area containing the DB data (models, liveries ...)
void requestUpdatedData(swift::misc::network::CEntityFlags::Entity entity)
Load new data (based on timestamp, incremental)
virtual const QPixmap & indexToPixmap(int areaIndex) const
Info area (index) to icon.
CDataInfoAreaComponent * getDataInfoAreaComponent() const
Info area component.
virtual QSize getPreferredSizeWhenFloating(int areaIndex) const
Preferred size when floating (size hint)
swift::gui::components::CDataSettingsComponent * getDataSettingsComponent() const
Settings component.
CDbMappingComponent * getMappingComponent() const
Mapping component.
void filter(const swift::misc::aviation::CAircraftIcaoCode &icao)
Filter by ICAO as default.
void filter(const swift::misc::aviation::CLivery &livery)
Filter by livery.
swift::misc::CStatusMessageList stashModels(const swift::misc::simulation::CAircraftModelList &models)
Stash given models (includes validation and consolidation with DB data)
void requestUpdatedData(swift::misc::network::CEntityFlags::Entity entities)
Request latest (incremental) data from backend.
void filterByAircraftIcao(const swift::misc::aviation::CAircraftIcaoCode &icao)
Request to filter by aircraft ICAO.
void filterByLivery(const swift::misc::aviation::CLivery &livery)
Request to filter by livery.
void requestStash(const swift::misc::simulation::CAircraftModelList &models)
Request to stash the selected models.
GUI displaying log and status messages.
Definition: logcomponent.h:45
void displayLog(bool attention=false)
Display log.
void requestAttention()
Make me visible.
High level reusable GUI components.
Definition: aboutdialog.cpp:13
GUI related classes.
Free functions in swift::misc.
#define SWIFT_VERIFY_X(COND, WHERE, WHAT)
A weaker kind of assert.
Definition: verify.h:26