|
@@ -55,43 +55,53 @@ void MainWindow::onUpdateScreen(const QJsonObject &obj)
|
|
|
QElapsedTimer timer;
|
|
QElapsedTimer timer;
|
|
|
timer.start(); // 开始计时
|
|
timer.start(); // 开始计时
|
|
|
|
|
|
|
|
- Canvas *pCanvas = static_cast<Canvas *>(m_pStackedWidget->currentWidget());
|
|
|
|
|
- if(!pCanvas) {
|
|
|
|
|
- LOG_ERROR("error current canvas");
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ProjectManager &projectMgr = AppContext::instance().projectManager();
|
|
|
|
|
+ int canvasCount = projectMgr.canvasCount();
|
|
|
|
|
|
|
|
- QList<QWidget *> widgets = pCanvas->widgetList();
|
|
|
|
|
- QList<QStringList> parameters = pCanvas->parameterList();
|
|
|
|
|
|
|
+ QList<QWidget *> widgets;
|
|
|
|
|
+ QList<QStringList> parameters;
|
|
|
|
|
|
|
|
- if(widgets.count() != parameters.count()) {
|
|
|
|
|
- LOG_ERROR("error widget count and parameters count");
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ for(int i = 0; i < canvasCount; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ Canvas *pCanvas = static_cast<Canvas *>(m_pStackedWidget->widget(i));
|
|
|
|
|
+ if(!pCanvas) {
|
|
|
|
|
+ LOG_ERROR("error current canvas");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- int count = widgets.count();
|
|
|
|
|
|
|
+ widgets = pCanvas->widgetList();
|
|
|
|
|
+ parameters = pCanvas->parameterList();
|
|
|
|
|
|
|
|
- for(int i = 0; i < count; i++)
|
|
|
|
|
- {
|
|
|
|
|
- AbstractWidget *pAbstractWidget = static_cast<AbstractWidget *>(widgets[i]);
|
|
|
|
|
- QStringList widgetParameters;
|
|
|
|
|
- QMetaObject::invokeMethod(pAbstractWidget, "parameters",
|
|
|
|
|
- Qt::AutoConnection, Q_RETURN_ARG(QStringList, widgetParameters));
|
|
|
|
|
|
|
+ if(widgets.count() != parameters.count()) {
|
|
|
|
|
+ LOG_ERROR("error widget count and parameters count");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ int count = widgets.count();
|
|
|
|
|
|
|
|
- for(auto parameter : widgetParameters)
|
|
|
|
|
|
|
+ for(int j = 0; j < count; j++)
|
|
|
{
|
|
{
|
|
|
- QMetaObject::invokeMethod(
|
|
|
|
|
- pAbstractWidget,
|
|
|
|
|
- "setValue",
|
|
|
|
|
- Qt::AutoConnection,
|
|
|
|
|
- Q_ARG(QString, parameter),
|
|
|
|
|
- Q_ARG(QVariant, obj[parameter].toVariant()),
|
|
|
|
|
- Q_ARG(QString, Utils::timestamp()));
|
|
|
|
|
|
|
+ AbstractWidget *pAbstractWidget = static_cast<AbstractWidget *>(widgets[j]);
|
|
|
|
|
+ QStringList widgetParameters;
|
|
|
|
|
+ QMetaObject::invokeMethod(pAbstractWidget, "parameters",
|
|
|
|
|
+ Qt::AutoConnection, Q_RETURN_ARG(QStringList, widgetParameters));
|
|
|
|
|
+
|
|
|
|
|
+ for(auto parameter : widgetParameters)
|
|
|
|
|
+ {
|
|
|
|
|
+ QMetaObject::invokeMethod(
|
|
|
|
|
+ pAbstractWidget,
|
|
|
|
|
+ "setValue",
|
|
|
|
|
+ Qt::AutoConnection,
|
|
|
|
|
+ Q_ARG(QString, parameter),
|
|
|
|
|
+ Q_ARG(QVariant, obj[parameter].toVariant()),
|
|
|
|
|
+ Q_ARG(QString, Utils::timestamp()));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(pCanvas == m_pStackedWidget->currentWidget()) {
|
|
|
|
|
+ QMetaObject::invokeMethod(pAbstractWidget, "redraw", Qt::AutoConnection);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- QMetaObject::invokeMethod(
|
|
|
|
|
- pAbstractWidget,
|
|
|
|
|
- "redraw",
|
|
|
|
|
- Qt::AutoConnection);
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
qint64 duration = timer.elapsed(); // 获取经过的毫秒数
|
|
qint64 duration = timer.elapsed(); // 获取经过的毫秒数
|
|
@@ -102,7 +112,7 @@ void MainWindow::onPageSwitdh(int state)
|
|
|
{
|
|
{
|
|
|
ProjectManager &projectMgr = AppContext::instance().projectManager();
|
|
ProjectManager &projectMgr = AppContext::instance().projectManager();
|
|
|
int canvasCount = projectMgr.canvasCount();
|
|
int canvasCount = projectMgr.canvasCount();
|
|
|
- if (canvasCount <= 0)
|
|
|
|
|
|
|
+ if (canvasCount <= 0)
|
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
int currentIndex = m_pStackedWidget->currentIndex();
|
|
int currentIndex = m_pStackedWidget->currentIndex();
|