summaryrefslogtreecommitdiff
path: root/src/plugins/PublishingInterfaces.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/PublishingInterfaces.vala')
-rw-r--r--src/plugins/PublishingInterfaces.vala44
1 files changed, 40 insertions, 4 deletions
diff --git a/src/plugins/PublishingInterfaces.vala b/src/plugins/PublishingInterfaces.vala
index 6518142..05b161f 100644
--- a/src/plugins/PublishingInterfaces.vala
+++ b/src/plugins/PublishingInterfaces.vala
@@ -9,7 +9,7 @@
*
* The Shotwell Pluggable Publishing API allows you to write plugins that upload
* photos and videos to web services. The Shotwell distribution includes publishing
- * support for four core services: Facebook, Flickr, Picasa Web Albums, and YouTube.
+ * support for three core services: Flickr, Google Photos, and YouTube.
* To enable Shotwell to connect to additional services, developers like you write
* publishing plugins, dynamically-loadable shared objects that are linked into the
* Shotwell process at runtime. Publishing plugins are just one of several kinds of
@@ -87,7 +87,7 @@ public errordomain PublishingError {
/**
* Indicates that a secure connection to the remote host cannot be
* established. This might have various reasons such as expired
- * certificats, invalid certificates, self-signed certificates...
+ * certificates, invalid certificates, self-signed certificates...
*/
SSL_FAILED
}
@@ -268,6 +268,8 @@ public interface PluginHost : GLib.Object, Spit.HostInterface {
CANCEL = 1
}
+ public abstract string get_current_profile_id();
+
/**
* Notifies the user that an unrecoverable publishing error has occurred and halts
* the publishing process.
@@ -367,7 +369,7 @@ public interface PluginHost : GLib.Object, Spit.HostInterface {
* The text displayed depends on the type of media the current publishing service
* supports. To provide visual consistency across publishing services and to allow
* Shotwell to handle internationalization, always use this convenience method; don’t
- * contruct and install success panes manually.
+ * construct and install success panes manually.
*
* If an error has posted, the {@link PluginHost} will not honor
* this request.
@@ -413,7 +415,7 @@ public interface PluginHost : GLib.Object, Spit.HostInterface {
* the callback 'on_login_clicked'. Every Publisher should provide a welcome pane to
* introduce the service and explain service-specific features or restrictions. To provide
* visual consistency across publishing services and to allow Shotwell to handle
- * internationalization, always use this convenience method; don’t contruct and install
+ * internationalization, always use this convenience method; don’t construct and install
* welcome panes manually.
*
* If an error has posted, the {@link PluginHost} will not honor this request.
@@ -565,6 +567,11 @@ public interface Publishable : GLib.Object {
*/
public abstract GLib.DateTime get_exposure_date_time();
+ /**
+ * Returns the rating on the file.
+ */
+ public abstract uint get_rating();
+
//
// For future expansion.
//
@@ -578,6 +585,17 @@ public interface Publishable : GLib.Object {
protected virtual void reserved7() {}
}
+public interface Account : Object {
+ public abstract string display_name();
+}
+
+public class DefaultAccount : Spit.Publishing.Account, Object {
+ public string display_name() {
+ return "";
+ }
+}
+
+
/**
* Describes the features and capabilities of a remote publishing service.
*
@@ -590,10 +608,26 @@ public interface Service : Object, Spit.Pluggable {
*/
public abstract Spit.Publishing.Publisher create_publisher(Spit.Publishing.PluginHost host);
+ public virtual Spit.Publishing.Publisher create_publisher_with_account(Spit.Publishing.PluginHost host,
+ Spit.Publishing.Account? account) {
+ return this.create_publisher(host);
+ }
+
/**
* Returns the kinds of media that this service can work with.
*/
public abstract Spit.Publishing.Publisher.MediaType get_supported_media();
+
+ /**
+ * Returns a list of accounts associated with the service
+ * Returns: null if there are no accounts, identifier
+ */
+ public virtual Gee.List<Account>? get_accounts(string profile_id) {
+ var list = new Gee.ArrayList<Account>();
+ list.add(new DefaultAccount());
+
+ return list;
+ }
//
// For future expansion.
@@ -617,6 +651,8 @@ public interface Authenticator : Object {
public abstract void logout();
public abstract void refresh();
+ public abstract void set_accountname(string name);
+
public abstract GLib.HashTable<string, Variant> get_authentication_parameter();
}