Changeset View
Changeset View
Standalone View
Standalone View
containments/desktop/plugins/folder/foldermodel.cpp
Show First 20 Lines • Show All 106 Lines • ▼ Show 20 Line(s) | 96 | FolderModel::FolderModel(QObject *parent) : QSortFilterProxyModel(parent), | |||
---|---|---|---|---|---|
107 | m_sortMode(0), | 107 | m_sortMode(0), | ||
108 | m_sortDesc(false), | 108 | m_sortDesc(false), | ||
109 | m_sortDirsFirst(true), | 109 | m_sortDirsFirst(true), | ||
110 | m_parseDesktopFiles(false), | 110 | m_parseDesktopFiles(false), | ||
111 | m_previews(false), | 111 | m_previews(false), | ||
112 | m_filterMode(NoFilter), | 112 | m_filterMode(NoFilter), | ||
113 | m_filterPatternMatchAll(true) | 113 | m_filterPatternMatchAll(true) | ||
114 | { | 114 | { | ||
115 | //needed to pass the job around with qml | ||||
116 | qmlRegisterType<KIO::DropJob>(); | ||||
115 | DirLister *dirLister = new DirLister(this); | 117 | DirLister *dirLister = new DirLister(this); | ||
116 | dirLister->setDelayedMimeTypes(true); | 118 | dirLister->setDelayedMimeTypes(true); | ||
117 | dirLister->setAutoErrorHandlingEnabled(false, 0); | 119 | dirLister->setAutoErrorHandlingEnabled(false, 0); | ||
118 | connect(dirLister, &DirLister::error, this, &FolderModel::dirListFailed); | 120 | connect(dirLister, &DirLister::error, this, &FolderModel::dirListFailed); | ||
119 | connect(dirLister, &KCoreDirLister::itemsDeleted, this, &FolderModel::evictFromIsDirCache); | 121 | connect(dirLister, &KCoreDirLister::itemsDeleted, this, &FolderModel::evictFromIsDirCache); | ||
120 | connect(dirLister, &KCoreDirLister::started, this, &FolderModel::listingStarted); | 122 | connect(dirLister, &KCoreDirLister::started, this, &FolderModel::listingStarted); | ||
121 | void (KCoreDirLister::*myCompletedSignal)() = &KCoreDirLister::completed; | 123 | void (KCoreDirLister::*myCompletedSignal)() = &KCoreDirLister::completed; | ||
122 | QObject::connect(dirLister, myCompletedSignal, this, &FolderModel::listingCompleted); | 124 | QObject::connect(dirLister, myCompletedSignal, this, &FolderModel::listingCompleted); | ||
▲ Show 20 Lines • Show All 811 Lines • ▼ Show 20 Line(s) | 858 | { | |||
934 | Qt::MouseButtons buttons(dropEvent->property("buttons").toInt()); | 936 | Qt::MouseButtons buttons(dropEvent->property("buttons").toInt()); | ||
935 | Qt::KeyboardModifiers modifiers(dropEvent->property("modifiers").toInt()); | 937 | Qt::KeyboardModifiers modifiers(dropEvent->property("modifiers").toInt()); | ||
936 | 938 | | |||
937 | QDropEvent ev(pos, possibleActions, mimeData, buttons, modifiers); | 939 | QDropEvent ev(pos, possibleActions, mimeData, buttons, modifiers); | ||
938 | ev.setDropAction(proposedAction); | 940 | ev.setDropAction(proposedAction); | ||
939 | 941 | | |||
940 | KIO::DropJob *dropJob = KIO::drop(&ev, dropTargetUrl); | 942 | KIO::DropJob *dropJob = KIO::drop(&ev, dropTargetUrl); | ||
941 | dropJob->ui()->setAutoErrorHandlingEnabled(true); | 943 | dropJob->ui()->setAutoErrorHandlingEnabled(true); | ||
944 | const int x = dropEvent->property("x").toInt(); | ||||
945 | const int y = dropEvent->property("y").toInt(); | ||||
946 | | ||||
947 | connect(dropJob, static_cast<void(KIO::DropJob::*)(const KFileItemListProperties &)>(&KIO::DropJob::popupMenuAboutToShow), this, [this, mimeData, x, y, dropJob](const KFileItemListProperties &) { | ||||
948 | emit popupMenuAboutToShow(dropJob, mimeData, x, y); | ||||
949 | }); | ||||
942 | } | 950 | } | ||
943 | 951 | | |||
944 | void FolderModel::dropCwd(QObject* dropEvent) | 952 | void FolderModel::dropCwd(QObject* dropEvent) | ||
945 | { | 953 | { | ||
946 | QMimeData *mimeData = qobject_cast<QMimeData *>(dropEvent->property("mimeData").value<QObject *>()); | 954 | QMimeData *mimeData = qobject_cast<QMimeData *>(dropEvent->property("mimeData").value<QObject *>()); | ||
947 | 955 | | |||
948 | if (!mimeData) { | 956 | if (!mimeData) { | ||
949 | return; | 957 | return; | ||
▲ Show 20 Lines • Show All 681 Lines • Show Last 20 Lines |