Digikam/GSoC2012/CameraUserInterfaceRevamp/Implementation: Difference between revisions
Islam Wazery (talk | contribs) mNo edit summary |
Islam Wazery (talk | contribs) mNo edit summary |
||
Line 15: | Line 15: | ||
Holds the information for a single camera item "Photo, Video, Audio, ..." | Holds the information for a single camera item "Photo, Video, Audio, ..." | ||
== Controller Folder == | == Controller Folder == | ||
Line 22: | Line 20: | ||
Is responsible for doing all the import interface jobs (camera commands) like listing files/folders, capturing photos, get metadata & free space, get thumbnails, download photos, etc. It should be modified to communicate with the import models in a similar manner that AlbumManager communicates with album models. | Is responsible for doing all the import interface jobs (camera commands) like listing files/folders, capturing photos, get metadata & free space, get thumbnails, download photos, etc. It should be modified to communicate with the import models in a similar manner that AlbumManager communicates with album models. | ||
=== CameraHistoryUpdater === | === CameraHistoryUpdater === | ||
Is responsible for updating the history of the jobs done by the interface. | Is responsible for updating the history of the jobs done by the interface. | ||
Line 29: | Line 26: | ||
It is the settings in the right sidebar of the interface. There is no need to change it. | It is the settings in the right sidebar of the interface. There is no need to change it. | ||
== Dialogs Folder == | == Dialogs Folder == | ||
Contains all the dialogs for the import interface, there is no need to change it, just move it to another suitable directory. | Contains all the dialogs for the import interface, there is no need to change it, just move it to another suitable directory. | ||
== Main Folder == | == Main Folder == | ||
Contains the main interface class, should be revamped with the new changes and moved to a suitable directory. | Contains the main interface class, should be revamped with the new changes and moved to a suitable directory. | ||
== Widgets Folder == | == Widgets Folder == | ||
For now no change in it, just move it to new directory. | For now no change in it, just move it to a new directory. | ||
' | == Backend == | ||
I am thinking of keeping the controller classes and make them communicates with the models, maybe I will add some features to them, but not now. About the camera thumbs controller I don't know whether to make it communicates with the model to to give it the thumbs info, or replace it with a dedicated model for thumbnail handling? | |||
= Models = | |||
== ImportImageModel == | |||
The base model to list images from the backends, it is of base type QAbstractListModel, it communicates with the camera controller and gets populated with item infos from it, | |||
== Sorting == | |||
== ImageFilterModel == | |||
= The New Structure = | = The New Structure = | ||
|- utilities | |||
|- importui | |||
|- backend | |||
|- cameracontroller.h,cpp | |||
|- camerahistoryupdater.h,cpp | |||
|- camerathumbsctrl.h,cpp | |||
|- downloadsettings.h,cpp | |||
|- camiteminfo.h,cpp | |||
|- dkcamera.h,cpp | |||
|- gpcamera.h,cpp | |||
|- gpconfigdlg.h,cpp | |||
|- umscamera.h,cpp | |||
|- main | |||
|- importui.h,cpp | |||
|- importui_p.h | |||
|- importui.rc | |||
|- models | |||
|- ImportImageModel.h,cpp | |||
|- ImageFilterModel.h,cpp | |||
|- views | |||
|- not now! | |||
|- widgets | |||
|- not now! | |||
|- dialogs | |||
|- importfolderdialog.h,cpp | |||
|- importinfodialog.h,cpp | |||
|- importmessagebox.h,cpp | |||
|- capturedlg.h,cpp | |||
= Issues = | = Issues = | ||
# To implement the tags, labels features, CamItemInfo needs to have those similar functionalities of the ImageInfo. | # To implement the tags, labels features, CamItemInfo needs to have those similar functionalities of the ImageInfo. | ||
# Backend code should get some features like updating the listed files after removing/renaming any of them in the backend. | # Backend code should get some features like updating the listed files after removing/renaming any of them in the backend. | ||
# Photo thumbnails sometimes are low resolution, this issue is reproduced with all the | # Photo thumbnails sometimes are low resolution (in the UMS cameras), this issue is reproduced with all RAW files I have. see [http://community.kde.org/File:Sdy342.png link]. The thumbnails quality rendered better when I commented out the getting thumbs from Exif data, but the loading was very slow. |
Revision as of 05:52, 22 May 2012
New Files Structure
Devices Folder
DKCamera
digiKam camera interface, Implemented by the two backends, GPCamera and UMSCamera.
GPCamera
The backend for the supported gPhoto2 library cameras.
UMSCamera
USB mass-storage device class (USB MSC or UMS), which is a protocol that allows USB devices to be accessible.
CamItemInfo
Holds the information for a single camera item "Photo, Video, Audio, ..."
Controller Folder
CameraController
Is responsible for doing all the import interface jobs (camera commands) like listing files/folders, capturing photos, get metadata & free space, get thumbnails, download photos, etc. It should be modified to communicate with the import models in a similar manner that AlbumManager communicates with album models.
CameraHistoryUpdater
Is responsible for updating the history of the jobs done by the interface.
Download Settings
It is the settings in the right sidebar of the interface. There is no need to change it.
Dialogs Folder
Contains all the dialogs for the import interface, there is no need to change it, just move it to another suitable directory.
Main Folder
Contains the main interface class, should be revamped with the new changes and moved to a suitable directory.
Widgets Folder
For now no change in it, just move it to a new directory.
Backend
I am thinking of keeping the controller classes and make them communicates with the models, maybe I will add some features to them, but not now. About the camera thumbs controller I don't know whether to make it communicates with the model to to give it the thumbs info, or replace it with a dedicated model for thumbnail handling?
Models
ImportImageModel
The base model to list images from the backends, it is of base type QAbstractListModel, it communicates with the camera controller and gets populated with item infos from it,
Sorting
ImageFilterModel
The New Structure
|- utilities |- importui |- backend |- cameracontroller.h,cpp |- camerahistoryupdater.h,cpp |- camerathumbsctrl.h,cpp |- downloadsettings.h,cpp |- camiteminfo.h,cpp |- dkcamera.h,cpp |- gpcamera.h,cpp |- gpconfigdlg.h,cpp |- umscamera.h,cpp |- main |- importui.h,cpp |- importui_p.h |- importui.rc |- models |- ImportImageModel.h,cpp |- ImageFilterModel.h,cpp |- views |- not now! |- widgets |- not now! |- dialogs |- importfolderdialog.h,cpp |- importinfodialog.h,cpp |- importmessagebox.h,cpp |- capturedlg.h,cpp
Issues
- To implement the tags, labels features, CamItemInfo needs to have those similar functionalities of the ImageInfo.
- Backend code should get some features like updating the listed files after removing/renaming any of them in the backend.
- Photo thumbnails sometimes are low resolution (in the UMS cameras), this issue is reproduced with all RAW files I have. see link. The thumbnails quality rendered better when I commented out the getting thumbs from Exif data, but the loading was very slow.