summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--GroupView.cpp41
-rw-r--r--GroupView.h36
-rw-r--r--InstanceDelegate.cpp2
-rw-r--r--main.h19
4 files changed, 56 insertions, 42 deletions
diff --git a/GroupView.cpp b/GroupView.cpp
index 94682df8..50d19f52 100644
--- a/GroupView.cpp
+++ b/GroupView.cpp
@@ -26,17 +26,17 @@ template <typename T> bool listsIntersect(const QList<T> &l1, const QList<T> t2)
}
GroupView::GroupView(QWidget *parent)
- : QListView(parent), m_leftMargin(5), m_rightMargin(5), m_bottomMargin(5),
+ : QAbstractItemView(parent), m_leftMargin(5), m_rightMargin(5), m_bottomMargin(5),
m_categoryMargin(5) //, m_updatesDisabled(false), m_categoryEditor(0), m_editedCategory(0)
{
- setViewMode(IconMode);
+ // setViewMode(IconMode);
// setMovement(Snap);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
- setWordWrap(true);
+ // setWordWrap(true);
// setDragDropMode(QListView::InternalMove);
setAcceptDrops(true);
- setSpacing(10);
+ // setSpacing(10);
}
GroupView::~GroupView()
@@ -48,49 +48,26 @@ GroupView::~GroupView()
void GroupView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight,
const QVector<int> &roles)
{
- // if (m_updatesDisabled)
- // {
- // return;
- // }
-
- QListView::dataChanged(topLeft, bottomRight, roles);
-
if (roles.contains(CategorizedViewRoles::CategoryRole) || roles.contains(Qt::DisplayRole))
{
updateGeometries();
- update();
}
+ viewport()->update();
}
void GroupView::rowsInserted(const QModelIndex &parent, int start, int end)
{
- // if (m_updatesDisabled)
- // {
- // return;
- // }
-
- QListView::rowsInserted(parent, start, end);
-
updateGeometries();
- update();
+ viewport()->update();
}
void GroupView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
{
- // if (m_updatesDisabled)
- // {
- // return;
- // }
-
- QListView::rowsAboutToBeRemoved(parent, start, end);
-
updateGeometries();
- update();
+ viewport()->update();
}
void GroupView::updateGeometries()
{
- QListView::updateGeometries();
-
int previousScroll = verticalScrollBar()->value();
QMap<QString, Group *> cats;
@@ -145,7 +122,7 @@ void GroupView::updateGeometries()
verticalScrollBar()->setValue(qMin(previousScroll, verticalScrollBar()->maximum()));
- update();
+ viewport()->update();
}
bool GroupView::isIndexHidden(const QModelIndex &index) const
@@ -520,7 +497,7 @@ void GroupView::paintEvent(QPaintEvent *event)
void GroupView::resizeEvent(QResizeEvent *event)
{
- QListView::resizeEvent(event);
+ // QListView::resizeEvent(event);
// if (m_categoryEditor)
// {
diff --git a/GroupView.h b/GroupView.h
index 6d55a462..bf911794 100644
--- a/GroupView.h
+++ b/GroupView.h
@@ -15,7 +15,7 @@ struct CategorizedViewRoles
struct Group;
-class GroupView : public QListView
+class GroupView : public QAbstractItemView
{
Q_OBJECT
@@ -28,6 +28,40 @@ public:
void setSelection(const QRect &rect,
const QItemSelectionModel::SelectionFlags commands) override;
+ /*
+ * BS
+ */
+
+ virtual int horizontalOffset() const override
+ {
+ return 0;
+ }
+
+ virtual int verticalOffset() const override
+ {
+ return 0;
+ }
+
+ virtual void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) override
+ {
+ return;
+ }
+
+ virtual QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
+ override
+ {
+ return QModelIndex();
+ }
+
+ virtual QRegion visualRegionForSelection(const QItemSelection &) const override
+ {
+ return QRegion();
+ }
+
+ /*
+ * End of BS
+ */
+
protected
slots:
void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight,
diff --git a/InstanceDelegate.cpp b/InstanceDelegate.cpp
index 056db99d..944cfd76 100644
--- a/InstanceDelegate.cpp
+++ b/InstanceDelegate.cpp
@@ -103,7 +103,7 @@ void drawProgressOverlay(QPainter *painter, const QStyleOptionViewItemV4 &option
color.setAlphaF(0.70f);
painter->setBrush(color);
painter->setPen(QPen(QBrush(), 0));
- painter->drawPie(option.rect, 90 * 16, -percent * 360 * 60);
+ painter->drawPie(option.rect, 90 * 16, -percent * 360 * 16);
painter->restore();
}
diff --git a/main.h b/main.h
index 47377f7a..6883e98e 100644
--- a/main.h
+++ b/main.h
@@ -30,20 +30,23 @@ public
slots:
void timeout()
{
+ QList<QStandardItem *> toRemove;
for (auto item : m_items)
{
+ int maximum = item->data(CategorizedViewRoles::ProgressMaximumRole).toInt();
int value = item->data(CategorizedViewRoles::ProgressValueRole).toInt();
- value += qrand() % 3;
- if (value >= item->data(CategorizedViewRoles::ProgressMaximumRole).toInt())
- {
- item->setData(item->data(CategorizedViewRoles::ProgressMaximumRole).toInt(),
- CategorizedViewRoles::ProgressValueRole);
- }
- else
+ int newvalue = std::min(value + 3, maximum);
+ item->setData(newvalue, CategorizedViewRoles::ProgressValueRole);
+
+ if(newvalue >= maximum)
{
- item->setData(value, CategorizedViewRoles::ProgressValueRole);
+ toRemove.append(item);
}
}
+ for(auto remove : toRemove)
+ {
+ m_items.removeAll(remove);
+ }
}
private: