refs #368, filter for views

This commit is contained in:
Klaus Basan
2015-01-18 23:00:01 +01:00
parent f8464a6b03
commit 23d3ea3ec5
19 changed files with 974 additions and 120 deletions

View File

@@ -8,9 +8,13 @@
*/
#include "aircraftmodelview.h"
#include "aircraftmodelfilterform.h"
#include <QHeaderView>
#include <iostream>
#include <memory>
using namespace BlackMisc;
using namespace BlackMisc::Simulation;
using namespace BlackGui::Models;
namespace BlackGui
@@ -22,11 +26,31 @@ namespace BlackGui
this->m_withMenuItemClear = true;
this->m_withMenuItemRefresh = true;
this->standardInit(new CAircraftModelListModel(CAircraftModelListModel::ModelOnly, this));
// filter
QWidget *mainWindow = this->mainApplicationWindowWidget();
Q_ASSERT(mainWindow);
this->setFilterDialog(new CAircraftModelFilterForm(mainWindow));
}
void CAircraftModelView::setAircraftModelMode(CAircraftModelListModel::AircraftModelMode mode)
{
this->m_model->setAircraftModelMode(mode);
}
}
}
bool CAircraftModelView::ps_filterDialogFinished(int status)
{
if (CViewBase::ps_filterDialogFinished(status)) { return true; }
if (!this->m_filterDialog) { this->derivedModel()->removeFilter(); return true; }
std::unique_ptr<IModelFilter<CAircraftModelList>> filter(this->getFilterForm()->getFilter());
this->derivedModel()->setFilter(filter);
return true;
}
CAircraftModelFilterForm *CAircraftModelView::getFilterForm() const
{
return static_cast<CAircraftModelFilterForm *>(this->m_filterDialog.data());
}
} // namespace
} // namespace