void IconManager::addToPreviewQueue(const KFileItem& item, const QPixmap& pixmap)
{
- Preview preview;
- preview.item = item;
+ ItemInfo preview;
+ preview.url = item.url();
preview.pixmap = pixmap;
m_previews.append(preview);
}
{
// restore the icons of all previously selected items to the
// original state...
- foreach (const CutItem &cutItem, m_cutItemsCache) {
+ foreach (const ItemInfo& cutItem, m_cutItemsCache) {
const QModelIndex index = m_dolphinModel->indexForUrl(cutItem.url);
if (index.isValid()) {
m_dolphinModel->setData(index, QIcon(cutItem.pixmap), Qt::DecorationRole);
// of the view would be triggered for each single preview.
int dispatchCount = 30;
- if (dispatchCount > m_previews.count()) {
- dispatchCount = m_previews.count();
+ if (dispatchCount > previewsCount) {
+ dispatchCount = previewsCount;
}
for (int i = 0; i < dispatchCount; ++i) {
- const Preview& preview = m_previews.first();
- replaceIcon(preview.item, preview.pixmap);
+ const ItemInfo& preview = m_previews.first();
+ replaceIcon(preview.url, preview.pixmap);
m_previews.pop_front();
}
}
}
-void IconManager::replaceIcon(const KFileItem& item, const QPixmap& pixmap)
+void IconManager::replaceIcon(const KUrl& url, const QPixmap& pixmap)
{
- Q_ASSERT(!item.isNull());
+ Q_ASSERT(url.isValid());
if (!m_showPreview) {
// the preview has been canceled in the meantime
return;
KDirLister* dirLister = m_dolphinModel->dirLister();
bool isOldPreview = true;
const KUrl::List dirs = dirLister->directories();
- const QString itemDir = item.url().directory();
- foreach (const KUrl &url, dirs) {
+ const QString itemDir = url.directory();
+ foreach (const KUrl& url, dirs) {
if (url.path() == itemDir) {
isOldPreview = false;
break;
return;
}
- const QModelIndex idx = m_dolphinModel->indexForItem(item);
+ const QModelIndex idx = m_dolphinModel->indexForUrl(url);
if (idx.isValid() && (idx.column() == 0)) {
QPixmap icon = pixmap;
+ const KFileItem item = m_dolphinModel->itemForIndex(idx);
const QString mimeType = item.mimetype();
const QString mimeTypeGroup = mimeType.left(mimeType.indexOf('/'));
if ((mimeTypeGroup != "image") || !applyImageFrame(icon)) {
const QMimeData* mimeData = QApplication::clipboard()->mimeData();
const KUrl::List cutUrls = KUrl::List::fromMimeData(mimeData);
- const KUrl& itemUrl = item.url();
- foreach (const KUrl &url, cutUrls) {
+ const KUrl itemUrl = item.url();
+ foreach (const KUrl& url, cutUrls) {
if (url == itemUrl) {
return true;
}
KFileItemList items;
KDirLister* dirLister = m_dolphinModel->dirLister();
const KUrl::List dirs = dirLister->directories();
- foreach (const KUrl &url, dirs) {
+ foreach (const KUrl& url, dirs) {
items << dirLister->itemsForDir(url);
}
- foreach (const KFileItem &item, items) {
+ foreach (const KFileItem& item, items) {
if (isCutItem(item)) {
const QModelIndex index = m_dolphinModel->indexForItem(item);
const QVariant value = m_dolphinModel->data(index, Qt::DecorationRole);
// remember current pixmap for the item to be able
// to restore it when other items get cut
- CutItem cutItem;
+ ItemInfo cutItem;
cutItem.url = item.url();
cutItem.pixmap = pixmap;
m_cutItemsCache.append(cutItem);
private:
/**
- * Replaces the icon of the item \a item by the preview pixmap
+ * Replaces the icon of the item with the \a url by the preview pixmap
* \a pixmap.
*/
- void replaceIcon(const KFileItem& item, const QPixmap& pixmap);
+ void replaceIcon(const KUrl& url, const QPixmap& pixmap);
/**
* Returns true, if the item \a item has been cut into
private:
/**
- * Remembers the original pixmap for an item before
- * the cut effect is applied.
+ * Remembers the pixmap for an item specified by an URL.
*/
- struct CutItem
+ struct ItemInfo
{
KUrl url;
QPixmap pixmap;
};
- /**
- * Remembers the received preview pixmap for an item.
- */
- struct Preview
- {
- KFileItem item;
- QPixmap pixmap;
- };
-
bool m_showPreview;
QAbstractItemView* m_view;
DolphinModel* m_dolphinModel;
DolphinSortFilterProxyModel* m_proxyModel;
- QList<CutItem> m_cutItemsCache;
- QList<Preview> m_previews;
+ QList<ItemInfo> m_cutItemsCache;
+ QList<ItemInfo> m_previews;
};
inline bool IconManager::showPreview() const