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

« back to all changes in this revision

Viewing changes to core/utilities/cameragui/controller/cameracontroller.h

  • Committer: Package Import Robot
  • Author(s): Rohan Garg
  • Date: 2012-11-26 18:24:20 UTC
  • mfrom: (1.9.1) (3.1.23 experimental)
  • Revision ID: package-import@ubuntu.com-20121126182420-qoy6z0nx4ai0wzcl
Tags: 4:3.0.0~beta3-0ubuntu1
* New upstream release
  - Add build-deps :  libhupnp-dev, libqtgstreamer-dev, libmagickcore-dev
* Merge from debian, remaining changes:
  - Make sure libqt4-opengl-dev, libgl1-mesa-dev and libglu1-mesa-dev only
    install on i386,amd64 and powerpc
  - Depend on libtiff-dev instead of libtiff4-dev
  - Drop digikam breaks/replaces kipi-plugins-common since we're past the
    LTS release now
  - digikam to recommend mplayerthumbs | ffmpegthumbs. We currently only
    have latter in the archives, even though former is also supposed to
    be part of kdemultimedia. (LP: #890059)
  - kipi-plugins to recommend www-browser rather than konqueror directly
    since 2.8 no direct usage of konqueror is present in the flickr
    plugin anymore (LP: #1011211)
  - Keep kubuntu_mysqld_executable_name.diff
  - Don't install libkipi translations
  - Keep deps on libcv-dev, libcvaux-dev
  - Keep split packaging of libraries
  - Replace icons from KDE 3 time in debian/xpm.d/*.xpm with the new
    versions (LP: #658047)
* Update debian/not-installed

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@pooh.tam.uiuc.edu>
10
 
 * Copyright (C) 2006-2012 by Gilles Caulier <caulier dot gilles at gmail dot com>
11
 
 * Copyright (C) 2006-2011 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
 
 
45
 
namespace Digikam
46
 
{
47
 
 
48
 
class CameraCommand;
49
 
class RenameResult;
50
 
 
51
 
class CameraController : public QThread
52
 
{
53
 
    Q_OBJECT
54
 
 
55
 
public:
56
 
 
57
 
    CameraController(QWidget* parent, const QString& title, const QString& model,
58
 
                     const QString& port, const QString& path);
59
 
    ~CameraController();
60
 
 
61
 
    bool cameraThumbnailSupport() const;
62
 
    bool cameraDeleteSupport() const;
63
 
    bool cameraUploadSupport() const;
64
 
    bool cameraMkDirSupport() const;
65
 
    bool cameraDelDirSupport() const;
66
 
    bool cameraCaptureImageSupport() const;
67
 
 
68
 
    QString cameraPath() const;
69
 
    QString cameraTitle() const;
70
 
 
71
 
    DKCamera::CameraDriverType cameraDriverType() const;
72
 
 
73
 
    QByteArray cameraMD5ID() const;
74
 
 
75
 
    void capture();
76
 
    void listFolders();
77
 
    void listFiles(const QString& folder, bool useMetadata);
78
 
    void getFreeSpace();
79
 
    void getMetadata(const QString& folder, const QString& file);
80
 
    void getCameraInformation();
81
 
    void getPreview();
82
 
 
83
 
    /** Get thumbnails for a list of camera items plus advanced information from metadata.
84
 
     */
85
 
    void getThumbsInfo(const CamItemInfoList& infoList);
86
 
 
87
 
    void downloadPrep();
88
 
    void download(const DownloadSettings& downloadSettings);
89
 
    void download(const DownloadSettingsList& list);
90
 
    void upload(const QFileInfo& srcFileInfo, const QString& destFile, const QString& destFolder);
91
 
    void deleteFile(const QString& folder, const QString& file);
92
 
    void lockFile(const QString& folder, const QString& file, bool lock);
93
 
    void openFile(const QString& folder, const QString& file);
94
 
 
95
 
    QPixmap mimeTypeThumbnail(const QString& itemName) const;
96
 
 
97
 
Q_SIGNALS:
98
 
 
99
 
    void signalBusy(bool val);
100
 
    void signalLogMsg(const QString& msg, DHistoryView::EntryType type, const QString& folder, const QString& file);
101
 
    void signalCameraInformation(const QString& summary, const QString& manual,
102
 
                                 const QString& about);
103
 
    void signalFreeSpace(unsigned long kBSize, unsigned long kBAvail);
104
 
    void signalPreview(const QImage& preview);
105
 
 
106
 
    void signalConnected(bool val);
107
 
    void signalFolderList(const QStringList& folderList);
108
 
    void signalFileList(const CamItemInfoList& infoList);
109
 
    void signalUploaded(const CamItemInfo& itemInfo);
110
 
    void signalDownloaded(const QString& folder, const QString& file, int status);
111
 
    void signalDownloadComplete(const QString& sourceFolder, const QString& sourceFile,
112
 
                                const QString& destFolder, const QString& destFile);
113
 
    void signalSkipped(const QString& folder, const QString& file);
114
 
    void signalDeleted(const QString& folder, const QString& file, bool status);
115
 
    void signalLocked(const QString& folder, const QString& file, bool status);
116
 
    void signalThumbInfo(const QString& folder, const QString& file, const CamItemInfo& itemInfo, const QImage& thumb);
117
 
    void signalThumbInfoFailed(const QString& folder, const QString& file, const CamItemInfo& itemInfo);
118
 
    void signalMetadata(const QString& folder, const QString& file, const DMetadata& exifData);
119
 
 
120
 
    void signalInternalCheckRename(const QString& folder, const QString& file,
121
 
                                   const QString& destination, const QString& temp,
122
 
                                   const QString& script);
123
 
    void signalInternalDownloadFailed(const QString& folder, const QString& file);
124
 
    void signalInternalUploadFailed(const QString& folder, const QString& file, const QString& src);
125
 
    void signalInternalDeleteFailed(const QString& folder, const QString& file);
126
 
    void signalInternalLockFailed(const QString& folder, const QString& file);
127
 
    void signalInternalOpen(const QString& folder, const QString& file, const QString& dest);
128
 
 
129
 
public Q_SLOTS:
130
 
 
131
 
    void slotCancel();
132
 
    void slotConnect();
133
 
 
134
 
protected:
135
 
 
136
 
    void run();
137
 
    void executeCommand(CameraCommand* cmd);
138
 
 
139
 
private Q_SLOTS:
140
 
 
141
 
    void slotCheckRename(const QString& folder, const QString& file,
142
 
                         const QString& destination, const QString& temp, const QString& script);
143
 
    void slotDownloadFailed(const QString& folder, const QString& file);
144
 
    void slotUploadFailed(const QString& folder, const QString& file, const QString& src);
145
 
    void slotDeleteFailed(const QString& folder, const QString& file);
146
 
    void slotLockFailed(const QString& folder, const QString& file);
147
 
    void slotOpen(const QString& folder, const QString& file, const QString& dest);
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* cmd);
155
 
    bool queueIsEmpty() const;
156
 
 
157
 
private:
158
 
 
159
 
    class CameraControllerPriv;
160
 
    CameraControllerPriv* const d;
161
 
};
162
 
 
163
 
}  // namespace Digikam
164
 
 
165
 
#endif /* CAMERACONTROLLER_H */