Commit afd4a3c0 authored by Petr Heynch's avatar Petr Heynch Committed by Jim Nelson

Support for Rajce.net photo sharing service: Closes bug #722202

Added to Shotwell publishing extras.
parent 21c6a729
......@@ -29,6 +29,7 @@ Fryderyk Dziarmagowski <fdziarmagowski@gmail.com>
Josh Freeman <josh@twilightedge.com>
guillaumev <guillaume@viguierjust.com>
Chris Hemsing <c.hemsing@gmx.net>
Petr Heynch <petr.heynch@gmail.com>
Tomáš Hnyk <tomashnyk@gmail.com>
Mikko Huhtala <mikko.t.huhtala@gmail.com>
David Jeske <davidj@gmail.com>
......
......@@ -34,5 +34,62 @@
</key>
</schema>
<schema id="org.yorba.shotwell.sharing.org-yorba-shotwell-publishing-rajce" path="/org/yorba/shotwell/sharing/org-yorba-shotwell-publishing-rajce/">
<key name="url" type="s">
<default>"http://rajce.net/"</default>
<summary>Rajce URL</summary>
<description>URL of the Rajce server.</description>
</key>
<key name="username" type="s">
<default>""</default>
<summary>username</summary>
<description>Rajce username, if logged in.</description>
</key>
<key name="token" type="s">
<default>""</default>
<summary>token</summary>
<description>user token, if remembered.</description>
</key>
<key name="last-category" type="i">
<default>-1</default>
<summary>last category</summary>
<description>The last selected Rajce category.</description>
</key>
<key name="last-photo-size" type="i">
<default>-1</default>
<summary>last photo size</summary>
<description>A numeric code representing the last photo size preset used when publishing to Rajce.</description>
</key>
<key name="remember" type="b">
<default>false</default>
<summary>remember</summary>
<description>If true, remember last login.</description>
</key>
<key name="hide-album" type="b">
<default>false</default>
<summary>hide album</summary>
<description>If true, hide the newly created Rajce album.</description>
</key>
<key name="show-album" type="b">
<default>false</default>
<summary>open album in web browser</summary>
<description>If true, open target album in the web browser just after uploading photos</description>
</key>
<key name="strip-metadata" type="b">
<default>false</default>
<summary>remove sensitive info from uploads</summary>
<description>Whether images being uploaded to Rajce should have their metadata removed first</description>
</key>
</schema>
</schemalist>
......@@ -605,7 +605,7 @@
<summary>enable piwigo publishing plugin</summary>
<description>True if the Piwigo publishing plugin is enabled, false otherwise</description>
</key>
<key name="publishing-yandex-fotki" type="b">
<default>false</default>
<summary>enable yandex publishing plugin</summary>
......@@ -618,6 +618,12 @@
<description>True if the Tumblr publishing plugin is enabled, false otherwise</description>
</key>
<key name="publishing-rajce" type="b">
<default>false</default>
<summary>enable rajce publishing plugin</summary>
<description>True if the Rajce publishing plugin is enabled, false otherwise</description>
</key>
<key name="dataimports-fspot" type="b">
<default>true</default>
<summary>enable F-Spot import plugin</summary>
......
......@@ -27,7 +27,9 @@ EXTRA_PLUGINS_RC := \
plugins/shotwell-data-imports/f-spot-24.png \
plugins/shotwell-publishing-extras/tumblr.png \
plugins/shotwell-publishing-extras/tumblr_authentication_pane.glade \
plugins/shotwell-publishing-extras/tumblr_publishing_options_pane.glade
plugins/shotwell-publishing-extras/tumblr_publishing_options_pane.glade \
plugins/shotwell-publishing-extras/rajce_authentication_pane.glade \
plugins/shotwell-publishing-extras/rajce_publishing_options_pane.glade
ALL_PLUGINS := $(PLUGINS) $(EXTRA_PLUGINS)
......@@ -14,6 +14,7 @@ SRC_FILES := \
shotwell-publishing-extras.vala \
YandexPublishing.vala \
TumblrPublishing.vala \
RajcePublishing.vala \
../../src/util/string.vala \
../common/RESTSupport.vala
......@@ -21,7 +22,9 @@ RC_FILES := \
yandex_publish_model.glade \
tumblr.png \
tumblr_authentication_pane.glade \
tumblr_publishing_options_pane.glade
tumblr_publishing_options_pane.glade \
rajce_authentication_pane.glade \
rajce_publishing_options_pane.glade
include ../Makefile.plugin.mk
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkWindow" id="authentication_pane">
<property name="can_focus">False</property>
<child>
<object class="GtkAlignment" id="alignment">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xscale">0.5</property>
<property name="yscale">0.5</property>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">30</property>
<property name="margin_right">30</property>
<property name="hexpand">True</property>
<property name="spacing">8</property>
<child>
<object class="GtkLabel" id="message_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">label</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkTable" id="field_table">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="n_rows">2</property>
<property name="n_columns">2</property>
<property name="column_spacing">8</property>
<property name="row_spacing">2</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Email address</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">username_entry</property>
</object>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</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="top_attach">1</property>
<property name="bottom_attach">2</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">1</property>
<property name="right_attach">2</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="invisible_char_set">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="remember_checkbutton">
<property name="label" translatable="yes">_Remember</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkHButtonBox" id="hbuttonbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="login_button">
<property name="label" translatable="yes">Login</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkBox" id="rajce_pane_widget">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">1</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkBox" id="user_area_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="margin_left">36</property>
<property name="margin_right">36</property>
<property name="margin_top">24</property>
<property name="margin_bottom">24</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="login_identity_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
<property name="label" translatable="yes">you are logged in rajce as $name</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">4</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="logout_button">
<property name="label" translatable="yes">_Logout</property>
<property name="use_action_appearance">False</property>
<property name="width_request">64</property>
<property name="height_request">24</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="album_gallery_layout_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">16</property>
<property name="margin_right">16</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkGrid" id="album_choice_area_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">1</property>
<property name="row_spacing">8</property>
<child>
<object class="GtkComboBoxText" id="existing_albums_combo">
<property name="width_request">320</property>
<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">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="new_album_entry">
<property name="width_request">320</property>
<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">2</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="use_existing_radio">
<property name="label" translatable="yes">An _existing album:</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
<property name="margin_left">4</property>
<property name="margin_right">4</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">create_new_radio</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="GtkRadioButton" id="create_new_radio">
<property name="label" translatable="yes">A _new album named:</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
<property name="margin_left">4</property>
<property name="margin_right">4</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="yalign">0.47999998927116394</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="hide_check">
<property name="label" translatable="yes">_Hide album</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</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="GtkCheckButton" id="show_check">
<property name="label" translatable="yes">Open target _album in browser</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
</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="GtkLabel" id="publish_to_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">4</property>
<property name="margin_bottom">8</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">$mediatype will appear in</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>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">4</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkBox" id="button_area_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">196</property>
<property name="margin_right">196</property>
<property name="margin_top">24</property>
<property name="margin_bottom">24</property>
<property name="spacing">128</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="publish_button">
<property name="label" translatable="yes">_Publish</property>
<property name="use_action_appearance">False</property>
<property name="width_request">96</property>
<property name="height_request">30</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="vexpand">True</property>
<property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
</interface>
......@@ -12,6 +12,7 @@ private class ShotwellPublishingExtraServices : Object, Spit.Module {
public ShotwellPublishingExtraServices(GLib.File module_file) {
pluggables += new YandexService();
pluggables += new TumblrService(module_file.get_parent());
pluggables += new RajceService(module_file.get_parent());
}
public unowned string get_module_name() {
......
......@@ -15,11 +15,14 @@ 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/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/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
[type: gettext/glade]plugins/shotwell-publishing-extras/rajce_publishing_options_pane.glade
[type: gettext/glade]plugins/shotwell-publishing-extras/yandex_publish_model.glade
plugins/shotwell-publishing/FacebookPublishing.vala
plugins/shotwell-publishing/FlickrPublishing.vala
......
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