summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMahmoud Badri <mahmoud.badri@qt.io>2019-03-15 11:14:33 +0200
committerMahmoud Badri <mahmoud.badri@qt.io>2019-03-15 10:08:24 +0000
commitc1ed66019370abcf59dfb122410edb069393bdaa (patch)
tree739a8e6393a8ba866f54066ab723f43e548b1e0b
parent23e5839cd7b351c48618b213fd0f48f08166c25c (diff)
Fix a 'select master slide' crash related to variants
Change-Id: I248f49df0993f61a1ffe8e38e27264dd8d5554cb Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/Authoring/Studio/Palettes/Slide/SlideView.cpp13
-rw-r--r--src/Authoring/Studio/Palettes/Slide/SlideView.h20
2 files changed, 15 insertions, 18 deletions
diff --git a/src/Authoring/Studio/Palettes/Slide/SlideView.cpp b/src/Authoring/Studio/Palettes/Slide/SlideView.cpp
index ba8dd5d5..5a966a47 100644
--- a/src/Authoring/Studio/Palettes/Slide/SlideView.cpp
+++ b/src/Authoring/Studio/Palettes/Slide/SlideView.cpp
@@ -67,7 +67,8 @@ SlideView::SlideView(QWidget *parent) : QQuickWidget(parent)
m_variantRefreshTimer.setInterval(0);
connect(&m_variantRefreshTimer, &QTimer::timeout, [this]() {
m_SlidesModel->refreshVariants();
- m_MasterSlideModel->refreshVariants(m_SlidesModel->variantsModel());
+ m_MasterSlideModel->refreshVariants(m_SlidesModel->variantsModel(),
+ m_SlidesModel->variantsModelKeys());
});
}
@@ -549,27 +550,27 @@ void SlideView::rebuildSlideList(const qt3dsdm::Qt3DSDMSlideHandle &inActiveSlid
}
}
-CDoc *SlideView::GetDoc()
+CDoc *SlideView::GetDoc() const
{
return g_StudioApp.GetCore()->GetDoc();
}
-CClientDataModelBridge *SlideView::GetBridge()
+CClientDataModelBridge *SlideView::GetBridge() const
{
return GetDoc()->GetStudioSystem()->GetClientDataModelBridge();
}
-qt3dsdm::ISlideSystem *SlideView::GetSlideSystem()
+qt3dsdm::ISlideSystem *SlideView::GetSlideSystem() const
{
return GetDoc()->GetStudioSystem()->GetSlideSystem();
}
-long SlideView::GetSlideIndex(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle)
+long SlideView::GetSlideIndex(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle) const
{
return GetSlideSystem()->GetSlideIndex(inSlideHandle);
}
-bool SlideView::isMaster(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle)
+bool SlideView::isMaster(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle) const
{
return (0 == GetSlideIndex(inSlideHandle));
}
diff --git a/src/Authoring/Studio/Palettes/Slide/SlideView.h b/src/Authoring/Studio/Palettes/Slide/SlideView.h
index aa0a880f..4a15e3a1 100644
--- a/src/Authoring/Studio/Palettes/Slide/SlideView.h
+++ b/src/Authoring/Studio/Palettes/Slide/SlideView.h
@@ -32,16 +32,13 @@
#include <QtQuickWidgets/qquickwidget.h>
#include <QtCore/qtimer.h>
-#include "DispatchListeners.h"
#include "SlideModel.h"
-#include "DataInputSelectView.h"
-#include "Qt3DSDMHandles.h"
#include "Qt3DSDMSignals.h"
#include "DispatchListeners.h"
-#include "Dispatch.h"
class CClientDataModelBridge;
class CDoc;
+class DataInputSelectView;
QT_FORWARD_DECLARE_CLASS(QLabel);
@@ -54,6 +51,7 @@ class SlideView : public QQuickWidget,
public IDataModelListener
{
Q_OBJECT
+
Q_PROPERTY(QAbstractItemModel *currentModel READ currentModel NOTIFY currentModelChanged FINAL)
Q_PROPERTY(bool showMasterSlide READ showMasterSlide WRITE setShowMasterSlide NOTIFY showMasterSlideChanged FINAL)
Q_PROPERTY(bool controlled MEMBER m_controlled NOTIFY controlledChanged)
@@ -121,11 +119,11 @@ private:
void initialize();
void clearSlideList();
void setActiveSlide(const qt3dsdm::Qt3DSDMSlideHandle &inActiveSlideHandle);
- inline CDoc *GetDoc();
- inline CClientDataModelBridge *GetBridge();
- inline qt3dsdm::ISlideSystem *GetSlideSystem();
- long GetSlideIndex(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle);
- bool isMaster(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle);
+ inline CDoc *GetDoc() const;
+ inline CClientDataModelBridge *GetBridge() const;
+ inline qt3dsdm::ISlideSystem *GetSlideSystem() const;
+ long GetSlideIndex(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle) const;
+ bool isMaster(const qt3dsdm::Qt3DSDMSlideHandle &inSlideHandle) const;
void rebuildSlideList(const qt3dsdm::Qt3DSDMSlideHandle &inActiveSlideHandle);
void onAssetCreated(qt3dsdm::Qt3DSDMInstanceHandle inInstance);
void onAssetDeleted(qt3dsdm::Qt3DSDMInstanceHandle inInstance);
@@ -137,13 +135,11 @@ private:
SlideModel *m_CurrentModel = nullptr;
DataInputSelectView *m_dataInputSelector = nullptr;
QLabel *m_variantsToolTip = nullptr;
- QColor m_BaseColor = QColor::fromRgb(75, 75, 75);
std::vector<std::shared_ptr<qt3dsdm::ISignalConnection>> m_Connections;
- typedef QHash<int, int> TIntIntMap;
// We need to remember which slide we were on when we entered the master slide.
// Then, when the users leave the master slide we can go back to roughly the same
// state.
- TIntIntMap m_MasterSlideReturnPointers;
+ QHash<int, int> m_MasterSlideReturnPointers;
// the object containing the slides to be inspected.
qt3dsdm::Qt3DSDMInstanceHandle m_ActiveRoot = 0;