mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
Change signature of setVisibleRoles()
Simply use a QList<QByteArray> instead of QHash<QByteArray, int>.
This commit is contained in:
parent
6a75a61671
commit
63e1e3bc14
|
@ -141,10 +141,8 @@ QSizeF KFileItemListView::itemSizeHint(int index) const
|
|||
// For each row exactly one role is shown. Calculate the maximum required width that is necessary
|
||||
// to show all roles without horizontal clipping.
|
||||
qreal maximumRequiredWidth = 0.0;
|
||||
QHashIterator<QByteArray, int> it(visibleRoles());
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
const QByteArray& role = it.key();
|
||||
|
||||
foreach (const QByteArray& role, visibleRoles()) {
|
||||
const QString text = values[role].toString();
|
||||
const qreal requiredWidth = option.fontMetrics.width(text);
|
||||
maximumRequiredWidth = qMax(maximumRequiredWidth, requiredWidth);
|
||||
|
@ -178,13 +176,8 @@ QHash<QByteArray, QSizeF> KFileItemListView::visibleRoleSizes() const
|
|||
|
||||
const int itemCount = model()->count();
|
||||
for (int i = 0; i < itemCount; ++i) {
|
||||
QHashIterator<QByteArray, int> it(visibleRoles());
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
const QByteArray& visibleRole = it.key();
|
||||
|
||||
foreach (const QByteArray& visibleRole, visibleRoles()) {
|
||||
QSizeF maxSize = sizes.value(visibleRole, QSizeF(0, 0));
|
||||
|
||||
const QSizeF itemSize = visibleRoleSizeHint(i, visibleRole);
|
||||
maxSize = maxSize.expandedTo(itemSize);
|
||||
sizes.insert(visibleRole, maxSize);
|
||||
|
@ -274,7 +267,7 @@ void KFileItemListView::onOffsetChanged(qreal current, qreal previous)
|
|||
triggerVisibleIndexRangeUpdate();
|
||||
}
|
||||
|
||||
void KFileItemListView::onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous)
|
||||
void KFileItemListView::onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous)
|
||||
{
|
||||
Q_UNUSED(previous);
|
||||
|
||||
|
@ -283,7 +276,7 @@ void KFileItemListView::onVisibleRolesChanged(const QHash<QByteArray, int>& curr
|
|||
|
||||
// KFileItemModel does not distinct between "visible" and "invisible" roles.
|
||||
// Add all roles that are mandatory for having a working KFileItemListView:
|
||||
QSet<QByteArray> keys = current.keys().toSet();
|
||||
QSet<QByteArray> keys = current.toSet();
|
||||
QSet<QByteArray> roles = keys;
|
||||
roles.insert("iconPixmap");
|
||||
roles.insert("iconName");
|
||||
|
|
|
@ -72,7 +72,7 @@ protected:
|
|||
virtual void onScrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous);
|
||||
virtual void onItemSizeChanged(const QSizeF& current, const QSizeF& previous);
|
||||
virtual void onOffsetChanged(qreal current, qreal previous);
|
||||
virtual void onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
|
||||
virtual void onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
|
||||
virtual void onStyleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
|
||||
virtual void onTransactionBegin();
|
||||
virtual void onTransactionEnd();
|
||||
|
|
|
@ -199,7 +199,7 @@ void KFileItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& current
|
|||
|
||||
QSet<QByteArray> dirtyRoles;
|
||||
if (roles.isEmpty()) {
|
||||
dirtyRoles = visibleRoles().keys().toSet();
|
||||
dirtyRoles = visibleRoles().toSet();
|
||||
dirtyRoles.insert("iconPixmap");
|
||||
dirtyRoles.insert("iconName");
|
||||
} else {
|
||||
|
@ -213,33 +213,12 @@ void KFileItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& current
|
|||
}
|
||||
}
|
||||
|
||||
void KFileItemListWidget::visibleRolesChanged(const QHash<QByteArray, int>& current,
|
||||
const QHash<QByteArray, int>& previous)
|
||||
void KFileItemListWidget::visibleRolesChanged(const QList<QByteArray>& current,
|
||||
const QList<QByteArray>& previous)
|
||||
{
|
||||
KItemListWidget::visibleRolesChanged(current, previous);
|
||||
m_sortedVisibleRoles = current;
|
||||
m_dirtyLayout = true;
|
||||
|
||||
// Cache the roles sorted into m_sortedVisibleRoles:
|
||||
const int visibleRolesCount = current.count();
|
||||
m_sortedVisibleRoles.clear();
|
||||
m_sortedVisibleRoles.reserve(visibleRolesCount);
|
||||
for (int i = 0; i < visibleRolesCount; ++i) {
|
||||
m_sortedVisibleRoles.append(QByteArray());
|
||||
}
|
||||
|
||||
QHashIterator<QByteArray, int> it(current);
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
|
||||
const int index = it.value();
|
||||
if (index < 0 || index >= visibleRolesCount || !m_sortedVisibleRoles.at(index).isEmpty()) {
|
||||
kWarning() << "The visible roles have an invalid sort order.";
|
||||
break;
|
||||
}
|
||||
|
||||
const QByteArray& role = it.key();
|
||||
m_sortedVisibleRoles[index] = role;
|
||||
}
|
||||
}
|
||||
|
||||
void KFileItemListWidget::visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current,
|
||||
|
|
|
@ -72,7 +72,7 @@ protected:
|
|||
QPixmap overlay() const;
|
||||
|
||||
virtual void dataChanged(const QHash<QByteArray, QVariant>& current, const QSet<QByteArray>& roles = QSet<QByteArray>());
|
||||
virtual void visibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
|
||||
virtual void visibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
|
||||
virtual void visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current, const QHash<QByteArray, QSizeF>& previous);
|
||||
virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
|
||||
virtual void hoveredChanged(bool hovered);
|
||||
|
|
|
@ -180,9 +180,9 @@ qreal KItemListView::maximumOffset() const
|
|||
return m_layouter->maximumOffset();
|
||||
}
|
||||
|
||||
void KItemListView::setVisibleRoles(const QHash<QByteArray, int>& roles)
|
||||
void KItemListView::setVisibleRoles(const QList<QByteArray>& roles)
|
||||
{
|
||||
const QHash<QByteArray, int> previousRoles = m_visibleRoles;
|
||||
const QList<QByteArray> previousRoles = m_visibleRoles;
|
||||
m_visibleRoles = roles;
|
||||
|
||||
QHashIterator<int, KItemListWidget*> it(m_visibleItems);
|
||||
|
@ -201,7 +201,7 @@ void KItemListView::setVisibleRoles(const QHash<QByteArray, int>& roles)
|
|||
updateLayout();
|
||||
}
|
||||
|
||||
QHash<QByteArray, int> KItemListView::visibleRoles() const
|
||||
QList<QByteArray> KItemListView::visibleRoles() const
|
||||
{
|
||||
return m_visibleRoles;
|
||||
}
|
||||
|
@ -476,7 +476,7 @@ void KItemListView::onOffsetChanged(qreal current, qreal previous)
|
|||
Q_UNUSED(previous);
|
||||
}
|
||||
|
||||
void KItemListView::onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous)
|
||||
void KItemListView::onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous)
|
||||
{
|
||||
Q_UNUSED(current);
|
||||
Q_UNUSED(previous);
|
||||
|
|
|
@ -83,12 +83,8 @@ public:
|
|||
|
||||
qreal maximumOffset() const;
|
||||
|
||||
/**
|
||||
* Sets the visible roles to \p roles. The integer-value defines
|
||||
* the order of the visible role: Smaller values are ordered first.
|
||||
*/
|
||||
void setVisibleRoles(const QHash<QByteArray, int>& roles);
|
||||
QHash<QByteArray, int> visibleRoles() const;
|
||||
void setVisibleRoles(const QList<QByteArray>& roles);
|
||||
QList<QByteArray> visibleRoles() const;
|
||||
|
||||
/**
|
||||
* If set to true an automatic scrolling is done as soon as the
|
||||
|
@ -198,7 +194,7 @@ protected:
|
|||
virtual void onScrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous);
|
||||
virtual void onItemSizeChanged(const QSizeF& current, const QSizeF& previous);
|
||||
virtual void onOffsetChanged(qreal current, qreal previous);
|
||||
virtual void onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
|
||||
virtual void onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
|
||||
virtual void onStyleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
|
||||
|
||||
virtual void onTransactionBegin();
|
||||
|
@ -327,7 +323,7 @@ private:
|
|||
QSizeF m_itemSize;
|
||||
KItemListController* m_controller;
|
||||
KItemModelBase* m_model;
|
||||
QHash<QByteArray, int> m_visibleRoles;
|
||||
QList<QByteArray> m_visibleRoles;
|
||||
QHash<QByteArray, QSizeF> m_visibleRolesSizes;
|
||||
KItemListWidgetCreatorBase* m_widgetCreator;
|
||||
KItemListGroupHeaderCreatorBase* m_groupHeaderCreator;
|
||||
|
|
|
@ -141,14 +141,14 @@ void KItemListWidget::paint(QPainter* painter, const QStyleOptionGraphicsItem* o
|
|||
painter->setOpacity(opacity);
|
||||
}
|
||||
|
||||
void KItemListWidget::setVisibleRoles(const QHash<QByteArray, int>& roles)
|
||||
void KItemListWidget::setVisibleRoles(const QList<QByteArray>& roles)
|
||||
{
|
||||
const QHash<QByteArray, int> previousRoles = m_visibleRoles;
|
||||
const QList<QByteArray> previousRoles = m_visibleRoles;
|
||||
m_visibleRoles = roles;
|
||||
visibleRolesChanged(roles, previousRoles);
|
||||
}
|
||||
|
||||
QHash<QByteArray, int> KItemListWidget::visibleRoles() const
|
||||
QList<QByteArray> KItemListWidget::visibleRoles() const
|
||||
{
|
||||
return m_visibleRoles;
|
||||
}
|
||||
|
@ -269,8 +269,8 @@ void KItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& current,
|
|||
update();
|
||||
}
|
||||
|
||||
void KItemListWidget::visibleRolesChanged(const QHash<QByteArray, int>& current,
|
||||
const QHash<QByteArray, int>& previous)
|
||||
void KItemListWidget::visibleRolesChanged(const QList<QByteArray>& current,
|
||||
const QList<QByteArray>& previous)
|
||||
{
|
||||
Q_UNUSED(current);
|
||||
Q_UNUSED(previous);
|
||||
|
|
|
@ -59,12 +59,8 @@ public:
|
|||
*/
|
||||
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
|
||||
|
||||
/**
|
||||
* Sets the visible roles to \p roles. The integer-value defines
|
||||
* the order of the visible role: Smaller values are ordered first.
|
||||
*/
|
||||
void setVisibleRoles(const QHash<QByteArray, int>& roles);
|
||||
QHash<QByteArray, int> visibleRoles() const;
|
||||
void setVisibleRoles(const QList<QByteArray>& roles);
|
||||
QList<QByteArray> visibleRoles() const;
|
||||
|
||||
void setVisibleRolesSizes(const QHash<QByteArray, QSizeF> rolesSizes);
|
||||
QHash<QByteArray, QSizeF> visibleRolesSizes() const;
|
||||
|
@ -115,7 +111,7 @@ public:
|
|||
|
||||
protected:
|
||||
virtual void dataChanged(const QHash<QByteArray, QVariant>& current, const QSet<QByteArray>& roles = QSet<QByteArray>());
|
||||
virtual void visibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
|
||||
virtual void visibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
|
||||
virtual void visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current, const QHash<QByteArray, QSizeF>& previous);
|
||||
virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
|
||||
virtual void currentChanged(bool current);
|
||||
|
@ -143,7 +139,7 @@ private:
|
|||
bool m_current;
|
||||
bool m_hovered;
|
||||
QHash<QByteArray, QVariant> m_data;
|
||||
QHash<QByteArray, int> m_visibleRoles;
|
||||
QList<QByteArray> m_visibleRoles;
|
||||
QHash<QByteArray, QSizeF> m_visibleRolesSizes;
|
||||
KItemListStyleOption m_styleOption;
|
||||
|
||||
|
|
|
@ -126,13 +126,13 @@ bool DolphinItemListContainer::previewsShown() const
|
|||
return m_fileItemListView->previewsShown();
|
||||
}
|
||||
|
||||
void DolphinItemListContainer::setVisibleRoles(const QHash<QByteArray, int>& roles)
|
||||
void DolphinItemListContainer::setVisibleRoles(const QList<QByteArray>& roles)
|
||||
{
|
||||
m_fileItemListView->setVisibleRoles(roles);
|
||||
updateGridSize();
|
||||
}
|
||||
|
||||
QHash<QByteArray, int> DolphinItemListContainer::visibleRoles() const
|
||||
QList<QByteArray> DolphinItemListContainer::visibleRoles() const
|
||||
{
|
||||
return m_fileItemListView->visibleRoles();
|
||||
}
|
||||
|
|
|
@ -51,12 +51,8 @@ public:
|
|||
void setPreviewsShown(bool show);
|
||||
bool previewsShown() const;
|
||||
|
||||
/**
|
||||
* Sets the visible roles to \p roles. The integer-value defines
|
||||
* the order of the visible role: Smaller values are ordered first.
|
||||
*/
|
||||
void setVisibleRoles(const QHash<QByteArray, int>& roles);
|
||||
QHash<QByteArray, int> visibleRoles() const;
|
||||
void setVisibleRoles(const QList<QByteArray>& roles);
|
||||
QList<QByteArray> visibleRoles() const;
|
||||
|
||||
void setZoomLevel(int level);
|
||||
int zoomLevel() const;
|
||||
|
|
|
@ -163,9 +163,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) :
|
|||
connect(m_dirLister, SIGNAL(itemsDeleted(KFileItemList)), this, SIGNAL(itemCountChanged()));
|
||||
|
||||
m_container = new DolphinItemListContainer(m_dirLister, this);
|
||||
QHash<QByteArray, int> visibleRoles;
|
||||
visibleRoles.insert("name", 0);
|
||||
m_container->setVisibleRoles(visibleRoles);
|
||||
m_container->setVisibleRoles(QList<QByteArray>() << "name");
|
||||
|
||||
KItemListController* controller = m_container->controller();
|
||||
controller->setSelectionBehavior(KItemListController::MultiSelection);
|
||||
|
@ -1194,13 +1192,12 @@ void DolphinView::applyAdditionalInfoListToView()
|
|||
{
|
||||
const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
|
||||
|
||||
QHash<QByteArray, int> visibleRoles;
|
||||
visibleRoles.insert("name", 0);
|
||||
QList<QByteArray> visibleRoles;
|
||||
visibleRoles.reserve(m_additionalInfoList.count() + 1);
|
||||
visibleRoles.append("name");
|
||||
|
||||
int index = 1;
|
||||
foreach (AdditionalInfo info, m_additionalInfoList) {
|
||||
visibleRoles.insert(infoAccessor.role(info), index);
|
||||
++index;
|
||||
visibleRoles.append(infoAccessor.role(info));
|
||||
}
|
||||
|
||||
m_container->setVisibleRoles(visibleRoles);
|
||||
|
|
Loading…
Reference in a new issue