Minor Ui adjustments ATC component

This commit is contained in:
Klaus Basan
2018-01-28 21:22:08 +01:00
parent 2d0fbfa3c5
commit 1f1ea1de5b
2 changed files with 91 additions and 107 deletions

View File

@@ -31,6 +31,7 @@
#include <QModelIndex> #include <QModelIndex>
#include <QPushButton> #include <QPushButton>
#include <QStandardItemModel> #include <QStandardItemModel>
#include <QStringBuilder>
#include <QTabBar> #include <QTabBar>
#include <QTableView> #include <QTableView>
#include <QTextEdit> #include <QTextEdit>
@@ -66,10 +67,10 @@ namespace BlackGui
ui->le_AtcStationsOnlineMetar->setValidator(ucv); ui->le_AtcStationsOnlineMetar->setValidator(ucv);
// some icons // some icons
ui->pb_AtcStationsAtisReload->setIcon(CIcons::atis()); ui->tb_AtcStationsAtisReload->setIcon(CIcons::atis());
ui->pb_AtcStationsAtisReload->setText(""); ui->tb_AtcStationsAtisReload->setText("");
ui->pb_AtcStationsLoadMetar->setIcon(CIcons::metar()); ui->tb_AtcStationsLoadMetar->setIcon(CIcons::metar());
ui->pb_AtcStationsLoadMetar->setText(""); ui->tb_AtcStationsLoadMetar->setText("");
// set station mode // set station mode
ui->tvp_AtcStationsOnline->setStationMode(CAtcStationListModel::StationsOnline); ui->tvp_AtcStationsOnline->setStationMode(CAtcStationListModel::StationsOnline);
@@ -80,7 +81,7 @@ namespace BlackGui
// Signal / Slots // Signal / Slots
connect(ui->le_AtcStationsOnlineMetar, &QLineEdit::returnPressed, this, &CAtcStationComponent::getMetarAsEntered); connect(ui->le_AtcStationsOnlineMetar, &QLineEdit::returnPressed, this, &CAtcStationComponent::getMetarAsEntered);
connect(ui->pb_AtcStationsLoadMetar, &QPushButton::clicked, this, &CAtcStationComponent::getMetarAsEntered); connect(ui->tb_AtcStationsLoadMetar, &QPushButton::clicked, this, &CAtcStationComponent::getMetarAsEntered);
connect(this, &QTabWidget::currentChanged, this, &CAtcStationComponent::atcStationsTabChanged); // "local" tab changed (booked, online) connect(this, &QTabWidget::currentChanged, this, &CAtcStationComponent::atcStationsTabChanged); // "local" tab changed (booked, online)
connect(ui->tvp_AtcStationsOnline, &QTableView::clicked, this, &CAtcStationComponent::onlineAtcStationSelected); connect(ui->tvp_AtcStationsOnline, &QTableView::clicked, this, &CAtcStationComponent::onlineAtcStationSelected);
connect(ui->tvp_AtcStationsOnline, &CAtcStationView::testRequestDummyAtcOnlineStations, this, &CAtcStationComponent::testCreateDummyOnlineAtcStations); connect(ui->tvp_AtcStationsOnline, &CAtcStationView::testRequestDummyAtcOnlineStations, this, &CAtcStationComponent::testCreateDummyOnlineAtcStations);
@@ -94,7 +95,7 @@ namespace BlackGui
connect(ui->tvp_AtcStationsBooked, &CAtcStationView::requestNewBackendData, this, &CAtcStationComponent::reloadAtcStationsBooked); connect(ui->tvp_AtcStationsBooked, &CAtcStationView::requestNewBackendData, this, &CAtcStationComponent::reloadAtcStationsBooked);
connect(ui->tvp_AtcStationsBooked, &CAtcStationView::modelDataChangedDigest, this, &CAtcStationComponent::onCountChanged); connect(ui->tvp_AtcStationsBooked, &CAtcStationView::modelDataChangedDigest, this, &CAtcStationComponent::onCountChanged);
connect(ui->pb_AtcStationsAtisReload, &QPushButton::clicked, this, &CAtcStationComponent::requestAtis); connect(ui->tb_AtcStationsAtisReload, &QPushButton::clicked, this, &CAtcStationComponent::requestAtis);
connect(&m_updateTimer, &QTimer::timeout, this, &CAtcStationComponent::update); connect(&m_updateTimer, &QTimer::timeout, this, &CAtcStationComponent::update);
// runtime based connects // runtime based connects
@@ -199,28 +200,27 @@ namespace BlackGui
void CAtcStationComponent::getMetar(const QString &airportIcaoCode) void CAtcStationComponent::getMetar(const QString &airportIcaoCode)
{ {
const QString icao(airportIcaoCode.isEmpty() ? ui->le_AtcStationsOnlineMetar->text().trimmed().toUpper() : airportIcaoCode.trimmed().toUpper()); const CAirportIcaoCode icao(airportIcaoCode.isEmpty() ? ui->le_AtcStationsOnlineMetar->text().trimmed().toUpper() : airportIcaoCode.trimmed().toUpper());
ui->le_AtcStationsOnlineMetar->setText(icao); ui->le_AtcStationsOnlineMetar->setText(icao.asString());
if (icao.length() != 4) { return; } if (!icao.hasValidIcaoCode()) { return; }
CMetar metar(sGui->getIContextNetwork()->getMetarForAirport(icao)); const CMetar metar(sGui->getIContextNetwork()->getMetarForAirport(icao));
if (metar == CMetar()) if (metar.hasMessage())
{ {
ui->te_AtcStationsOnlineInfo->clear(); const QString metarText = metar.getMessage() %
QStringLiteral("\n\n") % metar.getMetarText();
ui->te_AtcStationsOnlineInfo->setText(metarText);
} }
else else
{ {
QString metarText = metar.getMessage(); ui->te_AtcStationsOnlineInfo->clear();
metarText += "\n\n";
metarText += metar.getMetarText();
ui->te_AtcStationsOnlineInfo->setText(metarText);
} }
ui->le_AtcStationsOnlineMetar->clear(); // ui->le_AtcStationsOnlineMetar->clear();
} }
void CAtcStationComponent::reloadAtcStationsBooked() void CAtcStationComponent::reloadAtcStationsBooked()
{ {
Q_ASSERT(ui->tvp_AtcStationsBooked); Q_ASSERT(ui->tvp_AtcStationsBooked);
Q_ASSERT(sGui->getIContextNetwork()); Q_ASSERT(sGui && sGui->getIContextNetwork());
QObject *sender = QObject::sender(); QObject *sender = QObject::sender();
if (sender == ui->tvp_AtcStationsBooked && sGui->getIContextNetwork()) if (sender == ui->tvp_AtcStationsBooked && sGui->getIContextNetwork())

View File

@@ -20,7 +20,7 @@
<attribute name="title"> <attribute name="title">
<string>Online</string> <string>Online</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="vl_AtcStationsOnline"> <layout class="QVBoxLayout" name="vl_AtcStationsOnline" stretch="4,0,1">
<property name="spacing"> <property name="spacing">
<number>3</number> <number>3</number>
</property> </property>
@@ -61,16 +61,6 @@
</attribute> </attribute>
</widget> </widget>
</item> </item>
<item>
<widget class="BlackGui::Components::CSettingsAtcStationsInlineComponent" name="comp_AtcStationsSettings">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item> <item>
<widget class="QFrame" name="fr_AtcStationsOnlineBottom"> <widget class="QFrame" name="fr_AtcStationsOnlineBottom">
<property name="sizePolicy"> <property name="sizePolicy">
@@ -79,89 +69,60 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="maximumSize"> <layout class="QGridLayout" name="gl_Buttons">
<size>
<width>16777215</width>
<height>75</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gl_AtcStationsInfoAtis">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="leftMargin"> <property name="leftMargin">
<number>2</number> <number>0</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>2</number> <number>0</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>2</number> <number>0</number>
</property> </property>
<property name="horizontalSpacing"> <item row="0" column="0">
<number>2</number>
</property>
<property name="verticalSpacing">
<number>4</number>
</property>
<item row="1" column="3">
<widget class="QLineEdit" name="le_AtcStationsOnlineMetar"> <widget class="QLineEdit" name="le_AtcStationsOnlineMetar">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>40</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip"> <property name="toolTip">
<string extracomment="METAR: Airport ICAO code">METAR: Airport ICAO code</string> <string extracomment="METAR: Airport ICAO code">METAR: Airport ICAO code</string>
</property> </property>
<property name="text">
<string>EDDF</string>
</property>
<property name="maxLength"> <property name="maxLength">
<number>5</number> <number>5</number>
</property> </property>
<property name="frame"> <property name="placeholderText">
<bool>true</bool> <string>e.g. KLAX</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="3"> <item row="0" column="5">
<widget class="QPushButton" name="pb_AtcStationsLoadMetar"> <widget class="BlackGui::Components::CSettingsAtcStationsInlineComponent" name="comp_AtcStationsSettings">
<property name="sizePolicy"> <property name="minimumSize">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <size>
<horstretch>0</horstretch> <width>100</width>
<verstretch>0</verstretch> <height>0</height>
</sizepolicy> </size>
</property> </property>
<property name="toolTip"> <property name="focusPolicy">
<string>Load METAR</string> <enum>Qt::StrongFocus</enum>
</property>
<property name="text">
<string>METAR</string>
</property>
<property name="flat">
<bool>false</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="3"> <item row="0" column="4">
<widget class="QPushButton" name="pb_AtcStationsAtisReload"> <spacer name="hs_buttons">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="3">
<widget class="QToolButton" name="tb_AtcStationsAtisReload">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@@ -174,39 +135,52 @@
<property name="text"> <property name="text">
<string>ATIS</string> <string>ATIS</string>
</property> </property>
<property name="flat">
<bool>false</bool>
</property>
</widget> </widget>
</item> </item>
<item row="1" column="1" rowspan="4" colspan="2"> <item row="0" column="2">
<widget class="QTextEdit" name="te_AtcStationsOnlineInfo"> <widget class="QToolButton" name="tb_AtcStationsLoadMetar">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize"> <property name="toolTip">
<size> <string>Load METAR</string>
<width>0</width>
<height>0</height>
</size>
</property> </property>
<property name="maximumSize"> <property name="text">
<size> <string>METAR</string>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="readOnly">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QTextEdit" name="te_AtcStationsOnlineInfo">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tb_AtcStationsOnlineTree"> <widget class="QWidget" name="tb_AtcStationsOnlineTree">
@@ -311,6 +285,16 @@
<container>1</container> <container>1</container>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<tabstops>
<tabstop>tvp_AtcStationsOnline</tabstop>
<tabstop>le_AtcStationsOnlineMetar</tabstop>
<tabstop>tb_AtcStationsLoadMetar</tabstop>
<tabstop>tb_AtcStationsAtisReload</tabstop>
<tabstop>comp_AtcStationsSettings</tabstop>
<tabstop>te_AtcStationsOnlineInfo</tabstop>
<tabstop>tvp_AtcStationsBooked</tabstop>
<tabstop>tvp_AtcStationsOnlineTree</tabstop>
</tabstops>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>