mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 00:25:35 +08:00
Filter, deferred connect of "setFilter" signals to avoid filtering during "swing-in" of UI
This commit is contained in:
committed by
Mat Sutcliffe
parent
314c48d5d1
commit
7f1591c972
@@ -21,6 +21,8 @@
|
|||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
#include <QPointer>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
using namespace BlackMisc::Simulation;
|
using namespace BlackMisc::Simulation;
|
||||||
using namespace BlackMisc::Db;
|
using namespace BlackMisc::Db;
|
||||||
@@ -37,28 +39,15 @@ namespace BlackGui
|
|||||||
ui(new Ui::CAircraftModelFilterBar)
|
ui(new Ui::CAircraftModelFilterBar)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->frp_SimulatorSelector->checkAll();
|
|
||||||
|
ui->comp_SimulatorSelector->setMode(CSimulatorSelector::CheckBoxes);
|
||||||
|
ui->comp_SimulatorSelector->setNoSelectionMeansAll(true);
|
||||||
|
ui->comp_SimulatorSelector->setRememberSelection(false);
|
||||||
|
ui->comp_SimulatorSelector->checkAll();
|
||||||
|
|
||||||
ui->comp_DistributorSelector->withDistributorDescription(false);
|
ui->comp_DistributorSelector->withDistributorDescription(false);
|
||||||
this->setButtonsAndCount(ui->filter_Buttons);
|
this->setButtonsAndCount(ui->filter_Buttons);
|
||||||
|
|
||||||
connect(ui->le_AircraftIcao, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_AircraftManufacturer, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_AirlineIcao, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_AirlineName, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_LiveryCode, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_Id, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_ModelDescription, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_ModelString, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
connect(ui->le_FileName, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
|
||||||
|
|
||||||
connect(ui->cbt_Db, &QCheckBox::clicked, this, &CAircraftModelFilterBar::ps_checkBoxChanged);
|
|
||||||
connect(ui->cbt_IncludeExclude, &QCheckBox::clicked, this, &CAircraftModelFilterBar::ps_checkBoxChanged);
|
|
||||||
connect(ui->cbt_Military, &QCheckBox::clicked, this, &CAircraftModelFilterBar::ps_checkBoxChanged);
|
|
||||||
connect(ui->cbt_ColorLiveries, &QCheckBox::clicked, this, &CAircraftModelFilterBar::ps_checkBoxChanged);
|
|
||||||
|
|
||||||
connect(ui->frp_SimulatorSelector, &CSimulatorSelector::changed, this, &CAircraftModelFilterBar::ps_simulatorSelectionChanged);
|
|
||||||
connect(ui->comp_DistributorSelector, &CDbDistributorSelectorComponent::changedDistributor, this, &CAircraftModelFilterBar::ps_distributorChanged);
|
|
||||||
|
|
||||||
CUpperCaseValidator *ucv = new CUpperCaseValidator(this);
|
CUpperCaseValidator *ucv = new CUpperCaseValidator(this);
|
||||||
ui->le_AircraftIcao->setValidator(ucv);
|
ui->le_AircraftIcao->setValidator(ucv);
|
||||||
ui->le_AirlineIcao->setValidator(ucv);
|
ui->le_AirlineIcao->setValidator(ucv);
|
||||||
@@ -69,6 +58,14 @@ namespace BlackGui
|
|||||||
|
|
||||||
// reset form
|
// reset form
|
||||||
this->clearForm();
|
this->clearForm();
|
||||||
|
|
||||||
|
// connect deferred, avoid to filter during the UI "swing in period"
|
||||||
|
QPointer<CAircraftModelFilterBar> myself(this);
|
||||||
|
QTimer::singleShot(2500, this, [ = ]
|
||||||
|
{
|
||||||
|
if (!myself) { return; }
|
||||||
|
this->connectTriggerFilterSignals();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
CAircraftModelFilterBar::~CAircraftModelFilterBar()
|
CAircraftModelFilterBar::~CAircraftModelFilterBar()
|
||||||
@@ -160,5 +157,26 @@ namespace BlackGui
|
|||||||
Q_UNUSED(state);
|
Q_UNUSED(state);
|
||||||
triggerFilter();
|
triggerFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CAircraftModelFilterBar::connectTriggerFilterSignals()
|
||||||
|
{
|
||||||
|
connect(ui->le_AircraftIcao, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_AircraftManufacturer, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_AirlineIcao, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_AirlineName, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_LiveryCode, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_Id, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_ModelDescription, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_ModelString, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
connect(ui->le_FileName, &QLineEdit::returnPressed, this, &CFilterWidget::triggerFilter);
|
||||||
|
|
||||||
|
connect(ui->cbt_Db, &QCheckBox::clicked, this, &CAircraftModelFilterBar::onCheckBoxChanged);
|
||||||
|
connect(ui->cbt_IncludeExclude, &QCheckBox::clicked, this, &CAircraftModelFilterBar::onCheckBoxChanged);
|
||||||
|
connect(ui->cbt_Military, &QCheckBox::clicked, this, &CAircraftModelFilterBar::onCheckBoxChanged);
|
||||||
|
connect(ui->cbt_ColorLiveries, &QCheckBox::clicked, this, &CAircraftModelFilterBar::onCheckBoxChanged);
|
||||||
|
|
||||||
|
connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CAircraftModelFilterBar::onSimulatorSelectionChanged);
|
||||||
|
connect(ui->comp_DistributorSelector, &CDbDistributorSelectorComponent::changedDistributor, this, &CAircraftModelFilterBar::onDistributorChanged);
|
||||||
|
}
|
||||||
} // ns
|
} // ns
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
@@ -70,7 +70,9 @@ namespace BlackGui
|
|||||||
//! Checkbox has been changed
|
//! Checkbox has been changed
|
||||||
void onCheckBoxChanged(bool state);
|
void onCheckBoxChanged(bool state);
|
||||||
|
|
||||||
private:
|
//! Trigger filter by changing a value
|
||||||
|
void connectTriggerFilterSignals();
|
||||||
|
|
||||||
QScopedPointer<Ui::CAircraftModelFilterBar> ui;
|
QScopedPointer<Ui::CAircraftModelFilterBar> ui;
|
||||||
};
|
};
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
@@ -32,12 +32,21 @@ namespace BlackGui
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->comp_Simulator->setMode(CSimulatorSelector::CheckBoxes);
|
ui->comp_Simulator->setMode(CSimulatorSelector::CheckBoxes);
|
||||||
ui->comp_Simulator->setNoSelectionMeansAll(true);
|
ui->comp_Simulator->setNoSelectionMeansAll(true);
|
||||||
this->setButtonsAndCount(ui->filter_Buttons);
|
ui->comp_Simulator->setRememberSelection(false);
|
||||||
|
ui->comp_Simulator->checkAll();
|
||||||
|
|
||||||
connect(ui->comp_Simulator, &CSimulatorSelector::changed, this, &CFilterWidget::triggerFilter);
|
this->setButtonsAndCount(ui->filter_Buttons);
|
||||||
|
|
||||||
// reset form
|
// reset form
|
||||||
this->clearForm();
|
this->clearForm();
|
||||||
|
|
||||||
|
// connect deferred, avoid to filter during the UI "swing in period"
|
||||||
|
QPointer<CDistributorFilterBar> myself(this);
|
||||||
|
QTimer::singleShot(2500, this, [ = ]
|
||||||
|
{
|
||||||
|
if (!myself) { return; }
|
||||||
|
this->connectTriggerFilterSignals();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
CDistributorFilterBar::~CDistributorFilterBar()
|
CDistributorFilterBar::~CDistributorFilterBar()
|
||||||
@@ -62,5 +71,10 @@ namespace BlackGui
|
|||||||
{
|
{
|
||||||
ui->comp_Simulator->clear();
|
ui->comp_Simulator->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CDistributorFilterBar::connectTriggerFilterSignals()
|
||||||
|
{
|
||||||
|
connect(ui->comp_Simulator, &CSimulatorSelector::changed, this, &CFilterWidget::triggerFilter);
|
||||||
|
}
|
||||||
} // ns
|
} // ns
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
@@ -56,6 +56,9 @@ namespace BlackGui
|
|||||||
virtual void clearForm() override;
|
virtual void clearForm() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
//! Trigger filter by changing a value
|
||||||
|
void connectTriggerFilterSignals();
|
||||||
|
|
||||||
QScopedPointer<Ui::CDistributorFilterBar> ui;
|
QScopedPointer<Ui::CDistributorFilterBar> ui;
|
||||||
};
|
};
|
||||||
} // ns
|
} // ns
|
||||||
|
|||||||
Reference in New Issue
Block a user