Small tweaks
This commit is contained in:
parent
179451d591
commit
b2bf50a6d7
@ -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)
|
||||
// {
|
||||
|
36
GroupView.h
36
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,
|
||||
|
@ -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();
|
||||
}
|
||||
|
19
main.h
19
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())
|
||||
int newvalue = std::min(value + 3, maximum);
|
||||
item->setData(newvalue, CategorizedViewRoles::ProgressValueRole);
|
||||
|
||||
if(newvalue >= maximum)
|
||||
{
|
||||
item->setData(item->data(CategorizedViewRoles::ProgressMaximumRole).toInt(),
|
||||
CategorizedViewRoles::ProgressValueRole);
|
||||
}
|
||||
else
|
||||
{
|
||||
item->setData(value, CategorizedViewRoles::ProgressValueRole);
|
||||
toRemove.append(item);
|
||||
}
|
||||
}
|
||||
for(auto remove : toRemove)
|
||||
{
|
||||
m_items.removeAll(remove);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user