Digikam/GSoC2012/CameraUserInterfaceRevamp: Difference between revisions
Islam Wazery (talk | contribs) mNo edit summary |
Islam Wazery (talk | contribs) mNo edit summary |
||
Line 53: | Line 53: | ||
# Factorize a lots of code shared with album GUI. | # Factorize a lots of code shared with album GUI. | ||
# Remove Qt3 dependency. | # Remove Qt3 dependency. | ||
# Create more powerful icon-view for import interface, with advanced filtering option, group of items (RAW+JPEG), pre-tags options, [ | # Create more powerful icon-view for import interface, with advanced filtering option, group of items (RAW+JPEG), pre-tags options, [[#Relevant Bugs|etc]]... | ||
# To be able to use preview mode in camera interface (image + video), as in albumgui. | # To be able to use preview mode in camera interface (image + video), as in albumgui. | ||
---- | |||
Line 97: | Line 100: | ||
[[File:Secound-3.jpg|400px]] | [[File:Secound-3.jpg|400px]] | ||
Video preview in import interface which fixes bug 216491. | Video preview in import interface which fixes [[#Relevant Bugs|bug 216491]]. | ||
[[File:Secound-4.jpg|850px]] | [[File:Secound-4.jpg|850px]] | ||
Assigning tags while importing which fixes bug 158437. | Assigning tags while importing which fixes [[#Relevant Bugs|bug 158437]]. | ||
[[File:Secound-5.jpg|400px]] | [[File:Secound-5.jpg|400px]] | ||
Photo grouping which fixes bug 121310. | Photo grouping which fixes [[#Relevant Bugs|bug 121310]]. | ||
[[File:Secound-6.jpg|400px]] | [[File:Secound-6.jpg|400px]] | ||
=== UI/UX Design For the Second Proposed Way === | === UI/UX Design For the Second Proposed Way === | ||
'''Import interface launched with the first proposed way.''' | |||
No photos are presented because there is no import path or device set, it prints “Click import button to begin” and the import button will be enabled in the toolbar. | |||
'''Import interface with icon view.''' | |||
After setting the import path or device, the photos in it will be viewed in album view, there will be some options available. | |||
'''Download photos with import interface.''' | |||
== Implementation == | == Implementation == | ||
Line 132: | Line 137: | ||
|- | |- | ||
| [https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/cameragui/items/cameraiconitem.h cameraiconitem.h] | | [https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/cameragui/items/cameraiconitem.h cameraiconitem.h] | ||
| This module | | This module is depending on '''iconitem''' class which needs to be revamped and make use of the existing icon-view classes in digikam core. | ||
|- | |- | ||
|[https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/cameragui/views/cameraiconview.h cameraiconview.h] | |[https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/cameragui/views/cameraiconview.h cameraiconview.h] | ||
| | | This module currently depending on some parent classes ('''iconview''') which is based on Q3ScrollView. | ||
|- | |- | ||
|} | |} |
Revision as of 02:04, 17 March 2012
Digikam GSoC 2012 Camera User Interface Revamp
This page is meant to gather information about the GSoC 2012 Idea, Camera User Interface Revamp.
Requirements and Considerations
Summary
DigiKam features a graphical interface to access and download pictures from digital cameras. Code is rather old, using Qt3Support classes for the icon view, the UI code intermangled deeply with backend code, and has not seen very much care and love for some years.
This project would involve taking the old code apart, rewriting a clean code base backend and front-end, but also adding user interface elements to make the most important everyday task as easy as possible.
More Details
In more detail: Write a model listing images on a camera (There are two backends, USB mass storage cameras, which are basically files on disk, and GPhoto2 cameras, which require access through a library). Take the existing digikam icon view and delegate classes, which are prepared for code re-use, and put together an icon view for the model. Cleanly separate the code that does the actual work (downloading, converting, renaming) from the UI. Wrap that in the main window.
User Interface design: the current one is powerful, exposing many options. We want to preserve that. But at the same time, there are three very common actions:
a) Download all new files to the last used album
b) Download all new files to a new album
c) Download all new files to an existing album.
It should be possible to carry out task (a) with one click, task (b) and (c) with two or three clicks, without opening a dialog. Friendly to the new user, preserving access to all options for the poweruser.
Creation Date | 14-February-2012 | ||
---|---|---|---|
Status | Proposal | ||
Maintainers | Gilles Caulier - Development | Marcel Wiesweg - Development | Islam Wazery - Development |
Description & Related Work
Introduction
Camera interface is the name of the GUI that opens when user try to import some photos from different places like cameras, hard disk folders, USB storage devices, scanners, remote computers, or even from web services like Facebook or Picasa. So this Interface is used in a generic manner to import photos, and I find it better to change its name from Camera Interface to Import Interface which apparently fits it usage better.
This project aims to port the Camera Interface which currently using Qt3support classes into Qt Model/View, The goal of model-view port is to be able to:
- Factorize a lots of code shared with album GUI.
- Remove Qt3 dependency.
- Create more powerful icon-view for import interface, with advanced filtering option, group of items (RAW+JPEG), pre-tags options, etc...
- To be able to use preview mode in camera interface (image + video), as in albumgui.
Functionality Listing
- Download to (new, last, existing) album
- Pause importing
- Cancel importing
- Hide imported photos
- Upload photos
- Toggle Lock
- Mark as downloaded
- Select/Filter type of files to be shown
- Select (all, none, locked items, new Items)
- Invert selection
- Thumbnails
- View Image
- Delete (new, selected, all)
- Show History
- Full screen mode
- Close
Scope
Design
There are two proposed ways to launch the Camera Interface.
- First is the current used one from Import > Add files, which opens a dialog to select the files which you want to add.
- Second is to launch the camera interface from Import menu without specifying anything and the Camera Interface will be empty with a line "Click import button to begin" which lightroom uses.
UI/UX Design For the First Proposed Way
Mockup for album view in import interface.
Download options.
Pause option.
Video preview in import interface which fixes bug 216491.
Assigning tags while importing which fixes bug 158437.
Photo grouping which fixes bug 121310.
UI/UX Design For the Second Proposed Way
Import interface launched with the first proposed way.
No photos are presented because there is no import path or device set, it prints “Click import button to begin” and the import button will be enabled in the toolbar.
Import interface with icon view.
After setting the import path or device, the photos in it will be viewed in album view, there will be some options available.
Download photos with import interface.
Implementation
Project repository: [1]
Affected Modules
Primary Modules
Name of module | Description of changes |
---|---|
cameraiconitem.h | This module is depending on iconitem class which needs to be revamped and make use of the existing icon-view classes in digikam core. |
cameraiconview.h | This module currently depending on some parent classes (iconview) which is based on Q3ScrollView. |
Secondary Modules
Name of module | Description of changes |
---|---|
cameraiconviewtooltip.h |
Relevant Bugs
URL | Name of Bug |
---|---|
121310 | Allow to have a group of pictures. |
126149 | Camera stores both jpeg and raw (nef), handle both as one. |
158437 | Add ability to create/assign tags to pictures while importing. |
216491 | Camera interface view does not work to preview movies. |
Project Timeline
TODO
Here is a technical TODO list relevant of this project.
Milestone name | Milestone description | Assigned to | Status |
---|---|---|---|
Islam Wazery | In Progress |
Completed
Milestone name | Milestone description | Assigned to | Status |
---|