~ubuntu-branches/debian/sid/kde-baseapps/sid

« back to all changes in this revision

Viewing changes to dolphin/src/views/draganddrophelper.h

  • Committer: Package Import Robot
  • Author(s): Modestas Vainius, Eshat Cakar, Pino Toscano
  • Date: 2012-06-09 22:18:08 UTC
  • mfrom: (4.2.1) (6.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20120609221808-h1l0ekd5qmb8nefr
Tags: 4:4.8.4-1
* New upstream release.

[ Eshat Cakar ]
* Add watch file.
* Bump kde-sc-dev-latest build dependency to version 4:4.8.4.
* Update installed files.

[ Pino Toscano ]
* Move files of the konqueror documentation from kde-baseapps-data to
  konqueror itself.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/***************************************************************************
2
 
 *   Copyright (C) 2007 by Peter Penz <peter.penz19@gmail.com>             *
 
2
 *   Copyright (C) 2007-2011 by Peter Penz <peter.penz19@gmail.com>        *
3
3
 *   Copyright (C) 2007 by David Faure <faure@kde.org>                     *
4
4
 *                                                                         *
5
5
 *   This program is free software; you can redistribute it and/or modify  *
22
22
#define DRAGANDDROPHELPER_H
23
23
 
24
24
#include "libdolphin_export.h"
25
 
#include <QObject>
26
 
#include <QPixmap>
27
 
 
28
 
class DolphinViewController;
 
25
 
 
26
#include <QString>
 
27
 
29
28
class KFileItem;
30
29
class KUrl;
31
30
class QDropEvent;
32
 
class QAbstractItemView;
33
 
class QMimeData;
34
31
class QWidget;
35
32
 
36
 
/**
37
 
 * @brief Helper class for having a common drag and drop behavior.
38
 
 *
39
 
 * The class is used by DolphinIconsView, DolphinDetailsView,
40
 
 * DolphinColumnView and PanelTreeView to have a consistent
41
 
 * drag and drop behavior between all views.
42
 
 */
43
 
class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper : public QObject
 
33
class LIBDOLPHINPRIVATE_EXPORT DragAndDropHelper
44
34
{
45
 
    Q_OBJECT
46
 
 
47
35
public:
48
 
    static DragAndDropHelper& instance();
49
 
 
50
 
    /**
51
 
     * Creates a drag object for the view \a itemView for all selected items.
52
 
     */
53
 
    void startDrag(QAbstractItemView* itemView,
54
 
                   Qt::DropActions supportedActions,
55
 
                   DolphinViewController* dolphinViewController = 0);
56
 
 
57
 
    /**
58
 
     * Returns true if and only if the view \a itemView was the last view to
59
 
     * be passed to startDrag(...), and that drag is still in progress.
60
 
     */
61
 
    bool isDragSource(QAbstractItemView* itemView) const;
62
 
 
63
 
    /**
64
 
     * Handles the dropping of URLs to the given
65
 
     * destination. A context menu with the options
66
 
     * 'Move Here', 'Copy Here', 'Link Here' and
67
 
     * 'Cancel' is offered to the user.
68
 
     * @param destItem  Item of the destination (can be null, see KFileItem::isNull()).
69
 
     * @param destPath  Path of the destination.
 
36
    /**
 
37
     * Handles the dropping of URLs to the given destination. A context menu
 
38
     * with the options 'Move Here', 'Copy Here', 'Link Here' and 'Cancel' is
 
39
     * offered to the user. The drag destination must represent a directory or
 
40
     * a desktop-file, otherwise the dropping gets ignored.
 
41
     *
 
42
     * @param destItem  Item of the destination. Can be 0 (KFileItem::isNull()) if
 
43
     *                  no file-item is available for the destination. In this case
 
44
     *                  destUrl is used as fallback. For performance reasons it is
 
45
     *                  recommended to pass a file-item if available.
 
46
     * @param destUrl   URL of the item destination. Is used only if destItem::isNull()
 
47
     *                  is true.
70
48
     * @param event     Drop event.
71
 
     * @param widget    Source widget where the dragging has been started.
72
 
     */
73
 
    void dropUrls(const KFileItem& destItem,
74
 
                  const KUrl& destPath,
75
 
                  QDropEvent* event,
76
 
                  QWidget* widget);
77
 
signals:
78
 
    void errorMessage(const QString& msg);
79
 
 
80
 
private:
81
 
    DragAndDropHelper();
82
 
 
83
 
    /**
84
 
     * Creates a pixmap the contains the all icons of the items
85
 
     * that are dragged.
86
 
     */
87
 
    QPixmap createDragPixmap(QAbstractItemView* itemView) const;
88
 
 
89
 
    // The last view passed in startDrag(...), or 0 if
90
 
    // no startDrag(...) initiated drag is in progress.
91
 
    QAbstractItemView *m_dragSource;
92
 
 
93
 
    friend class DragAndDropHelperSingleton;
 
49
     * @return          Error message intended to be shown for users if dropping is not
 
50
     *                  possible. If an empty string is returned, the dropping has been
 
51
     *                  successful.
 
52
     */
 
53
    static QString dropUrls(const KFileItem& destItem,
 
54
                            const KUrl& destUrl,
 
55
                            QDropEvent* event);
94
56
};
95
57
 
96
58
#endif