Applets
kickoffproxymodel.cpp
Go to the documentation of this file.00001 /* 00002 Copyright 2008 Marco Martin <notmart@gmail.com> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 Boston, MA 02110-1301, USA. 00018 */ 00019 00020 // Own 00021 #include "core/kickoffproxymodel.h" 00022 00023 // Qt 00024 #include <QMimeData> 00025 00026 // KDE 00027 #include <KUrl> 00028 #include <KDebug> 00029 00030 // Local 00031 #include "core/models.h" 00032 00033 using namespace Kickoff; 00034 00035 KickoffProxyModel::KickoffProxyModel(QObject *parent) 00036 : QAbstractProxyModel(parent) 00037 {} 00038 00039 KickoffProxyModel::~KickoffProxyModel() 00040 {} 00041 00042 Qt::ItemFlags KickoffProxyModel::flags(const QModelIndex &index) const 00043 { 00044 Qt::ItemFlags defaultFlags = QAbstractProxyModel::flags(index); 00045 00046 if (index.isValid()) { 00047 return Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | defaultFlags; 00048 } else { 00049 return 0; 00050 } 00051 } 00052 00053 QMimeData *KickoffProxyModel::mimeData(const QModelIndexList &indexes) const 00054 { 00055 KUrl::List urls; 00056 QByteArray itemData; 00057 00058 foreach (const QModelIndex &index, indexes) { 00059 KUrl itemUrl = KUrl(data(index, UrlRole).toString()); 00060 if (itemUrl.isValid()) { 00061 urls << itemUrl; 00062 } 00063 } 00064 00065 QMimeData *mimeData = new QMimeData(); 00066 00067 if (!urls.isEmpty()) { 00068 urls.populateMimeData(mimeData); 00069 } 00070 00071 return mimeData; 00072 } 00073 00074 QStringList KickoffProxyModel::mimeTypes() const 00075 { 00076 QStringList types; 00077 types << "text/uri-list"; 00078 return types; 00079 } 00080 00081 Qt::DropActions KickoffProxyModel::supportedDropActions() const 00082 { 00083 return 0; 00084 } 00085 00086 Qt::DropActions KickoffProxyModel::supportedDragActions() const 00087 { 00088 return Qt::CopyAction; 00089 } 00090 00091 #include "kickoffproxymodel.moc" 00092