rpms/solang/devel 0001-Basic-functional-Brasero-destination.patch, NONE, 1.1 .cvsignore, 1.3, 1.4 import.log, 1.3, 1.4 solang.spec, 1.5, 1.6 sources, 1.3, 1.4 solang-0001-Ported-to-libgdamm-4.x.patch, 1.1, NONE solang-0001-Silenced-Gtk-warnings.patch, 1.1, NONE

Hicham HAOUARI hicham at fedoraproject.org
Sun Dec 20 22:48:40 UTC 2009


Author: hicham

Update of /cvs/pkgs/rpms/solang/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10955/devel

Modified Files:
	.cvsignore import.log solang.spec sources 
Added Files:
	0001-Basic-functional-Brasero-destination.patch 
Removed Files:
	solang-0001-Ported-to-libgdamm-4.x.patch 
	solang-0001-Silenced-Gtk-warnings.patch 
Log Message:


0001-Basic-functional-Brasero-destination.patch:
 configure.ac                         |    1 
 po/POTFILES.in                       |    1 
 src/application/Makefile.am          |    2 
 src/application/application.cpp      |    8 +
 src/exporter/Makefile.am             |    3 
 src/exporter/brasero-destination.cpp |  230 +++++++++++++++++++++++++++++++++++
 src/exporter/brasero-destination.h   |  110 ++++++++++++++++
 7 files changed, 354 insertions(+), 1 deletion(-)

--- NEW FILE 0001-Basic-functional-Brasero-destination.patch ---
>From 499933efeae08833f7955cd84d568367cbdc4e23 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi at gnu.org>
Date: Sat, 21 Nov 2009 12:16:22 +0200
Subject: [PATCH] Basic functional Brasero destination

A new dependency has been introduced on Brasero >= 2.28.
---
 configure.ac                         |    1 +
 po/POTFILES.in                       |    1 +
 src/application/Makefile.am          |    2 +
 src/application/application.cpp      |    8 ++
 src/exporter/Makefile.am             |    3 +
 src/exporter/brasero-destination.cpp |  230 ++++++++++++++++++++++++++++++++++
 src/exporter/brasero-destination.h   |  109 ++++++++++++++++
 7 files changed, 354 insertions(+), 0 deletions(-)
 create mode 100644 src/exporter/brasero-destination.cpp
 create mode 100644 src/exporter/brasero-destination.h

diff --git a/configure.ac b/configure.ac
index f1a3385..7b05555 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,6 +63,7 @@ AC_SUBST([NAUTILUS_EXTENSION_INSTALL_DIR
 
 
 PKG_CHECK_MODULES(BABL, [babl])
+PKG_CHECK_MODULES(BRASERO, [libbrasero-burn])
 PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.18])
 PKG_CHECK_MODULES(FLICKCURL, [flickcurl])
 PKG_CHECK_MODULES(GDAMM, [libgdamm-4.0])
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 51cddd3..c92b429 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -24,6 +24,7 @@ src/editor/flip-widget.cpp
 src/editor/rotate-widget.cpp
 src/editor/save-photos-window.cpp
 src/editor/scale-widget.cpp
+src/exporter/brasero-destination.cpp
 src/exporter/directory-destination.cpp
 src/exporter/exporter-dialog.cpp
 src/importer/camera-import-widget.cpp
diff --git a/src/application/Makefile.am b/src/application/Makefile.am
index 606789d..e424f7f 100644
--- a/src/application/Makefile.am
+++ b/src/application/Makefile.am
@@ -25,6 +25,7 @@ solang_LDADD = \
 	$(top_builddir)/src/editor/libeditor.la \
 	$(top_builddir)/src/edit-engine/libeditengine.la \
 	$(top_builddir)/src/common/libcommon.la \
+	$(BRASERO_LIBS) \
 	$(EXIV2_LIBS) \
 	$(FLICKCURL_LIBS) \
 	$(GPHOTO2_LIBS) \
@@ -53,6 +54,7 @@ AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/renderer \
 	-I$(top_srcdir)/src/storage \
 	$(SOLANG_CFLAGS) \
+	$(BRASERO_CFLAGS) \
 	$(EXIV2_CFLAGS) \
 	$(FLICKCURL_CFLAGS) \
 	$(GPHOTO2_CFLAGS) \
