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