~ubuntu-branches/ubuntu/trusty/digikam/trusty

« back to all changes in this revision

Viewing changes to core/utilities/importui/backend/cameracontroller.h

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2012-09-27 21:41:30 UTC
  • mfrom: (1.2.43)
  • mto: This revision was merged to the branch mainline in revision 86.
  • Revision ID: package-import@ubuntu.com-20120927214130-i8v3ufr21nesp29i
Tags: 4:3.0.0~beta1a-1
* New upstream release

* Fix "wrongly conflicts phonon-backend-vlc" dropped (Closes: #688142)
* debian/watch include download.kde.org

* digikam 3.0.0 uses features from unreleased kdegraphics >=4.10 & ships 
a private version of the kdegraphics libs - this is not the Debian way :-(
* Unsatisfactory Conflicts: libkipi8, libkexiv2-10, libkdcraw20, libksane0
* Suspend digikam-dbg >130Mb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* ============================================================
 
2
 *
 
3
 * This file is a part of digiKam project
 
4
 * http://www.digikam.org
 
5
 *
 
6
 * Date        : 2004-09-17
 
7
 * Description : digital camera controller
 
8
 *
 
9
 * Copyright (C) 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
 
10
 * Copyright (C) 2006-2012 by Gilles Caulier <caulier dot gilles at gmail dot com>
 
11
 * Copyright (C) 2006-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
 
12
 *
 
13
 * This program is free software; you can redistribute it
 
14
 * and/or modify it under the terms of the GNU General
 
15
 * Public License as published by the Free Software Foundation;
 
16
 * either version 2, or (at your option)
 
17
 * any later version.
 
18
 *
 
19
 * This program is distributed in the hope that it will be useful,
 
20
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
21
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
22
 * GNU General Public License for more details.
 
23
 *
 
24
 * ============================================================ */
 
25
 
 
26
#ifndef CAMERACONTROLLER_H
 
27
#define CAMERACONTROLLER_H
 
28
 
 
29
// Qt includes
 
30
 
 
31
#include <QThread>
 
32
#include <QString>
 
33
#include <QFileInfo>
 
34
#include <QCustomEvent>
 
35
#include <QPixmap>
 
36
 
 
37
// Local includes
 
38
 
 
39
#include "downloadsettings.h"
 
40
#include "camiteminfo.h"
 
41
#include "dmetadata.h"
 
42
#include "dkcamera.h"
 
43
#include "dhistoryview.h"
 
44
#include "thumbnailsize.h"
 
45
 
 
46
namespace Digikam
 
47
{
 
48
 
 
49
class CameraCommand;
 
50
class RenameResult;
 
51
 
 
52
class CameraController : public QThread
 
53
{
 
54
    Q_OBJECT
 
55
 
 
56
public:
 
57
 
 
58
    CameraController(QWidget* const parent, const QString& title, const QString& model,
 
59
                     const QString& port, const QString& path);
 
60
    ~CameraController();
 
61
 
 
62
    bool cameraThumbnailSupport() const;
 
63
    bool cameraDeleteSupport() const;
 
64
    bool cameraUploadSupport() const;
 
65
    bool cameraMkDirSupport() const;
 
66
    bool cameraDelDirSupport() const;
 
67
    bool cameraCaptureImageSupport() const;
 
68
 
 
69
    QString cameraPath() const;
 
70
    QString cameraTitle() const;
 
71
 
 
72
    DKCamera::CameraDriverType cameraDriverType() const;
 
73
 
 
74
    QByteArray cameraMD5ID() const;
 
75
 
 
76
    void capture();
 
77
    void listFolders();
 
78
    void listFiles(const QString& folder, bool useMetadata);
 
79
    void getFreeSpace();
 
80
    void getMetadata(const QString& folder, const QString& file);
 
81
    void getCameraInformation();
 
82
    void getPreview();
 
83
 
 
84
    /** Get thumbnails for a list of camera items plus advanced information from metadata.
 
85
     */
 
86
    void getThumbsInfo(const CamItemInfoList& infoList, ThumbnailSize thumbSize);
 
87
 
 
88
    void downloadPrep();
 
89
    void download(const DownloadSettings& downloadSettings);
 
90
    void download(const DownloadSettingsList& list);
 
91
    void upload(const QFileInfo& srcFileInfo, const QString& destFile, const QString& destFolder);
 
92
    void deleteFile(const QString& folder, const QString& file);
 
93
    void lockFile(const QString& folder, const QString& file, bool lock);
 
94
    void openFile(const QString& folder, const QString& file);
 
95
 
 
96
    QPixmap mimeTypeThumbnail(const QString& itemName, int thumbSize) const;
 
97
 
 
98
Q_SIGNALS:
 
99
 
 
100
    void signalBusy(bool val);
 
101
    void signalLogMsg(const QString& msg, DHistoryView::EntryType type, const QString& folder, const QString& file);
 
102
    void signalCameraInformation(const QString& summary, const QString& manual,
 
103
                                 const QString& about);
 
104
    void signalFreeSpace(unsigned long kBSize, unsigned long kBAvail);
 
105
    void signalPreview(const QImage& preview);
 
106
 
 
107
    void signalConnected(bool val);
 
108
    void signalFolderList(const QStringList& folderList);
 
109
    void signalFileList(const CamItemInfoList& infoList);
 
110
    void signalUploaded(const CamItemInfo& itemInfo);
 
111
    void signalDownloaded(const QString& folder, const QString& file, int status);
 
112
    void signalDownloadComplete(const QString& sourceFolder, const QString& sourceFile,
 
113
                                const QString& destFolder, const QString& destFile);
 
114
    void signalFinished();
 
115
    void signalSkipped(const QString& folder, const QString& file);
 
116
    void signalDeleted(const QString& folder, const QString& file, bool status);
 
117
    void signalLocked(const QString& folder, const QString& file, bool status);
 
118
    void signalThumbInfo(const QString& folder, const QString& file, const CamItemInfo& itemInfo, const QImage& thumb);
 
119
    void signalThumbInfoFailed(const QString& folder, const QString& file, const CamItemInfo& itemInfo);
 
120
    void signalMetadata(const QString& folder, const QString& file, const DMetadata& exifData);
 
121
 
 
122
    void signalInternalCheckRename(const QString& folder, const QString& file,
 
123
                                   const QString& destination, const QString& temp,
 
124
                                   const QString& script);
 
125
    void signalInternalDownloadFailed(const QString& folder, const QString& file);
 
126
    void signalInternalUploadFailed(const QString& folder, const QString& file, const QString& src);
 
127
    void signalInternalDeleteFailed(const QString& folder, const QString& file);
 
128
    void signalInternalLockFailed(const QString& folder, const QString& file);
 
129
 
 
130
public Q_SLOTS:
 
131
 
 
132
    void slotCancel();
 
133
    void slotConnect();
 
134
 
 
135
protected:
 
136
 
 
137
    void run();
 
138
    void executeCommand(CameraCommand* const cmd);
 
139
 
 
140
private Q_SLOTS:
 
141
 
 
142
    void slotCheckRename(const QString& folder, const QString& file,
 
143
                         const QString& destination, const QString& temp, const QString& script);
 
144
    void slotDownloadFailed(const QString& folder, const QString& file);
 
145
    void slotUploadFailed(const QString& folder, const QString& file, const QString& src);
 
146
    void slotDeleteFailed(const QString& folder, const QString& file);
 
147
    void slotLockFailed(const QString& folder, const QString& file);
 
148
 
 
149
private:
 
150
 
 
151
    void sendLogMsg(const QString& msg, DHistoryView::EntryType type=DHistoryView::StartingEntry,
 
152
                    const QString& folder=QString(), const QString& file=QString());
 
153
 
 
154
    void addCommand(CameraCommand* const cmd);
 
155
    bool queueIsEmpty() const;
 
156
 
 
157
private:
 
158
 
 
159
    class Private;
 
160
    Private* const d;
 
161
};
 
162
 
 
163
}  // namespace Digikam
 
164
 
 
165
#endif /* CAMERACONTROLLER_H */