~ubuntu-branches/ubuntu/natty/digikam/natty

« back to all changes in this revision

Viewing changes to digikam/ddragobjects.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-12-21 23:19:11 UTC
  • mfrom: (1.2.33 upstream) (3.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20101221231911-z9jip7s5aht1jqn9
Tags: 2:1.7.0-1ubuntu1
* Merge from Debian Experimental. Remaining Ubuntu changes:
  - Export .pot name and copy to plugins in debian/rules
  - Version build-depends on kipi-plugins-dev to ensure build is against the
    same version on all archs
* Drop debian/patches/kubuntu_01_linker.diff, incoporated upstream
* Remove patches directory and unused patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
                     const KUrl::List& kioUrls,
39
39
                     const QList<int>& albumIDs,
40
40
                     const QList<int>& imageIDs)
41
 
         : QMimeData()
 
41
    : QMimeData()
42
42
{
43
43
    // Digikam specific mime data
44
44
    QByteArray  ba;
70
70
    // we do not want to decode text/uri-list with this object,
71
71
    // we only export this data above for dragging to outside digikam.
72
72
    return QStringList() << "digikam/item-ids"
73
 
                         << "digikam/album-ids"
74
 
                         << "digikam/image-ids"
75
 
                         << "digikam/digikamalbums";
 
73
           << "digikam/album-ids"
 
74
           << "digikam/image-ids"
 
75
           << "digikam/digikamalbums";
76
76
}
77
77
 
78
78
bool DItemDrag::canDecode(const QMimeData* e)
99
99
    imageIDs.clear();
100
100
 
101
101
    QByteArray ba = e->data("digikam/item-ids");
 
102
 
102
103
    if (ba.size())
103
104
    {
104
105
        QDataStream ds(ba);
 
106
 
105
107
        if (!ds.atEnd())
106
108
        {
107
109
            ds >> urls;
108
110
        }
109
111
    }
110
112
 
111
 
    if(!urls.isEmpty())
 
113
    if (!urls.isEmpty())
