Commit 2a6f84f5 authored by Joe Sapp's avatar Joe Sapp Committed by Jim Nelson

Publish to Gallery 3: Closes bug #717839

Added to Shotwell Publishing Extras.
parent 449a856e
......@@ -65,6 +65,7 @@ Alexandre Rosenfeld <alexandre.rosenfeld@gmail.com>
Elliott S <quantum.analyst@gmail.com>
Alexander Sack <asac@ubuntu.com>
Michel Alexandre Salim <michael.silvanus@gmail.com>
Joe Sapp <sappj@ieee.org>
Benedikt Sauer <filmor@gmail.com>
Peter Seiderer <peter.seiderer@gmx.de>
Ville Skyttä <ville.skytta@iki.fi>
......
......@@ -323,6 +323,7 @@
<child name="facebook" schema="org.yorba.shotwell.sharing.facebook" />
<child name="flickr" schema="org.yorba.shotwell.sharing.flickr" />
<child name="gallery3" schema="org.yorba.shotwell.sharing.publishing-gallery3" />
<child name="picasa" schema="org.yorba.shotwell.sharing.picasa" />
<child name="youtube" schema="org.yorba.shotwell.sharing.youtube" />
</schema>
......@@ -485,6 +486,50 @@
</key>
</schema>
<schema id="org.yorba.shotwell.sharing.publishing-gallery3" path="/org/yorba/shotwell/sharing/gallery3/">
<key name="username" type="s">
<default>""</default>
<summary>username</summary>
<description>Gallery3 username</description>
</key>
<key name="api-key" type="s">
<default>""</default>
<summary>API key</summary>
<description>Gallery3 API key</description>
</key>
<key name="url" type="s">
<default>""</default>
<summary>URL</summary>
<description>Gallery3 site URL</description>
</key>
<key name="last-album" type="s">
<default>""</default>
<summary>last album</summary>
<description>The name of the last album the user published photos to, if any</description>
</key>
<key name="strip-metadata" type="b">
<default>false</default>
<summary>remove sensitive info from uploads</summary>
<description>Indicates whether images being uploaded to Gallery3 should have their metadata removed first</description>
</key>
<key name="scaling-constraint-id" type="i">
<default>0</default>
<summary>scaling constraint of uploaded picture</summary>
<description>The scaling constraint ID of the picture to be uploaded</description>
</key>
<key name="scaling-pixels" type="i">
<default>1024</default>
<summary>pixels of the major axis uploaded picture</summary>
<description>The pixels of the major axis of the picture to be uploaded; used only if scaling-constraint-id is an appropriate value</description>
</key>
</schema>
<schema id="org.yorba.shotwell.sharing.youtube" path="/org/yorba/shotwell/sharing/youtube/">
<key name="refresh-token" type="s">
<default>""</default>
......@@ -624,6 +669,12 @@
<description>True if the Rajce publishing plugin is enabled, false otherwise</description>
</key>
<key name="publishing-gallery3" type="b">
<default>false</default>
<summary>enable gallery3 publishing plugin</summary>
<description>True if the Gallery3 publishing plugin is enabled, false otherwise</description>
</key>
<key name="dataimports-fspot" type="b">
<default>true</default>
<summary>enable F-Spot import plugin</summary>
......
......@@ -25,6 +25,9 @@ EXTRA_PLUGINS := \
EXTRA_PLUGINS_RC := \
plugins/shotwell-publishing-extras/yandex_publish_model.glade \
plugins/shotwell-data-imports/f-spot-24.png \
plugins/shotwell-publishing-extras/gallery3.png \
plugins/shotwell-publishing-extras/gallery3_authentication_pane.glade \
plugins/shotwell-publishing-extras/gallery3_publishing_options_pane.glade \
plugins/shotwell-publishing-extras/tumblr.png \
plugins/shotwell-publishing-extras/tumblr_authentication_pane.glade \
plugins/shotwell-publishing-extras/tumblr_publishing_options_pane.glade \
......
This diff is collapsed.
......@@ -11,6 +11,7 @@ PLUGIN_PKGS := \
json-glib-1.0
SRC_FILES := \
GalleryConnector.vala \
shotwell-publishing-extras.vala \
YandexPublishing.vala \
TumblrPublishing.vala \
......@@ -19,6 +20,9 @@ SRC_FILES := \
../common/RESTSupport.vala
RC_FILES := \
gallery3.png \
gallery3_authentication_pane.glade \
gallery3_publishing_options_pane.glade \
yandex_publish_model.glade \
tumblr.png \
tumblr_authentication_pane.glade \
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkAction" id="go_back_action">
<property name="label" translatable="yes">Go _Back</property>
</object>
<object class="GtkAction" id="login_action">
<property name="label" translatable="yes">_Login</property>
</object>
<object class="GtkGrid" id="gallery3_auth_pane_widget">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="intro_message_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="ypad">15</property>
<property name="label" translatable="yes">Intro message replaced at runtime</property>
<property name="use_markup">True</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">5</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="url_entry_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">30</property>
<property name="label" translatable="yes">_Gallery3 URL:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">url_entry</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="url_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="margin_bottom">30</property>
<property name="invisible_char"></property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">4</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="username_entry_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_User name:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">username_entry</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">2</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="password_entry_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Password:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">password_entry</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">3</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="username_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">2</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="password_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="visibility">False</property>
<property name="invisible_char"></property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">3</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="buttons_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">30</property>
<child>
<object class="GtkButton" id="go_back_button">
<property name="label" translatable="yes">Go _Back</property>
<property name="related_action">go_back_action</property>
<property name="width_request">102</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="login_button">
<property name="label" translatable="yes">_Login</property>
<property name="related_action">login_action</property>
<property name="width_request">102</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="is_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">6</property>
<property name="width">5</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="key_entry_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">API _Key:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">key_entry</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">5</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="key_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
<property name="activates_default">True</property>
<property name="width_chars">33</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">5</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="or_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">or</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">4</property>
<property name="width">5</property>
<property name="height">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
</interface>
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkAction" id="logout_action">
<property name="label" translatable="yes">_Logout</property>
</object>
<object class="GtkAction" id="publish_action">
<property name="label" translatable="yes">_Publish</property>
</object>
<object class="GtkRadioAction" id="publish_new_radioaction">
<property name="label" translatable="yes">A _new album</property>
<property name="draw_as_radio">True</property>
<property name="value">1</property>
<property name="current_value">1</property>
</object>
<object class="GtkRadioAction" id="publish_to_existing_radioaction">
<property name="label" translatable="yes">An _existing album</property>
<property name="draw_as_radio">True</property>
<property name="group">publish_new_radioaction</property>
</object>
<object class="GtkToggleAction" id="strip_metadata_toggleaction">
<property name="label" translatable="yes">_Remove location, tag and camera-identifying data before uploading</property>
</object>
<object class="GtkGrid" id="pane_widget">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="title_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0.30000001192092896</property>
<property name="ypad">16</property>
<property name="label" translatable="yes">'Publishing to $url as $username' (populated in application code)</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="options_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">16</property>
<property name="hexpand">True</property>
<property name="row_spacing">8</property>
<property name="column_spacing">32</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkRadioButton" id="publish_to_existing_radio">
<property name="related_action">publish_to_existing_radioaction</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<property name="group">publish_new_radio</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="existing_albums_combo">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="publish_new_radio">
<property name="related_action">publish_new_radioaction</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="new_album_name">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char"></property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="strip_metadata_check">
<property name="related_action">strip_metadata_toggleaction</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="valign">center</property>
<property name="margin_top">16</property>
<property name="hexpand">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">5</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="major_axis_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Scaling constraint:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="pixels_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">5</property>
<child>
<object class="GtkLabel" id="pixels_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">pixels</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="major_axis_pixels">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="invisible_char"></property>
<property name="truncate_multiline">True</property>
<property name="caps_lock_warning">False</property>
<property name="input_purpose">number</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">4</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="scaling_constraint_combo">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>
<items>
<item translatable="yes">Original size</item>
<item translatable="yes">Width or height</item>
</items>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="album_separator">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">5</property>
<property name="margin_right">5</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="buttons_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">112</property>
<property name="margin_right">112</property>
<property name="margin_top">48</property>
<property name="margin_bottom">24</property>
<property name="hexpand">True</property>
<property name="column_spacing">128</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkButton" id="logout_button">
<property name="related_action">logout_action</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="publish_button">
<property name="related_action">publish_action</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="is_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">2</property>
<property name="height">1</property>
</packing>
</child>
</object>
</interface>
......@@ -13,6 +13,7 @@ private class ShotwellPublishingExtraServices : Object, Spit.Module {
pluggables += new YandexService();
pluggables += new TumblrService(module_file.get_parent());
pluggables += new RajceService(module_file.get_parent());
pluggables += new Gallery3Service(module_file.get_parent());
}
public unowned string get_module_name() {
......
......@@ -15,10 +15,13 @@ plugins/shotwell-data-imports/FSpotRollsTable.vala
plugins/shotwell-data-imports/FSpotTableBehavior.vala
plugins/shotwell-data-imports/FSpotTagsTable.vala
plugins/shotwell-data-imports/shotwell-data-imports.vala
plugins/shotwell-publishing-extras/GalleryConnector.vala
plugins/shotwell-publishing-extras/RajcePublishing.vala
plugins/shotwell-publishing-extras/TumblrPublishing.vala
plugins/shotwell-publishing-extras/YandexPublishing.vala
plugins/shotwell-publishing-extras/shotwell-publishing-extras.vala
[type: gettext/glade]plugins/shotwell-publishing-extras/gallery3_authentication_pane.glade
[type: gettext/glade]plugins/shotwell-publishing-extras/gallery3_publishing_options_pane.glade
[type: gettext/glade]plugins/shotwell-publishing-extras/tumblr_authentication_pane.glade
[type: gettext/glade]plugins/shotwell-publishing-extras/tumblr_publishing_options_pane.glade
[type: gettext/glade]plugins/shotwell-publishing-extras/rajce_authentication_pane.glade
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment