Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
+80
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* @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 <QMenu>
|
||||
|
||||
#include <BuildingViewer/Common/bdv_controller.h>
|
||||
#include <BuildingViewer/Common/bdv_plugin_provider.h>
|
||||
#include <LtsScriptTimeline/track_entry.h>
|
||||
#include <LtsWidgets/lts_dialog_helper.h>
|
||||
|
||||
#include <SituationReplay/handler_situation_replay_sqlite.h>
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user