/** * @RDE_HEADER@ * Handle bulding display in thp * $Id$ * $HeadURL$ * $Author$ */ #include "thp_building_widget.h" #include "ui_thp_situation_building_base.h" #include "thp_building_settings.h" #include "thp_plugin_provider.h" #include #include #include #include #include #include namespace THP { using namespace SituationReplay; BuildingWidget::BuildingWidget(QWidget *parent) : SituationBuildingBase("THP.BuildingWidget", parent) { QMenu *m = new QMenu(m_ui->btnFilter); m->addAction(tr("Global Settings"), this, &BuildingWidget::onGlobalSettings); m_ui->btnFilter->setMenu(m); } BuildingWidget::~BuildingWidget() { delete m_bgvController; } bool BuildingWidget::init(SituationReplay::MainHandlerSqlite *mhs, BuildingPluginProvider *pp, const QString &homePath) { if (!SituationBuildingBase::init(mhs)) return false; m_replayHandler = mhs; m_pluginProvider = pp; // parse json, create xml, init buildingviewer delete m_bgvController; m_bgvController = new BuildingViewer::BgViewerController(this); if (!m_bgvController->init(m_pluginProvider, true, homePath + QStringLiteral("/BuildingModels/"))) return false; auto w = m_bgvController->getBgViewerWidget(); w->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_ui->vLayout->insertWidget(0, w); return true; } bool BuildingWidget::showSituationInternal() { m_bgvController->excRestoreViewState(m_attributes[QStringLiteral("arrBuildingStates")]); if (!SituationBuildingBase::showSituationInternal()) return false; onInitDone(); return true; } void BuildingWidget::emitPartitionTimeChanged(qint64 curTime) { m_pluginProvider->emitPartitionTimeChanged(curTime); } void BuildingWidget::onGlobalSettings() { if (!m_globalSettingsDialog) m_globalSettingsDialog = new BgViewerSettingsView(m_bgvController, this); m_globalSettingsDialog->show(); } }