summaryrefslogtreecommitdiffstats
path: root/gui/groupview
diff options
context:
space:
mode:
authorJan Dalheimer <jan@dalheimer.de>2014-03-07 15:46:56 +0100
committerJan Dalheimer <jan@dalheimer.de>2014-03-07 15:46:56 +0100
commitcc1de6a64991a942fdbbb6cdfe24ea1ee268fffb (patch)
treef08e2c4ffcc68c1408fa0cdba4abb68707ebf05d /gui/groupview
parent211a72e14498f9987dadac922312d22199f5c3a0 (diff)
downloadMultiMC-cc1de6a64991a942fdbbb6cdfe24ea1ee268fffb.tar
MultiMC-cc1de6a64991a942fdbbb6cdfe24ea1ee268fffb.tar.gz
MultiMC-cc1de6a64991a942fdbbb6cdfe24ea1ee268fffb.tar.lz
MultiMC-cc1de6a64991a942fdbbb6cdfe24ea1ee268fffb.tar.xz
MultiMC-cc1de6a64991a942fdbbb6cdfe24ea1ee268fffb.zip
Fix another GroupView bug
Diffstat (limited to 'gui/groupview')
-rw-r--r--gui/groupview/GroupView.cpp12
-rw-r--r--gui/groupview/GroupView.h3
2 files changed, 15 insertions, 0 deletions
diff --git a/gui/groupview/GroupView.cpp b/gui/groupview/GroupView.cpp
index 5f3e3dec..b650efee 100644
--- a/gui/groupview/GroupView.cpp
+++ b/gui/groupview/GroupView.cpp
@@ -45,6 +45,12 @@ GroupView::~GroupView()
m_groups.clear();
}
+void GroupView::setModel(QAbstractItemModel *model)
+{
+ QAbstractItemView::setModel(model);
+ connect(model, &QAbstractItemModel::modelReset, this, &GroupView::modelReset);
+}
+
void GroupView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight,
const QVector<int> &roles)
{
@@ -133,6 +139,12 @@ void GroupView::updateGeometries()
viewport()->update();
}
+void GroupView::modelReset()
+{
+ scheduleDelayedItemsLayout();
+ executeDelayedItemsLayout();
+}
+
bool GroupView::isIndexHidden(const QModelIndex &index) const
{
Group *cat = category(index);
diff --git a/gui/groupview/GroupView.h b/gui/groupview/GroupView.h
index e8f9107c..b3ab5357 100644
--- a/gui/groupview/GroupView.h
+++ b/gui/groupview/GroupView.h
@@ -24,6 +24,8 @@ public:
GroupView(QWidget *parent = 0);
~GroupView();
+ void setModel(QAbstractItemModel *model) override;
+
/// return geometry rectangle occupied by the specified model item
QRect geometryRect(const QModelIndex &index) const;
/// return visual rectangle occupied by the specified model item
@@ -69,6 +71,7 @@ slots:
virtual void rowsInserted(const QModelIndex &parent, int start, int end) override;
virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override;
virtual void updateGeometries() override;
+ void modelReset();
protected:
virtual bool isIndexHidden(const QModelIndex &index) const override;