mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-20 13:23:59 +00:00
[traff_assessment_tool] Show animation while feed is loading
Signed-off-by: mvglasow <michael -at- vonglasow.com>
This commit is contained in:
@@ -317,10 +317,11 @@ void MainWindow::CreateTrafficPanel()
|
|||||||
{
|
{
|
||||||
if (!m_trafficModel)
|
if (!m_trafficModel)
|
||||||
{
|
{
|
||||||
// TODO simplify the call, everything depends on m_framework
|
// TODO simplify the call, almost everything depends on m_framework
|
||||||
m_trafficModel = new TrafficModel(m_framework, m_framework.GetDataSource(),
|
m_trafficModel = new TrafficModel(m_framework, m_framework.GetDataSource(),
|
||||||
std::make_unique<TrafficDrawerDelegate>(m_framework),
|
std::make_unique<TrafficDrawerDelegate>(m_framework),
|
||||||
std::make_unique<PointsControllerDelegate>(m_framework));
|
std::make_unique<PointsControllerDelegate>(m_framework),
|
||||||
|
*this);
|
||||||
|
|
||||||
connect(m_mapWidget, &MapWidget::TrafficMarkupClick,
|
connect(m_mapWidget, &MapWidget::TrafficMarkupClick,
|
||||||
m_trafficModel, &TrafficModel::OnClick);
|
m_trafficModel, &TrafficModel::OnClick);
|
||||||
@@ -339,7 +340,13 @@ void MainWindow::CreateTrafficPanel()
|
|||||||
|
|
||||||
m_dockWidget->adjustSize();
|
m_dockWidget->adjustSize();
|
||||||
m_dockWidget->setMinimumWidth(400);
|
m_dockWidget->setMinimumWidth(400);
|
||||||
|
|
||||||
|
m_progressBar = new QProgressBar(m_dockWidget);
|
||||||
|
m_progressBar->setMinimum(0);
|
||||||
|
m_progressBar->setMaximum(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
m_dockWidget->setTitleBarWidget(m_progressBar);
|
||||||
m_dockWidget->show();
|
m_dockWidget->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -350,6 +357,9 @@ void MainWindow::DestroyTrafficPanel()
|
|||||||
delete m_dockWidget;
|
delete m_dockWidget;
|
||||||
m_dockWidget = nullptr;
|
m_dockWidget = nullptr;
|
||||||
|
|
||||||
|
delete m_progressBar;
|
||||||
|
m_progressBar = nullptr;
|
||||||
|
|
||||||
delete m_trafficModel;
|
delete m_trafficModel;
|
||||||
m_trafficModel = nullptr;
|
m_trafficModel = nullptr;
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
|
#include <QProgressBar>
|
||||||
|
|
||||||
class Framework;
|
class Framework;
|
||||||
class QHBoxLayout;
|
class QHBoxLayout;
|
||||||
@@ -31,6 +32,7 @@ class MainWindow : public QMainWindow
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MainWindow(Framework & framework);
|
explicit MainWindow(Framework & framework);
|
||||||
|
QDockWidget * GetDockWidget() { return m_dockWidget; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void CreateTrafficPanel();
|
void CreateTrafficPanel();
|
||||||
@@ -58,6 +60,7 @@ private:
|
|||||||
|
|
||||||
traffxml::TrafficModel * m_trafficModel = nullptr;
|
traffxml::TrafficModel * m_trafficModel = nullptr;
|
||||||
QDockWidget * m_dockWidget = nullptr;
|
QDockWidget * m_dockWidget = nullptr;
|
||||||
|
QProgressBar * m_progressBar = nullptr;
|
||||||
|
|
||||||
#ifdef openlr_obsolete
|
#ifdef openlr_obsolete
|
||||||
QAction * m_goldifyMatchedPathAction = nullptr;
|
QAction * m_goldifyMatchedPathAction = nullptr;
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
#include "base/assert.hpp"
|
#include "base/assert.hpp"
|
||||||
#include "base/scope_guard.hpp"
|
#include "base/scope_guard.hpp"
|
||||||
|
|
||||||
|
#include <QDockWidget>
|
||||||
#include <QItemSelection>
|
#include <QItemSelection>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
|
||||||
@@ -300,12 +301,14 @@ QVariant GetDescription(TraffMessage const & message)
|
|||||||
TrafficModel::TrafficModel(Framework & framework, DataSource const & dataSource,
|
TrafficModel::TrafficModel(Framework & framework, DataSource const & dataSource,
|
||||||
std::unique_ptr<TrafficDrawerDelegateBase> drawerDelegate, // TODO do we need that?
|
std::unique_ptr<TrafficDrawerDelegateBase> drawerDelegate, // TODO do we need that?
|
||||||
std::unique_ptr<PointsControllerDelegateBase> pointsDelegate, // TODO do we need that?
|
std::unique_ptr<PointsControllerDelegateBase> pointsDelegate, // TODO do we need that?
|
||||||
|
MainWindow & mainWindow,
|
||||||
QObject * parent)
|
QObject * parent)
|
||||||
: QAbstractTableModel(parent)
|
: QAbstractTableModel(parent)
|
||||||
, m_framework(framework)
|
, m_framework(framework)
|
||||||
, m_dataSource(dataSource)
|
, m_dataSource(dataSource)
|
||||||
, m_drawerDelegate(std::move(drawerDelegate))
|
, m_drawerDelegate(std::move(drawerDelegate))
|
||||||
, m_pointsDelegate(std::move(pointsDelegate))
|
, m_pointsDelegate(std::move(pointsDelegate))
|
||||||
|
, m_mainWindow(mainWindow)
|
||||||
{
|
{
|
||||||
framework.GetTrafficManager().SetTrafficUpdateCallbackFn([this, &framework](bool final) {
|
framework.GetTrafficManager().SetTrafficUpdateCallbackFn([this, &framework](bool final) {
|
||||||
/*
|
/*
|
||||||
@@ -330,6 +333,10 @@ TrafficModel::TrafficModel(Framework & framework, DataSource const & dataSource,
|
|||||||
editSession.ClearGroup(UserMark::Type::COLORED);
|
editSession.ClearGroup(UserMark::Type::COLORED);
|
||||||
editSession.SetIsVisible(UserMark::Type::COLORED, false);
|
editSession.SetIsVisible(UserMark::Type::COLORED, false);
|
||||||
|
|
||||||
|
// restore QDockWidget title
|
||||||
|
if (m_mainWindow.GetDockWidget())
|
||||||
|
m_mainWindow.GetDockWidget()->setTitleBarWidget(nullptr);
|
||||||
|
|
||||||
LOG(LINFO, ("Messages:", m_messages.size()));
|
LOG(LINFO, ("Messages:", m_messages.size()));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "mainwindow.hpp"
|
||||||
#include "points_controller_delegate_base.hpp"
|
#include "points_controller_delegate_base.hpp"
|
||||||
#ifdef openlr_obsolete
|
#ifdef openlr_obsolete
|
||||||
#include "segment_correspondence.hpp"
|
#include "segment_correspondence.hpp"
|
||||||
@@ -72,6 +73,7 @@ public:
|
|||||||
TrafficModel(Framework & framework, DataSource const & dataSource,
|
TrafficModel(Framework & framework, DataSource const & dataSource,
|
||||||
std::unique_ptr<TrafficDrawerDelegateBase> drawerDelegate,
|
std::unique_ptr<TrafficDrawerDelegateBase> drawerDelegate,
|
||||||
std::unique_ptr<PointsControllerDelegateBase> pointsDelegate,
|
std::unique_ptr<PointsControllerDelegateBase> pointsDelegate,
|
||||||
|
MainWindow & mainWindow,
|
||||||
QObject * parent = Q_NULLPTR);
|
QObject * parent = Q_NULLPTR);
|
||||||
|
|
||||||
bool SaveSampleAs(std::string const & fileName) const;
|
bool SaveSampleAs(std::string const & fileName) const;
|
||||||
@@ -123,6 +125,7 @@ private:
|
|||||||
|
|
||||||
Framework & m_framework;
|
Framework & m_framework;
|
||||||
DataSource const & m_dataSource;
|
DataSource const & m_dataSource;
|
||||||
|
MainWindow & m_mainWindow;
|
||||||
#ifdef openlr_obsolete
|
#ifdef openlr_obsolete
|
||||||
std::vector<SegmentCorrespondence> m_segments;
|
std::vector<SegmentCorrespondence> m_segments;
|
||||||
// Non-owning pointer to an element of m_segments.
|
// Non-owning pointer to an element of m_segments.
|
||||||
|
|||||||
Reference in New Issue
Block a user