refs #452 the info area for the DB components

This commit is contained in:
Klaus Basan
2015-09-24 00:54:36 +02:00
committed by Mathew Sutcliffe
parent 008ea14812
commit 777e3701c6
3 changed files with 699 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
/* Copyright (C) 2015
* swift project Community / Contributors
*
* This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
#include "blackgui/components/logcomponent.h"
#include "blackgui/components/datainfoareacomponent.h"
#include "blackcore/webdataservices.h"
#include "ui_datainfoareacomponent.h"
#include "blackmisc/icons.h"
using namespace BlackMisc;
using namespace BlackGui;
using namespace BlackGui::Components;
namespace BlackGui
{
namespace Components
{
CDataInfoAreaComponent::CDataInfoAreaComponent(QWidget *parent) :
CInfoArea(parent),
ui(new Ui::CDataInfoAreaComponent)
{
ui->setupUi(this);
initInfoArea(); // init base class
this->setWindowIcon(CIcons::swiftDatabase24());
this->ps_setTabBarPosition(QTabWidget::North);
}
CDataInfoAreaComponent::~CDataInfoAreaComponent()
{ }
CDbModelComponent *CDataInfoAreaComponent::getModelComponent() const
{
return this->ui->comp_DbModels;
}
CDbLiveryComponent *CDataInfoAreaComponent::getLiveryComponent() const
{
return this->ui->comp_DbLiveries;
}
CDbDistributorComponent *CDataInfoAreaComponent::getDistributorComponent() const
{
return this->ui->comp_DbDistributors;
}
CDbAircraftIcaoComponent *CDataInfoAreaComponent::getAircraftComponent() const
{
return this->ui->comp_AircraftIcao;
}
CDbAirlineIcaoComponent *CDataInfoAreaComponent::getAirlineComponent() const
{
return this->ui->comp_AirlineIcao;
}
CDbCountryComponent *CDataInfoAreaComponent::getCountryComponent() const
{
return this->ui->comp_Countries;
}
void CDataInfoAreaComponent::setProvider(BlackMisc::Network::IWebDataServicesProvider *provider)
{
Q_ASSERT_X(provider, Q_FUNC_INFO, "Missing provider");
this->ui->comp_AircraftIcao->setProvider(provider);
this->ui->comp_AirlineIcao->setProvider(provider);
this->ui->comp_DbDistributors->setProvider(provider);
this->ui->comp_DbLiveries->setProvider(provider);
this->ui->comp_DbModels->setProvider(provider);
this->ui->comp_Countries->setProvider(provider);
}
QSize CDataInfoAreaComponent::getPreferredSizeWhenFloating(int areaIndex) const
{
InfoArea area = static_cast<InfoArea>(areaIndex);
switch (area)
{
case InfoAreaAircraftIcao:
case InfoAreaAirlineIcao:
case InfoAreaLiveries:
case InfoAreaModels:
case InfoAreaCountries:
default:
return QSize(800, 600);
}
}
const QPixmap &CDataInfoAreaComponent::indexToPixmap(int areaIndex) const
{
InfoArea area = static_cast<InfoArea>(areaIndex);
switch (area)
{
case InfoAreaAircraftIcao:
return CIcons::appAircraftIcao16();
case InfoAreaAirlineIcao:
return CIcons::appAirlineIcao16();
case InfoAreaLiveries:
return CIcons::appLiveries16();
case InfoAreaDistributors:
return CIcons::appDistributors16();
case InfoAreaModels:
return CIcons::appModels16();
case InfoAreaCountries:
return CIcons::appCountries16();
default:
return CIcons::empty();
}
}
} // ns
} // ns

View File

@@ -0,0 +1,99 @@
/* Copyright (C) 2014
* swift project Community / Contributors
*
* This file is part of swift Project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \file
#ifndef BLACKGUI_DATAINFOAREACOMPONENT_H
#define BLACKGUI_DATAINFOAREACOMPONENT_H
#include "blackgui/blackguiexport.h"
#include "blackgui/infoarea.h"
#include "blackmisc/network/webdataservicesprovider.h"
#include <QMainWindow>
#include <QScopedPointer>
namespace Ui { class CDataInfoAreaComponent; }
namespace BlackGui
{
namespace Components
{
class CDataMappingComponent;
class CDbAircraftIcaoComponent;
class CDbAirlineIcaoComponent;
class CDbModelComponent;
class CDbDistributorComponent;
class CDbLiveryComponent;
class CDbCountryComponent;
/**
* Main info area for data entry tool
*/
class BLACKGUI_EXPORT CDataInfoAreaComponent :
public BlackGui::CInfoArea,
public BlackMisc::Network::CWebDataServicesAware
{
Q_OBJECT
public:
//! Info areas
enum InfoArea
{
// index must match tab index!
InfoAreaModels = 0,
InfoAreaLiveries = 1,
InfoAreaDistributors = 2,
InfoAreaAircraftIcao = 3,
InfoAreaAirlineIcao = 4,
InfoAreaCountries = 5,
InfoAreaNone = -1
};
//! Constructor
explicit CDataInfoAreaComponent(QWidget *parent = nullptr);
//! Destructor
~CDataInfoAreaComponent();
//! DB model component
CDbModelComponent *getModelComponent() const;
//! DB livery component
CDbLiveryComponent *getLiveryComponent() const;
//! DB distributor component
CDbDistributorComponent *getDistributorComponent() const;
//! DB aircraft ICAO component
CDbAircraftIcaoComponent *getAircraftComponent() const;
//! DB airline ICAO component
CDbAirlineIcaoComponent *getAirlineComponent() const;
//! DB country component
CDbCountryComponent *getCountryComponent() const;
//! Set data reader
virtual void setProvider(BlackMisc::Network::IWebDataServicesProvider *webDataReader) override;
protected:
//! \copydoc CInfoArea::getPreferredSizeWhenFloating
virtual QSize getPreferredSizeWhenFloating(int areaIndex) const override;
//! \copydoc CInfoArea::indexToPixmap
virtual const QPixmap &indexToPixmap(int areaIndex) const override;
private:
QScopedPointer <Ui::CDataInfoAreaComponent> ui;
};
} // ns
} // ns
#endif // guard

