< Digikam | GSoC2012 Revision as of 14:45, 27 March 2012 (view source)Islam Wazery (talk | contribs)← Older edit Revision as of 14:50, 27 March 2012 (view source) Islam Wazery (talk | contribs) m (→Benefits to Community)Newer edit → Line 15: Line 15: = Benefits to Community = = Benefits to Community = −After revamping the camera interface, the users will be able to rename their videos using the advanced rename tool.+In the next major Qt release the Qt3 support classes will be deprecated, and the current implementation of the camera interface is depending on q3support classes, so it is necessarily to port this interface to the new Qt 4 model/view. −The improvement to the Advanced Search tool that I am planning to develop will help users to filter their search after date, camera name, duration and other recording options.+After revamping the camera interface, the users will be able to use the camera interface in the similar manner to the album gui. That will introduce some new UX features. −In the next major Qt release the Q3 support classes will be deprecated, In this way 4 bugs marked as Qt model/view will be fixed: 121310 , 126149 , 158437 , 216491. In this way 4 bugs marked as Qt model/view will be fixed: 121310 , 126149 , 158437 , 216491. Revision as of 14:50, 27 March 2012 Contents 1 Digikam GSoC 2012 Camera User Interface Revamp 2 Requirements and Considerations 3 Summary 4 Benefits to Community 5 More Details 6 Description & Related Work 6.1 Introduction 6.2 Deliverables 6.3 Design 6.3.1 UI/UX Design For the First Proposed Way 6.3.2 UI/UX Design For the Second Proposed Way 6.4 Implementation 7 Affected Modules 7.1 Primary Modules 7.2 Secondary Modules 7.3 Relevant Bugs 7.4 Implementation plan 7.5 Tasks needed to be done: 7.6 Project Timeline 7.7 Minimum time involvement estimation: 7.8 Information about me 7.9 Contact information: 7.10 TODO 7.11 Completed 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. Benefits to Community In the next major Qt release the Qt3 support classes will be deprecated, and the current implementation of the camera interface is depending on q3support classes, so it is necessarily to port this interface to the new Qt 4 model/view. After revamping the camera interface, the users will be able to use the camera interface in the similar manner to the album gui. That will introduce some new UX features. In this way 4 bugs marked as Qt model/view will be fixed: 121310 , 126149 , 158437 , 216491. 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, or remote computers. 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 its usage better. Deliverables This project aims to port the (Camera Interface) which currently using Qt3support classes into Qt4 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 Here are the expected primary functionalities in the Import Interface. 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 Design There are two proposed ways to launch the Import 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 Import Interface from Import menu without specifying anything and the Import Interface will be empty with a line "Click import button to begin". UI/UX Design For the First Proposed Way 1. Icon view by default, preview mode when user wants it. [[File:|center|850px]] Preview mode. 2. Download options. 3. While importing the pause option will be available. Pause option clicked, so resume option will be available. 4. Video preview in import interface which fixes bug 216491. 5. Assigning tags while importing which fixes bug 158437. Assigning tags from right sidebar. 6. 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 “Set the source path you want to download from.”, after setting it the download option will be enabled, like in the next mockup. Import interface in icon view mode. [[File:|850px]] Import interface in preview mode. After setting the import/source path or device, the photos in it will be viewed in icon view by default, and preview mode when user needs it, there will be some options available. Download photos with import interface. Implementation Project repository:  Affected Modules Primary Modules Name of module Description of changes cameraiconitem.h This module is depending on iconitem class which needs to be revamped to make use of the existing icon-view classes in digikam core. cameraiconview.h This module is 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. Implementation plan Tasks needed to be done: Project Timeline Date Work Description 3 May -- 16 May Discuss with the mentor all the details and make a determination on the design of the interaction interface. Make a deeper understanding with related documents and papers. 17 May -- 30 May Familiarize with the code 31 May -- 6 June 7 June -- 20 June 28 June -- 11 July 12 July -- 25 July 26 July -- 1 August 2 August -- 16 August Minimum time involvement estimation: April 25 – May 21 : 30 - 35 hours per week May 21 - June 10 : 15 - 20 hours per week (my exams period) June 10 - August 15 : 45 - 50 hours per week Information about me I’m Islam Wazery, an Egyptian Muslim Computer Science student in 4th grade. While studying computer science, I gained experience for working on topics like Operating systems internals and development, with applications for Linux programming in C, Programming Abstractions in C, Python, C++, C# and Object Oriented Applications design either in C++ or any other object oriented language, Mathematical concepts of programming languages with the knowledge of Algorithms and Data-structures. I am also an Ubuntu member, I try my best to be involved in Open Source projects to gain more experience. I have a good knowledge in Qt and a bit in GTK+. About source controlling I am using Git and SVN regularly. I am using digiKam to organize my pictures. So I'm very familiar with this software. I have made several patches to Digikam, and I am really interested in participating in its development. I hope to spend this summer hacking for Digikam, and continue hacking for it after this summer. I have a KDE identity with the developer access. I will spend more than 40 hours every week to work on the project. For the mentor to track my work, I will submit a progress record once a week. Also, we can have meetings on IRC. As long as I can coordinate with the mentor, it really doesn't matter where he/she lives. Contact information: IRC nick: Wazery Email address: Wazery [at] ubuntu [dot] com Country, City: Egypt, Cairo IM Service and Username: al.wazery [at] gmail [dot] com Telephone number: +202 0109-255-9132 TODO I will use this wiki page to document my progress, so here is a TODO list for the implementation. Milestone name Milestone description Assigned to Status Islam Wazery In Progress Completed Milestone name Milestone description Assigned to Status Note Please use the talk page to discuss this proposal. Retrieved from "https://community.kde.org/index.php?title=Digikam/GSoC2012/CameraUserInterfaceRevamp&oldid=19553" Content is available under Creative Commons License SA 4.0 unless otherwise noted.