112
114
    {
113
115
        QByteArray albumarray = e->data("digikam/album-ids");
114
116
        QByteArray imagearray = e->data("digikam/image-ids");
117
119
        if (albumarray.size() && imagearray.size() && kioarray.size())
118
120
        {
119
121
            QDataStream dsAlbums(albumarray);
 
122
 
120
123
            if (!dsAlbums.atEnd())
121
124
            {
122
125
                dsAlbums >> albumIDs;
123
126
            }
124
127
 
125
128
            QDataStream dsImages(imagearray);
 
129
 
126
130
            if (!dsImages.atEnd())
127
131
            {
128
132
                dsImages >> imageIDs;
130
134
 
131
135
            KUrl u;
132
136
            QDataStream dsKio(kioarray);
 
137
 
133
138
            if (!dsKio.atEnd())
134
139
            {
135
140
                dsKio >> kioUrls;
145
150
// ------------------------------------------------------------------------
146
151
 
147
152
DTagDrag::DTagDrag(int albumid)
148
 
        : QMimeData()
 
153
    : QMimeData()
149
154
{
150
155
    QByteArray  ba;
151
156
    QDataStream ds(&ba, QIODevice::WriteOnly);
158
163
    return QStringList() << "digikam/tag-id";
159
164
}
160
165
 
161
 
bool DTagDrag::canDecode(const QMimeData *e)
 
166
bool DTagDrag::canDecode(const QMimeData* e)
162
167
{
163
168
    return e->hasFormat("digikam/tag-id");
164
169
}
168
173
    tagID = 0;
169
174
 
170
175
    QByteArray ba = e->data("digikam/tag-id");
 
176
 
171
177
    if (ba.size())
172
178
    {
173
179
        QDataStream ds(ba);
 
180
 
174
181
        if (!ds.atEnd())
175
182
        {
176
183
            ds >> tagID;
185
192
// ------------------------------------------------------------------------
186
193
 
187
194
DAlbumDrag::DAlbumDrag(const KUrl& databaseUrl, int albumid, const KUrl& fileUrl)
188
 
          : QMimeData()
 
195
    : QMimeData()
189
196
{
190
197
    QByteArray  ba;
191
198
    QDataStream ds(&ba, QIODevice::WriteOnly);
199
206
 
200
207
    // commonly accessible mime data, for dragging to outside digikam
201
208
    if (!fileUrl.isEmpty())
 
209
    {
202
210
        fileUrl.populateMimeData(this);
 
211
    }
203
212
}
204
213
 
205
214
QStringList DAlbumDrag::mimeTypes()
206
215
{
207
216
    return QStringList() << "digikam/album-ids"
208
 
                         << "digikam/digikamalbums";
 
217
           << "digikam/digikamalbums";
209
218
}
210
219
 
211
220
bool DAlbumDrag::canDecode(const QMimeData* e)
212
221
{
213
222
    if (e->hasFormat("digikam/item-ids") || e->hasFormat("digikam/image-ids"))
 
223
    {
214
224
        return false;
 
225
    }
 
226
 
215
227
    foreach (const QString& mimeType, mimeTypes())
216
228
    {
217
229
        if (!e->hasFormat(mimeType))
233
245
    if (albumarray.size() && kioarray.size())
234
246
    {
235
247
        QDataStream dsAlbums(albumarray);
 
248
 
236
249
        if (!dsAlbums.atEnd())
237
250
        {
238
251
            QList<int> ids;
242
255
 
243
256
        KUrl u;
244
257
        QDataStream dsKio(kioarray);
 
258
 
245
259
        if (!dsKio.atEnd())
246
260
        {
247
261
            dsKio >> kioUrls;
249
263
 
250
264
        return true;
251
265
    }
 
266
 
252
267
    return false;
253
268
}
254
269
 
255
270
// ------------------------------------------------------------------------
256
271
 
257
272
DTagListDrag::DTagListDrag(const QList<int>& tagIDs)
258
 
            : QMimeData()
 
273
    : QMimeData()
259
274
{
260
275
    QByteArray  ba;
261
276
    QDataStream ds(&ba, QIODevice::WriteOnly);
278
293
    tagIDs.clear();
279
294
 
280
295
    QByteArray ba = e->data("digikam/taglist");
 
296
 
281
297
    if (ba.size())
282
298
    {
283
299
        QDataStream ds(ba);
 
300
 
284
301
        if (!ds.atEnd())
285
302
        {
286
303
            ds >> tagIDs;
295
312
// ------------------------------------------------------------------------
296
313
 
297
314
DCameraItemListDrag::DCameraItemListDrag(const QStringList& cameraItemPaths)
298
 
                   : QMimeData()
 
315
    : QMimeData()
299
316
{
300
317
    QByteArray  ba;
301
318
    QDataStream ds(&ba, QIODevice::WriteOnly);
318
335
    cameraItemPaths.clear();
319
336
 
320
337
    QByteArray ba = e->data("digikam/cameraItemlist");
 
338
 
321
339
    if (ba.size())
322
340
    {
323
341
        QDataStream ds(ba);
 
342
 
324
343
        if (!ds.atEnd())
325
344
        {
326
345
            ds >> cameraItemPaths;
335
354
// ------------------------------------------------------------------------
336
355
 
337
356
DCameraDragObject::DCameraDragObject(const CameraType& ctype)
338
 
                 : QMimeData()
 
357
    : QMimeData()
339
358
{
340
359
    QByteArray  ba;
341
360
    QDataStream ds(&ba, QIODevice::WriteOnly);
360
379
bool DCameraDragObject::decode(const QMimeData* e, CameraType& ctype)
361
380
{
362
381
    QByteArray ba = e->data("camera/unknown");
 
382
 
363
383
    if (ba.size())
364
384
    {
365
385
        int     startingNumber;