View File

@@ -0,0 +1,485 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CDataInfoAreaComponent</class>
<widget class="QMainWindow" name="CDataInfoAreaComponent">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>485</width>
<height>55</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="qw_centralEmptyWidgetUsedAsPadding">
<property name="maximumSize">
<size>
<width>0</width>
<height>3</height>
</size>
</property>
</widget>
<widget class="BlackGui::CDockWidgetInfoArea" name="dwp_AircraftModels">
<property name="allowedAreas">
<set>Qt::TopDockWidgetArea</set>
</property>
<property name="windowTitle">
<string>Aircraft models</string>
</property>
<attribute name="dockWidgetArea">
<number>4</number>
</attribute>
<widget class="QWidget" name="qw_AircraftModelsOuter">
<layout class="QVBoxLayout" name="vl_AircraftModelsOuter">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="fr_AircraftModelsInner">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="vl_AircraftModelsInner">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BlackGui::Components::CDbModelComponent" name="comp_DbModels">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="BlackGui::CDockWidgetInfoArea" name="dwp_Liveries">
<property name="allowedAreas">
<set>Qt::TopDockWidgetArea</set>
</property>
<property name="windowTitle">
<string>Liveries</string>
</property>
<attribute name="dockWidgetArea">
<number>4</number>
</attribute>
<widget class="QWidget" name="qw_LiveriesOuter">
<layout class="QVBoxLayout" name="vl_LiveriesOuter">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="fr_LiveriesInner">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="vl_LiveriesInner">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BlackGui::Components::CDbLiveryComponent" name="comp_DbLiveries">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="BlackGui::CDockWidgetInfoArea" name="dwp_Distributors">
<property name="allowedAreas">
<set>Qt::TopDockWidgetArea</set>
</property>
<property name="windowTitle">
<string>Distributors</string>
</property>
<attribute name="dockWidgetArea">
<number>4</number>
</attribute>
<widget class="QWidget" name="qw_DistributorsOuter">
<layout class="QVBoxLayout" name="vl_DistributorsOuter">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="fr_DistributorsInner">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="vl_DisitributorsInner">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BlackGui::Components::CDbDistributorComponent" name="comp_DbDistributors">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="BlackGui::CDockWidgetInfoArea" name="dwp_AircraftIcao">
<property name="allowedAreas">
<set>Qt::TopDockWidgetArea</set>
</property>
<property name="windowTitle">
<string>Aircraft ICAO</string>
</property>
<attribute name="dockWidgetArea">
<number>4</number>
</attribute>
<widget class="QWidget" name="qw_AircraftIcaoOuter">
<layout class="QVBoxLayout" name="vl_AircraftIcaoOuter">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="fr_AircraftIcaoInner">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="vl_AircraftIcaoCodeinner">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BlackGui::Components::CDbAircraftIcaoComponent" name="comp_AircraftIcao">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="BlackGui::CDockWidgetInfoArea" name="dwp_AirlineIcao">
<property name="allowedAreas">
<set>Qt::TopDockWidgetArea</set>
</property>
<property name="windowTitle">
<string>Airline ICAO</string>
</property>
<attribute name="dockWidgetArea">
<number>4</number>
</attribute>
<widget class="QWidget" name="qw_AirlineIcaoOuter">
<layout class="QVBoxLayout" name="vlAirlineIcaoOuter">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="fr_AirlineIcaoInner">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="vl_AirlineIcaoInner">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BlackGui::Components::CDbAirlineIcaoComponent" name="comp_AirlineIcao">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="BlackGui::CDockWidgetInfoArea" name="dwp_Countries">
<property name="allowedAreas">
<set>Qt::TopDockWidgetArea</set>
</property>
<property name="windowTitle">
<string>Countries</string>
</property>
<attribute name="dockWidgetArea">
<number>4</number>
</attribute>
<widget class="QWidget" name="qw_Countries">
<layout class="QVBoxLayout" name="vlAirlineIcaoOuter_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="fr_Countries">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="vl_AirlineIcaoInner_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="BlackGui::Components::CDbCountryComponent" name="comp_Countries">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
<customwidgets>
<customwidget>
<class>BlackGui::CDockWidgetInfoArea</class>
<extends>QDockWidget</extends>
<header>blackgui/dockwidgetinfoarea.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BlackGui::Components::CDbModelComponent</class>
<extends>QFrame</extends>
<header>blackgui/components/dbmodelcomponent.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BlackGui::Components::CDbLiveryComponent</class>
<extends>QFrame</extends>
<header>blackgui/components/dbliverycomponent.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BlackGui::Components::CDbDistributorComponent</class>
<extends>QFrame</extends>
<header>blackgui/components/dbdistributorcomponent.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BlackGui::Components::CDbAircraftIcaoComponent</class>
<extends>QFrame</extends>
<header>blackgui/components/dbaircrafticaocomponent.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BlackGui::Components::CDbAirlineIcaoComponent</class>
<extends>QFrame</extends>
<header>blackgui/components/dbairlineicaocomponent.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BlackGui::Components::CDbCountryComponent</class>
<extends>QFrame</extends>
<header>blackgui/components/dbcountrycomponent.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>