mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Merge remote-tracking branch 'origin/KDE/4.10'
Conflicts: plasma/applets/folderview/folderview.cpp CCMAIL: ignat.semenov@blue-systems.com @Ignat: We've been following a merge-based approach in kde-baseapps for quite some time now, see http://lists.kde.org/?t=134744909400005&r=1&w=1 It would be nice if you could merge KDE/4.10 into master after any non-trivial changes in folderview to prevent that others have to figure out how to resolve the merge conflicts. Thanks!
This commit is contained in:
commit
7f381a34cb
|
@ -323,6 +323,7 @@ void KFileItemListView::updateVisibleIndexRange()
|
|||
|
||||
const int index = firstVisibleIndex();
|
||||
const int count = lastVisibleIndex() - index + 1;
|
||||
m_modelRolesUpdater->setMaximumVisibleItems(maximumVisibleItems());
|
||||
m_modelRolesUpdater->setVisibleIndexRange(index, count);
|
||||
|
||||
if (m_updateIconSizeTimer->isActive()) {
|
||||
|
|
|
@ -79,6 +79,7 @@ KFileItemModelRolesUpdater::KFileItemModelRolesUpdater(KFileItemModel* model, QO
|
|||
m_iconSize(),
|
||||
m_firstVisibleIndex(0),
|
||||
m_lastVisibleIndex(-1),
|
||||
m_maximumVisibleItems(100),
|
||||
m_roles(),
|
||||
m_enabledPlugins(),
|
||||
m_pendingVisibleItems(),
|
||||
|
@ -178,6 +179,11 @@ void KFileItemModelRolesUpdater::setVisibleIndexRange(int index, int count)
|
|||
}
|
||||
}
|
||||
|
||||
void KFileItemModelRolesUpdater::setMaximumVisibleItems(int count)
|
||||
{
|
||||
m_maximumVisibleItems = count;
|
||||
}
|
||||
|
||||
void KFileItemModelRolesUpdater::setPreviewsShown(bool show)
|
||||
{
|
||||
if (show == m_previewShown) {
|
||||
|
@ -670,7 +676,16 @@ void KFileItemModelRolesUpdater::startUpdating(const KItemRangeList& itemRanges)
|
|||
const int lastIndex = range.index + range.count - 1;
|
||||
for (int i = range.index; i <= lastIndex; ++i) {
|
||||
const KFileItem item = m_model->fileItem(i);
|
||||
if (!hasValidIndexRange || (i >= m_firstVisibleIndex && i <= m_lastVisibleIndex)) {
|
||||
bool visible;
|
||||
if (hasValidIndexRange) {
|
||||
visible = (i >= m_firstVisibleIndex && i <= m_lastVisibleIndex);
|
||||
} else {
|
||||
// If the view has not informed us about the visible range yet,
|
||||
// just assume that the first items are visible.
|
||||
visible = (i < m_maximumVisibleItems);
|
||||
}
|
||||
|
||||
if (visible) {
|
||||
m_pendingVisibleItems.insert(item);
|
||||
} else {
|
||||
m_pendingInvisibleItems.insert(item);
|
||||
|
|
|
@ -77,6 +77,8 @@ public:
|
|||
*/
|
||||
void setVisibleIndexRange(int index, int count);
|
||||
|
||||
void setMaximumVisibleItems(int count);
|
||||
|
||||
/**
|
||||
* If \a show is set to true, the "iconPixmap" role will be filled with a preview
|
||||
* of the file. If \a show is false the MIME type icon will be used for the "iconPixmap"
|
||||
|
@ -254,6 +256,7 @@ private:
|
|||
QSize m_iconSize;
|
||||
int m_firstVisibleIndex;
|
||||
int m_lastVisibleIndex;
|
||||
int m_maximumVisibleItems;
|
||||
QSet<QByteArray> m_roles;
|
||||
QSet<QByteArray> m_resolvableRoles;
|
||||
QStringList m_enabledPlugins;
|
||||
|
|
|
@ -208,6 +208,11 @@ qreal KItemListView::maximumItemOffset() const
|
|||
return m_layouter->maximumItemOffset();
|
||||
}
|
||||
|
||||
int KItemListView::maximumVisibleItems() const
|
||||
{
|
||||
return m_layouter->maximumVisibleItems();
|
||||
}
|
||||
|
||||
void KItemListView::setVisibleRoles(const QList<QByteArray>& roles)
|
||||
{
|
||||
const QList<QByteArray> previousRoles = m_visibleRoles;
|
||||
|
@ -1142,7 +1147,10 @@ void KItemListView::slotItemsRemoved(const KItemRangeList& itemRanges)
|
|||
// Important: Don't read any m_layouter-property inside the for-loop in case if
|
||||
// multiple ranges are given! m_layouter accesses m_sizeHintResolver which is
|
||||
// updated in each loop-cycle and has only a consistent state after the loop.
|
||||
Q_ASSERT(m_layouter->isDirty());
|
||||
// TODO: This assert can be hit when filtering in Icons and Compact view,
|
||||
// see https://bugs.kde.org/show_bug.cgi?id=317827 comments 2 and 3.
|
||||
// We should try to figure out if the assert is wrong or if there is a bug in the code.
|
||||
//Q_ASSERT(m_layouter->isDirty());
|
||||
#endif
|
||||
m_endTransactionAnimationHint = NoAnimation;
|
||||
endTransaction();
|
||||
|
|
|
@ -92,6 +92,8 @@ public:
|
|||
|
||||
qreal maximumItemOffset() const;
|
||||
|
||||
int maximumVisibleItems() const;
|
||||
|
||||
void setVisibleRoles(const QList<QByteArray>& roles);
|
||||
QList<QByteArray> visibleRoles() const;
|
||||
|
||||
|
|
|
@ -242,9 +242,15 @@ QRect KItemListViewAccessible::rect(int child) const
|
|||
if (!view()->isVisible()) {
|
||||
return QRect();
|
||||
}
|
||||
const QPoint origin = view()->scene()->views()[0]->mapToGlobal(QPoint(0, 0));
|
||||
const QRect viewRect = view()->geometry().toRect();
|
||||
return viewRect.translated(origin);
|
||||
|
||||
const QGraphicsScene* scene = view()->scene();
|
||||
if (scene) {
|
||||
const QPoint origin = scene->views()[0]->mapToGlobal(QPoint(0, 0));
|
||||
const QRect viewRect = view()->geometry().toRect();
|
||||
return viewRect.translated(origin);
|
||||
} else {
|
||||
return QRect();
|
||||
}
|
||||
}
|
||||
|
||||
int KItemListViewAccessible::navigate(RelationFlag relation, int index, QAccessibleInterface** interface) const
|
||||
|
|
|
@ -32,6 +32,7 @@ KItemListRoleEditor::KItemListRoleEditor(QWidget *parent) :
|
|||
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
setAcceptRichText(false);
|
||||
enableFindReplace(false);
|
||||
document()->setDocumentMargin(0);
|
||||
|
||||
if (parent) {
|
||||
|
|
Loading…
Reference in a new issue