2010-04-08 Daniel Berrange <berrange@localhost.localdomain> Add link to download area Bump release to 0.1.0 & other release prep work * AUTHORS, NEWS: Fill out basic info. * Makefile.am, gitlog-to-changelog: Setup ChangeLog to be autogenerated from GIT logs. * configure.ac Bump release to 0.1.0 Fix tagline in about dialog Fix bug in thread locking upon error scenarios When breaking out of the task loop it is neccesary to reacquire the lock. 2010-04-07 Daniel Berrange <berrange@t500wlan.home.berrange.com> Fix hang when changing configuration values The camera schedular thread runs continuously in the background waiting for events. It is thus neccessary to pause this background thread whenever updating a control value in the foreground thread. 2010-04-05 Daniel Berrange <berrange@localhost.localdomain> Add filename labels in session browser & image info popup Fix thumbnail orientation Fix logic bug that broke thumbnail resizing Set widget readonly state on camera controls GPhoto now has an API for discovering whether a camera control is readonly. This can be used to set the GTK widget to be non sensitive 2010-04-04 Daniel Berrange <berrange@localhost.localdomain> Rewrite filename generation code to preserve original extension Rewrite the session filename generation code to preserve the original filename extension as provided by the camera/gphoto. ie stop giving raw files a .jpeg extension ! Add & ignore GP_EVENT_CAPTURE_COMPLETE to prevent bogus failures 2010-04-02 Daniel Berrange <berrange@localhost.localdomain> Allow presentation mode to set monitor to diplay on The view menu gets popupulated with a list of named monitors in the screen. The presentation mode can be switched between the different monitors. Fullscreen also now hides the menubar 2010-03-31 Daniel Berrange <berrange@localhost.localdomain> Add a real presentation mode Add a real presentation mode where the only thing visible is the image display window, in fullscreen. Use proper glib API for finding user pictures directory Port to gudev library Use the gudev library for monitoring devices in preference to HAL, where available Fix 100% cpu loop on camera disconnect & potential crash When the camera disconnects care must be taken that all camera functions return false and not try to access a NULL gphoto camera object. The background event loop must also check for a disconnected camera and not spin 100% cpu waiting for events that will never arrive Fix thread safety in task-end callback & disconnect camera The task-end callback invokes GTK functions and is emitted from a background thread, thus it must be protected by the GDK threads lock. When the camera is removed from the camera manager, the camera must be switched to disconnected state 2010-03-30 Daniel Berrange <berrange@localhost.localdomain> Rename Capa -> Entangle Renaming the project from "Capa" to "Entangle". This renames all files with 'capa' in the name, and changes all source code symbols and strings to match. 2010-03-18 Daniel P. Berrange <berrange@redhat.com> Add cast from gsize to int to avoid printf warning 2010-03-15 Daniel P. Berrange <berrange@redhat.com> Readd port property mistakenly removed 2010-03-14 Daniel P. Berrange <berrange@redhat.com> Add initial impl of gconf configuration store 2010-03-13 Daniel P. Berrange <berrange@redhat.com> Add setters/getters for control panel, session browser & camera manager objects 2010-03-12 Daniel P. Berrange <berrange@redhat.com> Remove all unneccessary G_OBJECT casts Add getter/setters for image display object properties Add setter for camera file mimetype Add setters/getters for camera info object Add setters/getters to pixbuf loader object Add getter & setter for camera progress property Standard naming convention for "getters" on camera class Cache camera docs to avoid possible thread race condition The gphoto library must only be used from one thread at once for absolute safety, so camera driver/manual/summary strings should be cached just in case Fix session changing code The session changing code was setting a property which no longer exists on the camera class 2010-03-06 Daniel P. Berrange <berrange@redhat.com> Fix printf format specifier Basic framework for new config management system * backend/capa-config-entry.h, backend/capa-config-entry.c: Object for a single configuration value * backend/capa-config-set.h, backend/capa-config-set.c: Object for a group of configuration values * backend/capa-config-store.c, backend/capa-config-store.c: Backing store for all configuration values 2010-02-15 Daniel P. Berrange <berrange@redhat.com> Switch capture/preview/monitor over to scheduler task & rip out old code The old threads code from the camera class is ripped out. The camera manager frontend now triggers all operations via the new camera scheduler object. Add progress debug logging on control building process Fix typo in object class name Camera execution script and task system To make the capture process more flexible, the hardcoded preview, monitor & capture threads need to be moved out of the camera class. This commit introduces a general purpose camera scheduler that runs in a background thread monitoring for events. It then accepts queuing of tasks to execute. Tasks are provided for the basic operations. 2010-02-14 Daniel P. Berrange <berrange@redhat.com> Refactor camera capture routines to prepare for scripts Introduce an explicit object for representing a file on the camera. Separate out methods for capturing, downloading & deleting files from the camera. Rewrite existing background threads to use the new APIs. 2010-01-13 Daniel P. Berrange <berrange@redhat.com> Don't abort monitoring when getting an unexpected event 2010-01-12 berrange <berrange@dhcp-0-224.camlab.fab.redhat.com> Ignore Makefile.am file 2010-01-12 Daniel P. Berrange <berrange@redhat.com> Merge CapaPluginBase into CapaPlugin inteface The CapaPlugin interface was not serving any useful purpose. This change merges the CapaPluginBase abstract class into CapaPlugin removing the interface 2010-01-11 Daniel P. Berrange <berrange@redhat.com> Fix gint64 printf format specifier for x86_64 Can't assume that gint64 format specific is %llu on x86_64. GLib provides a portable macro G_GUINT64_FORMAT so use that instead. 2010-01-10 Daniel P. Berrange <berrange@redhat.com> Rename all source files added 'capa-' prefix Avoid potential include file namespace problems by adding a 'capa-' prefix to all source files Integrate with gtk-doc for API reference generation Remove auto-generated INSTALL file Move debug variables out of main.c into separate debug.c In order for gtk-doc to link to the library for scanning, it is neccessary to move the debug flags into a separate file. Rename some methods in CapaApp and annotate for introspection data The introspection transfer mode was incorrect for methods in CapaApp, so they had to be annotated. The getters are also renamed to add 'get_' prefix. 2010-01-09 Daniel P. Berrange <berrange@redhat.com> Turn off colour profile debugging 2010-01-03 Daniel P. Berrange <berrange@redhat.com> Pass the 'CapaPlugin' instance to the plugin activate methods The plugin may need to know its base directory in order to load other assets such as images. To allow for this, it is neccessary to pass the CapaPlugin instance into the plugin's activate/deactive methods Switch UI out of operation mode when camera is removed The current camera may be removed from the manager window while an operation is in progress (particularly when monitoring for new images in the background). In this case it is neccessary to toggle the 'inOperation' flag to update the UI Remove obsolete, unused 'camera-progress' window definition The camera progress window was removed in a previous commit, the progress display being incorporated into the main manager window. The glade definition of the 'camera-progress' window is thus obsolete & unused. Fix crash in background thread when progress monitor is removed When disconnecting the UI from a camera, there may still be a background job active using the progress monitor. Therefore it is neccessary to include checks for NULL on the progress object Disconnect camera from display when camera is removed When a camera is removed, and it matches the camera currently opened in the display, it must be removed, disabling the UI. Make 'CapaAppDisplay' inherit from 'CapaApp' The plugins get given a handle to a 'CapaApp' instance. By making the CapaAppDisplay type inherit from 'CapaApp', they can get access to the UI objects Clarify warning text when camera cannot be connected to Fix missing word in camera picker warning message * src/capa.glade: Add missing 'when' in warning message 2009-12-29 Daniel P. Berrange <berrange@redhat.com> Include a relative timestamp in log messages Basic UI for plugin preferences / management 2009-12-28 Daniel P. Berrange <berrange@redhat.com> Javascript plugins based on GJS runtime Rename GIR data to use initial caps as per GObject standards Preliminary plugin script with dlopen() 2009-12-12 Daniel P. Berrange <berrange@redhat.com> Update screenshots to reflect current UI design 2009-12-06 Daniel P. Berrange <berrange@redhat.com> Update the website content to match current reality Re-order buttons on toolbar to move important ones to the left Merge capture/preview/monitor tool buttons into one Declutter the toolbar slightly by merging the separate buttons for capture/preview/montior into one button with a drop down menu. This will also allow scripts to populate the menu with other options like timed/sequenced shooting Pull the progress display into the toolbar instead of popup window 2009-12-05 Daniel P. Berrange <berrange@redhat.com> Misc enhancements to colour management * Auto-rebuild colour transform when preferences change * Fix crash when a profile is NULL * Honour requested rendering intent Auto apply any orientation info when displaying images/thumbnails 2009-12-04 Daniel P. Berrange <berrange@redhat.com> Fix build ordering dependancy for generated enums Remove obsolete comment and class variable Introduce an async thumbnail loader Subclass pixbuf loader to provide a thumbnail loader. Attempts to following the thumbnail spec for caching thumbnails http://jens.triq.net/thumbnail-spec/index.html Pull most of image loader out into a abstract pixbuf loader base Introduce a CapaPixbufLoader base class which does most of the image loading work. This will allow a subclass for doing thumbnail generation/loading to reuse most functionality. 2009-12-02 Daniel P. Berrange <berrange@redhat.com> Integrate with libunique to ensure we're always a single-instance app Integrate with startup notification library Turn camera manager window into a singleton Always display the camera manager window, even if no camera is present. Fix bugs in disconnecting from camera. Automatically connect to the camera if exactly one is found If there is only a choice of one single camera, then we will automatically connect to it when starting up,instead of showing the camera picker dialog. 2009-11-29 Daniel P. Berrange <berrange@redhat.com> Introduce a background image loader for main image display Use a thread pool to load images in the background without blocking the main UI. Wire the thread loader into the main image display panel 2009-11-28 Daniel P. Berrange <berrange@redhat.com> Wire up preferences to GConf for persistent storage Apply changes to preferences from editor form Add missing ref count in previous commit Apply colour profile transform according to configured preferences 2009-11-27 Daniel P. Berrange <berrange@redhat.com> Tiny whitespace tweak Create a preferences dialog 2009-11-09 Daniel P. Berrange <berrange@redhat.com> Initial support for ICC profile conversion of images when displayed Adds basic support for applying ICC profiles to captured images when displayed in the main image viewer. Needs to be hooked up to preferences to control rendering intent and ICC filenames * capa.spec.in: Add BuildRequires: lcms-devel * configure.ac: Add pkgconfig check for lcms * src/Makefile.am: Add lcms linker/cflags * src/backend/colour-profile.c, src/backend/colour-profile.h: Add an object for representing a colour profile * src/frontend/camera-manager.c: Quick nasty hack to apply a profile 2009-10-20 Daniel P. Berrange <berrange@redhat.com> Really fix threading issues * src/backend/camera.h, src/backend/camera.c: Add thread funcs to be registered, and call when emitting signals froma thread. Remove idle func hack which was useless * src/frontend/camera-manager.c: Register gdk thread funcs with camera class. * src/main.c: Enter threads before running main loop Auto-select latest image in session browser * src/frontend/session-browser.c: Automatically select the latest image added to list 2009-10-20 Daniel Berrange <berrange@minilan.home.berrange.com> Fix XML comment syntax * src/gphoto-2.0.gir: Fix comment syntax 2009-10-19 Daniel P. Berrange <berrange@redhat.com> Use a server-side pixmap for image display to make expose events fast Rendering directly from a client side pixbuf made for very slow expose events. Use a pixmap to cache the data for fast rendering * frontend/image-display.c: Add a pixmap cache 2009-10-19 Daniel Berrange <berrange@minilan.home.berrange.com> Add GObject introspection support * capa.spec.in: Add deps on gobject-introspection-devel, gir-repository-devel * configure.ac: Check for gobject introspection * src/Makefile.am: Add rules for building tpyelib/gir data * src/main.c: Add --introspect-dump arg * src/gphoto-2.0.gir: Add stub for gphoto2 structs 2009-10-19 Daniel P. Berrange <berrange@redhat.com> Remove all polaroids when closing camera window 2009-10-18 Daniel P. Berrange <berrange@redhat.com> Move capa_session_add call to a idle func to avoid thread safety problem Add missing ref count increment on preferences class Refresh session browser when changing camera session Kill all tabs, mass ident & add emacs magic to prevent their return Turn CapaApp into a proper GObject class Change to use a toggle button/menu for showing/hiding camera settings Wire up new/open session menus/toolbuttons Change default filename pattern to JPEG Fix session directory creation 2009-10-06 Daniel P. Berrange <berrange@redhat.com> Wire up changes to settings propagating back to camera Initialize control objects with current values & update display 2009-10-05 Daniel P. Berrange <berrange@redhat.com> Add tear off image "polaroids" for thumbnails Sort thumbnails based on last modified date Refresh session thumbnail browser when session gets a new file Control monitor button visibility correctly. 2009-10-04 Daniel P. Berrange <berrange@redhat.com> Use jquery fancybox for pretty screenshot browsing Fix RPM spec build / install / dist rules Add many screenshots, tweak styles & make it render with IE7 Add a few tooltips to the main camera window Flesh out basic website pages a little more Add PNG icons for windows in all recommended sizes Add a dummy field to private struct to avoid gobject assertion Fix type name for progress object Standardize header file style Add #include <config.h> to all files Convert over to glib logging instead of fprintf Fix mistaken unref calls in finalizer Add custom control objects for each type of data 2009-10-03 Daniel P. Berrange <berrange@redhat.com> Use widget info for tooltip Add basic widget infrastructure for displaying camera controls Load image into main display when session browser entry is selected Add stupidly inefficient thumbnail loading as temporary demo Add the start of a proper icon display for session images Add add/remove signals to session object Add support for monitoring & autodownloading images triggered from camera Fix padding in main split panels Add code for generating unique, incrementing filenames for sessions Move background thread over to camera class. Use session/images classes Add basic classes for managing images and sessions 2009-10-01 Daniel P. Berrange <berrange@redhat.com> Fix property name for preferences Don't reference pixbuf in expose handler if its NULL Add desktopfile and RPM spec and look for glade in install path 2009-09-30 Daniel P. Berrange <berrange@redhat.com> Started a preference modules More work on website style/content 2009-09-28 Daniel P. Berrange <berrange@redhat.com> Tweak website navigation content Start work on a basic set of webpages 2009-09-27 Daniel P. Berrange <berrange@redhat.com> Turn camera list into a gobject. Refresh list in-place & emit signals Auto-refresh device list when usb devs are hotplugged/unplugged Control UI sensitivity based on camera capabilities Add check that camera succesfully connected Fix leak of glade objects in finalizers Wire up a help about dialog Fix up handling of close / delete events on windows Fix many memory leaks and add image preview 2009-09-26 Daniel P. Berrange <berrange@redhat.com> Fix memory leak in camera picker cell renderer Basic wiring up of quit/disconnect menus & manager window delete Wire up menu items for zoom / fullscreen Wire up fullscreen toolbar button Add a custom scalable image display widget. Default to 'best fit' 2009-09-25 Daniel P. Berrange <berrange@redhat.com> Fix crash when closing camera info dialogs Add ability to cancel progress operations Add progress display when capturing images since it can be very slow Convert CapaCamera into a GObject to get ref counting Split out compile of frontend and backend Split the frontend and backend out into separate build libraries. This ensures only the backend can use libgphoto2 directly and that the backend doesn't accidentally end up depending on frontend Use a private params context per camera object Make a note of why we skip the camera called usb: 2009-09-20 Daniel P. Berrange <berrange@redhat.com> Wire up basic code for extracting list of controls from camera Boilerplate classes for settings management Add copyright headers to all source files Crude experiment making the 'capture' button work Add about dialog and camera information display Tweak git ignore rules Fix compile warnings & add warning message if no cameras are found Add autotools magic Initial commit of codebase