diff --git a/src/application/application.cpp b/src/application/application.cpp
index 827ce44..bba7ece 100644
--- a/src/application/application.cpp
+++ b/src/application/application.cpp
@@ -28,6 +28,7 @@
 #include <giomm.h>
 
 #include "application.h"
+#include "brasero-destination.h"
 #include "browser-model-column-record.h"
 #include "browser-renderer.h"
 #include "camera-source.h"
@@ -315,6 +316,13 @@ Application::init() throw()
     plugins_.insert(std::make_pair("directory-exporter",
                                    directory_exporter));
 
+    IPhotoDestinationPtr brasero_destination(
+                             new BraseroDestination());
+    IPluginPtr brasero_exporter(new Exporter(brasero_destination,
+                                             true));
+    plugins_.insert(std::make_pair("brasero-exporter",
+                                   brasero_exporter));
+
     IPhotoSourcePtr directory_source(new DirectorySource());
     IPluginPtr directory_importer(new Importer(directory_source, true));
     plugins_.insert(std::make_pair("directory-importer",
diff --git a/src/exporter/Makefile.am b/src/exporter/Makefile.am
index 1aa19dc..123571a 100644
--- a/src/exporter/Makefile.am
+++ b/src/exporter/Makefile.am
@@ -8,6 +8,8 @@ libexporter_la_SOURCES = \
 	photo-destination.h \
 	photo-destination.cpp \
 	photo-destination-enums.h \
+	brasero-destination.cpp \
+	brasero-destination.h \
 	directory-destination.h \
 	directory-destination.cpp
 
@@ -24,6 +26,7 @@ AM_CPPFLAGS = \
 	-I$(top_srcdir)/src/renderer \
 	-I$(top_srcdir)/src/storage \
 	$(SOLANG_CFLAGS) \
+	$(BRASERO_CFLAGS) \
 	$(EXIV2_CFLAGS) \
 	$(GTKMM_CFLAGS) \
 	$(GDAMM_CFLAGS) \
diff --git a/src/exporter/brasero-destination.cpp b/src/exporter/brasero-destination.cpp
new file mode 100644
index 0000000..7a87481
--- /dev/null
+++ b/src/exporter/brasero-destination.cpp
@@ -0,0 +1,230 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * Copyright (C) 2009 Debarshi Ray <rishi at gnu.org>
+ *
+ * Solang is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Solang is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif // HAVE_CONFIG_H
+
+#include <brasero-burn-dialog.h>
+#include <brasero-burn-lib.h>
+#include <glibmm/i18n.h>
+
+#include "brasero-destination.h"
+#include "photo.h"
+#include "photo-destination-enums.h"
+#include "progress-observer.h"
+
+namespace Solang
+{
+
+BraseroDestination::BraseroDestination() throw() :
+    PhotoDestination(),
+    braseroDrive_(0),
+    braseroSessionCfg_(0),
+    braseroTrackDataCfg_(0),
+    braseroDriveSelection_(0),
+    braseroBurnBegin_(),
+    initEnd_()
+{
+    brasero_burn_library_start(0, 0);
+
+    braseroBurnBegin_.connect(
+        sigc::mem_fun(*this,
+                      &BraseroDestination::on_brasero_burn_begin));
+}
+
+BraseroDestination::~BraseroDestination() throw()
+{
+    brasero_burn_library_stop();
+}
+
+void
+BraseroDestination::init(Application & application) throw()
+{
+    initEnd_.emit(true);
+}
+
+void
+BraseroDestination::final(Application & application) throw()
+{
+}
+
+void
+BraseroDestination::export_photo(
+                          const PhotoPtr & photo,
+                          const IStoragePtr & storage,
+                          const ProgressObserverPtr & observer)
+                          throw()
+{
+    photo->set_disk_file_path(storage);
+
+    Glib::ustring uri;
+
+    try
+    {
+        const std::string path = Glib::filename_from_utf8(
+                                     photo->get_disk_file_path());
+        uri = Glib::filename_to_uri(path);
+    }
+    catch (const Glib::ConvertError & e)
+    {
+        g_warning("%s", e.what().c_str());
+        return;
+    }
+
+    brasero_track_data_cfg_add(braseroTrackDataCfg_, uri.c_str(),
+                               NULL);
+
+    observer->receive_event_notifiation();
+}
+
+void
+BraseroDestination::export_photos(
+                          const PhotoList & photos,
+                          const IStoragePtr & storage,
+                          const ProgressObserverPtr & observer)
+                          throw()
+{
+    if (0 == braseroDrive_)
+    {
+        return;
+    }
+
+    observer->set_event_description(_("Exporting Photos"));
+    observer->set_num_events(photos.size());
+
+    braseroSessionCfg_ = brasero_session_cfg_new();
+    brasero_burn_session_set_burner(
+        BRASERO_BURN_SESSION(braseroSessionCfg_), braseroDrive_);
+    g_object_unref(braseroDrive_);
+    braseroDrive_ = 0;
+
+    braseroTrackDataCfg_ = brasero_track_data_cfg_new();
+    brasero_burn_session_add_track(
+        BRASERO_BURN_SESSION(braseroSessionCfg_),
+        BRASERO_TRACK(braseroTrackDataCfg_),
+        NULL);
+
+    PhotoList::const_iterator it;
+
+    for (it = photos.begin(); photos.end() != it; it++)
+    {
+        export_photo(*it, storage, observer);
+    }
+
+    g_object_unref(braseroTrackDataCfg_);
+    braseroTrackDataCfg_ = 0;
+
+    braseroBurnBegin_.emit();
+}
+
+void BraseroDestination::final() throw()
+{
+}
+
+sigc::signal<void, bool> &
+BraseroDestination::init_end() throw()
+{
+    return initEnd_;
+}
+
+void
+BraseroDestination::read_selection() throw()
+{
+    braseroDrive_
+        = brasero_drive_selection_get_active(
+              BRASERO_DRIVE_SELECTION(braseroDriveSelection_));
+}
+
+Gtk::Widget &
+BraseroDestination::get_browser() throw()
+{
+    braseroDriveSelection_ = brasero_drive_selection_new();
+    brasero_drive_selection_show_type(
+        BRASERO_DRIVE_SELECTION(braseroDriveSelection_),
+        static_cast<BraseroDriveType>(BRASERO_DRIVE_TYPE_FILE
+                                      | BRASERO_DRIVE_TYPE_WRITER));
+
+    return *Gtk::manage(Glib::wrap(
+                            GTK_COMBO_BOX(braseroDriveSelection_),
+                            false));
+}
+
+Glib::ustring
+BraseroDestination::get_label() const throw()
+{
+    return Glib::ustring(_("_CD/DVD..."));
+}
+
+Glib::ustring
+BraseroDestination::get_name() const throw()
+{
+    return Glib::ustring("Brasero");
+}
+
+gint
+BraseroDestination::get_options() const throw()
+{
+    return PHOTO_DESTINATION_CREATE_ARCHIVE_FALSE;
+}
+
+Gtk::StockID
+BraseroDestination::get_stock_id() const throw()
+{
+    return Gtk::Stock::CDROM;
+}
+
+void
+BraseroDestination::set_create_archive(bool value) throw()
+{
+    // NB: Creation of archives is not supported.
+}
+
+void
+BraseroDestination::brasero_burn_begin_idle() throw()
+{
+    GtkWidget * const burn_dialog = brasero_burn_dialog_new();
+
+    gtk_window_set_title(GTK_WINDOW(burn_dialog),
+                         _("Export to CD/DVD"));
+    brasero_burn_dialog_run(BRASERO_BURN_DIALOG(burn_dialog),
+                            BRASERO_BURN_SESSION(braseroSessionCfg_));
+    gtk_widget_destroy(burn_dialog);
+
+    g_object_unref(braseroSessionCfg_);
+    braseroSessionCfg_ = 0;
+}
+
+void
+BraseroDestination::on_brasero_burn_begin() throw()
+{
+    // FIXME: For some reason brasero_burn_dialog_run gets stuck some
+    //        times and freezes the application. This is a workaround.
+
+    while (true == Gtk::Main::events_pending())
+    {
+        Gtk::Main::iteration();
+    }
+
+    Glib::signal_idle().connect_once(
+        sigc::mem_fun(*this,
+                      &BraseroDestination::brasero_burn_begin_idle),
+        Glib::PRIORITY_LOW);
+}
+
+} // namespace Solang
diff --git a/src/exporter/brasero-destination.h b/src/exporter/brasero-destination.h
new file mode 100644
index 0000000..cff7842
--- /dev/null
+++ b/src/exporter/brasero-destination.h
@@ -0,0 +1,109 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+ * Copyright (C) 2009 Debarshi Ray <rishi at gnu.org>
+ *
+ * Solang is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Solang is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef SOLANG_BRASERO_DESTINATION_H
+#define SOLANG_BRASERO_DESTINATION_H
+
+#include <brasero-drive.h>
+#include <brasero-drive-selection.h>
+#include <brasero-session-cfg.h>
+#include <brasero-track-data-cfg.h>
+#include <glibmm.h>
+
+#include "photo-destination.h"
+
+namespace Solang
+{
+
+class BraseroDestination :
+    public PhotoDestination
+{
+    public:
+        BraseroDestination() throw();
+
+        virtual
+        ~BraseroDestination() throw();
+
+        virtual void
+        init(Application & application) throw();
+
+        virtual void
+        final(Application & application) throw();
+
+        virtual void
+        export_photo(const PhotoPtr & photo,
+                     const IStoragePtr & storage,
+                     const ProgressObserverPtr & observer) throw();
+
+        virtual void
+        export_photos(const PhotoList & photos,
+                      const IStoragePtr & storage,
+                      const ProgressObserverPtr & observer) throw();
+
+        virtual void
+        final() throw();
+
+        virtual sigc::signal<void, bool> &
+        init_end() throw();
+
+        virtual void
+        read_selection() throw();
+
+        virtual Gtk::Widget &
+        get_browser() throw();
+
+        virtual Glib::ustring
+        get_label() const throw();
+
+        virtual Glib::ustring
+        get_name() const throw();
+
+        virtual gint
+        get_options() const throw();
+
+        virtual Gtk::StockID
+        get_stock_id() const throw();
+
+        virtual void
+        set_create_archive(bool value) throw();
+
+    protected:
+        void
+        brasero_burn_begin_idle() throw();
+
+        void
+        on_brasero_burn_begin() throw();
+
+        BraseroDrive * braseroDrive_;
+
+        BraseroSessionCfg * braseroSessionCfg_;
+
+        BraseroTrackDataCfg * braseroTrackDataCfg_;
+
+        GtkWidget * braseroDriveSelection_;
+
+        Glib::Dispatcher braseroBurnBegin_;
+
+        sigc::signal<void, bool> initEnd_;
+
+    private:
+};
+
+} // namespace Solang
+
+#endif // SOLANG_BRASERO_DESTINATION_H
-- 
1.6.2.5



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/solang/devel/.cvsignore,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- .cvsignore	21 Sep 2009 06:38:47 -0000	1.3
+++ .cvsignore	20 Dec 2009 22:48:40 -0000	1.4
@@ -1 +1 @@
-solang-0.3.tar.gz
+solang-1fa4f602dd79f8be1f4c6e4be4f86e42970d84a9.tar.gz


Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/solang/devel/import.log,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- import.log	27 Nov 2009 22:37:12 -0000	1.3
+++ import.log	20 Dec 2009 22:48:40 -0000	1.4
@@ -1,3 +1,4 @@
 solang-0_2-2_fc11:HEAD:solang-0.2-2.fc11.src.rpm:1247580220
 solang-0_3-1_fc11:HEAD:solang-0.3-1.fc11.src.rpm:1253515046
 solang-0_3-3_fc12:HEAD:solang-0.3-3.fc12.src.rpm:1259361371
+solang-0_3-4_1fa4f602dd79f8be1f4c6e4be4f86e42970d84a9git_fc12:HEAD:solang-0.3-4.1fa4f602dd79f8be1f4c6e4be4f86e42970d84a9git.fc12.src.rpm:1261349159


Index: solang.spec
===================================================================
RCS file: /cvs/pkgs/rpms/solang/devel/solang.spec,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- solang.spec	27 Nov 2009 22:37:12 -0000	1.5
+++ solang.spec	20 Dec 2009 22:48:40 -0000	1.6
@@ -1,12 +1,27 @@
+%define git 1
+
+%if %{git}
+%define commit 1fa4f602dd79f8be1f4c6e4be4f86e42970d84a9
+%endif
+
+%define rel 4
+
 Name:		solang
 Version:	0.3
-Release:	3%{?dist}
+%if %{git}
+Release:	%{rel}.%{commit}git%{?dist}
+%else
+Release:	%{rel}%{?dist}
+%endif
 Summary:	A Photo Manager for GNOME
-
 Group:		Applications/Multimedia
 License:	GPLv3+
 URL:		https://savannah.nongnu.org/projects/solang/
+%if %{git}
+Source0:	http://git.savannah.gnu.org/cgit/solang.git/snapshot/%{name}-%{commit}.tar.gz
+%else
 Source0:	http://download.savannah.nongnu.org/releases/solang/%{name}-%{version}.tar.gz
+%endif
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 
@@ -25,13 +40,13 @@ BuildRequires:	babl-devel
 BuildRequires:	gegl-devel
 BuildRequires:	libtool
 BuildRequires:	intltool
+BuildRequires:	brasero-devel >= 2.28.3
+BuildRequires:	nautilus-devel
 
 Requires:	libgda-sqlite
 
-#Patch0: http://lists.gnu.org/archive/html/solang-devel/2009-09/msg00018.html
-Patch0:		%{name}-0001-Silenced-Gtk-warnings.patch
-#Patch1: http://lists.gnu.org/archive/html/solang-devel/2009-11/msg00003.html
-Patch1:		%{name}-0001-Ported-to-libgdamm-4.x.patch
+#This patch adds a photo exporter to brasero, it is available on http://rishi.fedorapeople.org
+Patch0:		0001-Basic-functional-Brasero-destination.patch
 
 %description
 Solang is a free photo manager that will act as a front-end for
@@ -45,13 +60,21 @@ alternative that does not place humongou
 even to meet basic functionality.
 
 %prep
+%if %{git}
+%setup -q -n %{name}-%{commit}
+%else
 %setup -q -n %{name}-%{version}
-%patch0 -p1 -b .silenced-gtk-warnings
-%patch1 -p1 -b .port-to-libgdamm4
-autoreconf -i -v
+%endif
+
+%patch0 -p1 -b .brasero-destination
+
+%if %{git}
+autoreconf -i -f
+intltoolize --force
+%endif
 
 %build
-%configure --docdir=%{_docdir}/%{name}-%{version}
+%configure	--docdir=%{_docdir}/%{name}-%{version}
 make %{?smp_flags}
 
 
@@ -98,6 +121,31 @@ gtk-update-icon-cache %{_datadir}/icons/
 %{_datadir}/icons/hicolor/scalable/apps/solang.svg
 
 %changelog
+* Sun Dec 20 2009 Hicham HAOUARI <hicham.haouari at gmail.com> - 0.3-4.1fa4f602dd79f8be1f4c6e4be4f86e42970d84a9git
+- Dropped patch porting to libgdamm-4.x (merged upstream)
+- Dropped patch silencing gtk+ warnings (merged upstream)
+- Patch adding a nautilus extension
+- Patch adding a basic functional brasero destination
+- Changes from upstream since last release :
+	+ Enlarged and slideshow renderer improvements
+	+ Added French translation
+	+ Fixed the title of ExporterDialog
+	+ Ported to libgdamm-4.x
+	+ Added solang.doap: http://live.gnome.org/MaintainersCorner#maintainers
+	+ Fixed internationalization
+	+ Updated French translation
+	+ Added an expanded toolbar separator to solang.ui
+	+ Moved the Zoomer's functionality to the main Gtk::Toolbar
+	+ Carried out some housekeeping
+	+ Sanitized ProgressObserver usage
+	+ Correctly detect failure in extracting thumbnails using Exiv2
+	+ ContentTypeRepo::is_gdk_supported should take a content-type
+	+ Automatic rotation according to Exif tags
+	+ Use ThumbbufMaker in Thumbnail::generate_using_gdkpixbuf
+	+ Improved content-type guessing and Gdk::PixbufLoader selection
+	+ Added a PixbufMaker with both async and sync capabilities
+	+ Removed zoomer.cpp from POTFILES.in
+
 * Fri Nov 27 2009 Hicham HAOUARI <hicham.haouari at gmail.com> - 0.3-3
 - Added the patch 0001-Ported-to-libgdamm-4.x.patch
 - Cleaned up some dependencies


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/solang/devel/sources,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- sources	21 Sep 2009 06:38:47 -0000	1.3
+++ sources	20 Dec 2009 22:48:40 -0000	1.4
@@ -1 +1 @@
-6f82d34174815deacb4392b88a4134ed  solang-0.3.tar.gz
+e600f684dc8f1a9d4bcbc45a7ba8a793  solang-1fa4f602dd79f8be1f4c6e4be4f86e42970d84a9.tar.gz


--- solang-0001-Ported-to-libgdamm-4.x.patch DELETED ---


--- solang-0001-Silenced-Gtk-warnings.patch DELETED ---




More information about the scm-commits mailing list