[shotwell/wip/gtk4] wip: Publishing
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [shotwell/wip/gtk4] wip: Publishing
- Date: Thu, 28 Jul 2022 23:26:15 +0000 (UTC)
commit 63b449d6ce94e51436c7f89b4d5c1b66461fb175
Author: Jens Georg <mail jensge org>
Date: Sat May 7 07:46:29 2022 +0200
wip: Publishing
data/ui/static_message_pane_widget.ui | 14 +-
flatpak/org.gnome.Shotwell.json | 38 +++-
meson.build | 4 +-
.../shotwell/ShotwellAuthenticatorFactory.vala | 9 +-
.../shotwell/TumblrAuthenticator.vala | 9 +-
plugins/authenticator/shotwell/meson.build | 8 +-
.../shotwell/tumblr_authentication_pane.ui | 110 +++------
plugins/meson.build | 4 +-
.../shotwell-publishing/PhotosPublishingPane.vala | 6 +-
plugins/shotwell-publishing/PhotosService.vala | 10 +-
plugins/shotwell-publishing/PiwigoPublishing.vala | 40 ++--
plugins/shotwell-publishing/TumblrPublishing.vala | 20 +-
.../google_photos_publishing_options_pane.ui | 183 ++++++---------
plugins/shotwell-publishing/meson.build | 4 +-
.../piwigo_authentication_pane.ui | 173 ++++++--------
.../piwigo_publishing_options_pane.ui | 252 +++++++--------------
.../shotwell-publishing/shotwell-publishing.vala | 8 +-
17 files changed, 331 insertions(+), 561 deletions(-)
---
diff --git a/data/ui/static_message_pane_widget.ui b/data/ui/static_message_pane_widget.ui
index 7a5441af..312c3cdc 100644
--- a/data/ui/static_message_pane_widget.ui
+++ b/data/ui/static_message_pane_widget.ui
@@ -1,29 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.0 -->
<interface>
- <requires lib="gtk+" version="3.22"/>
+ <requires lib="gtk" version="4.0"/>
<template class="PublishingUIStaticMessagePane" parent="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="static_msg_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="margin_start">16</property>
<property name="margin_end">16</property>
<property name="margin_top">97</property>
<property name="margin_bottom">24</property>
<property name="label" comments="This is a placeholder string and may be ignored.">This is populated
from within the code;
changes made here will not display.</property>
- <property name="wrap">True</property>
+ <property name="wrap">1</property>
<property name="max_width_chars">70</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
</template>
</interface>
diff --git a/flatpak/org.gnome.Shotwell.json b/flatpak/org.gnome.Shotwell.json
index 45d0bff7..6d842e7e 100644
--- a/flatpak/org.gnome.Shotwell.json
+++ b/flatpak/org.gnome.Shotwell.json
@@ -70,8 +70,8 @@
"sources" : [
{
"type" : "git",
- "tag" : "4.5.2",
- "commit" : "69357b1e88680658a07cffde7678a4d697469f03",
+ "tag" : "4.5.5",
+ "commit" : "dad26339a975b49cfb6c7dbe4bd5276c9dcb36e2",
"url" : "https://github.com/opencv/opencv"
}
]
@@ -81,8 +81,8 @@
"sources" : [
{
"type" : "archive",
- "url" :
"https://github.com/libusb/libusb/releases/download/v1.0.24/libusb-1.0.24.tar.bz2",
- "sha256" : "7efd2685f7b327326dcfb85cee426d9b871fd70e22caa15bb68d595ce2a2b12a"
+ "url" :
"https://github.com/libusb/libusb/releases/download/v1.0.26/libusb-1.0.26.tar.bz2",
+ "sha256" : "12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5"
}
],
"config-opts" : [
@@ -99,9 +99,9 @@
"sources" : [
{
"type" : "archive",
- "url" :
"https://sourceforge.net/projects/gphoto/files/libgphoto/2.5.27/libgphoto2-2.5.27.tar.bz2/download",
- "sha256" : "f8b85478c44948a0b0b52c4d4dfda2de1d7bcb7b262c76bd1ae306d9c63240d7",
- "dest-filename" : "libgphoto2-2.5.27.tar.bz2"
+ "url" :
"https://sourceforge.net/projects/gphoto/files/libgphoto/2.5.29/libgphoto2-2.5.29.tar.xz/download",
+ "sha256" : "4b439ec10af3ae4d7696d4a75655a1fe259dea5c1ccc692af58a0cc5024e7754",
+ "dest-filename" : "libgphoto2-2.5.29.tar.xz"
}
],
"config-opts" : [
@@ -214,6 +214,30 @@
}
]
},
+ {
+ "name" : "gcr4",
+ "buildsystem" : "meson",
+ "config-opts" : [
+ "-Dgtk4=true",
+ "-Dgtk3=false",
+ "-Dgtk_doc=false",
+ "-Dssh_agent=false",
+ "-Dsystemd=disabled"
+ ],
+ "build-options" : {
+ "env" : {
+ "PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_GIRDIR" : "/app/share/gir-1.0",
+ "PKG_CONFIG_GOBJECT_INTROSPECTION_1_0_TYPELIBDIR" : "/app/lib/girepository-1.0"
+ }
+ },
+ "sources" : [
+ {
+ "type" : "git",
+ "url": "file:///home/jens/Source/gcr",
+ "branch" : "phako/install-gcr-gtk4.h"
+ }
+ ]
+ },
{
"name" : "shotwell",
"buildsystem" : "meson",
diff --git a/meson.build b/meson.build
index 05e3a72a..9bc1b90f 100644
--- a/meson.build
+++ b/meson.build
@@ -107,8 +107,8 @@ endif
json_glib = dependency('json-glib-1.0')
# gdata = dependency('libgdata')
-gcr = dependency('gcr-3')
-gcr_ui = dependency('gcr-ui-3')
+gcr = dependency('gcr-4')
+gcr_ui = dependency('gcr-4-gtk4')
cairo = dependency('cairo')
valac = meson.get_compiler('vala')
diff --git a/plugins/authenticator/shotwell/ShotwellAuthenticatorFactory.vala
b/plugins/authenticator/shotwell/ShotwellAuthenticatorFactory.vala
index 01fa3c39..95bca55d 100644
--- a/plugins/authenticator/shotwell/ShotwellAuthenticatorFactory.vala
+++ b/plugins/authenticator/shotwell/ShotwellAuthenticatorFactory.vala
@@ -25,13 +25,16 @@ namespace Publishing.Authenticator {
Spit.Publishing.PluginHost host) {
switch (provider) {
case "flickr":
- return new Shotwell.Flickr.Flickr(host);
+ //return new Shotwell.Flickr.Flickr(host);
+ return null;
case "youtube":
- return new Shotwell.Google.Google("https://www.googleapis.com/auth/youtube", _("You are
not currently logged into YouTube.\n\nYou must have already signed up for a Google account and set it up for
use with YouTube to continue. You can set up most accounts by using your browser to log into the YouTube site
at least once.\n\nShotwell uses the YouTube API services <a
href=\"https://developers.google.com/youtube\">https://developers.google.com/youtube</a> for accessing your
YouTube channel and upload the videos. By using Shotwell to access YouTube, you agree to be bound to the
YouTube Terms of Service as available at <a
href=\"https://www.youtube.com/t/terms\">https://www.youtube.com/t/terms</a>\n\nShotwell's privacy policy
regarding the use of data related to your Google account in general and YouTube in particular can be found in
our <a href=\"help:shotwell/privacy-policy\">online services privacy policy</a>\n\nFor Google's own privacy
policy, please refer to <a hr
ef=\"https://policies.google.com/privacy\">https://policies.google.com/privacy</a>"), host);
+ //return new Shotwell.Google.Google("https://www.googleapis.com/auth/youtube", _("You
are not currently logged into YouTube.\n\nYou must have already signed up for a Google account and set it up
for use with YouTube to continue. You can set up most accounts by using your browser to log into the YouTube
site at least once.\n\nShotwell uses the YouTube API services <a
href=\"https://developers.google.com/youtube\">https://developers.google.com/youtube</a> for accessing your
YouTube channel and upload the videos. By using Shotwell to access YouTube, you agree to be bound to the
YouTube Terms of Service as available at <a
href=\"https://www.youtube.com/t/terms\">https://www.youtube.com/t/terms</a>\n\nShotwell's privacy policy
regarding the use of data related to your Google account in general and YouTube in particular can be found in
our <a href=\"help:shotwell/privacy-policy\">online services privacy policy</a>\n\nFor Google's own privacy
policy, please refer to <a
href=\"https://policies.google.com/privacy\">https://policies.google.com/privacy</a>"), host);
+ return null;
case "tumblr":
return new Shotwell.Tumblr.Tumblr(host);
case "google-photos":
- return new Shotwell.Google.Google("https://www.googleapis.com/auth/photoslibrary",
_("You are not currently logged into Google Photos.\n\nYou must have already signed up for a Google account
and set it up for use with Google Photos. Shotwell uses the Google Photos API services <a
href=\"https://developers.google.com/photos/\">https://developers.google.com/photos/</a> for all interaction
with your Google Photos data. You will have to grant access Shotwell to your Google Photos
library.\n\nShotwell's privacy policy regarding the use of data related to your Google account in general and
Google Photos in particular can be found in our <a href=\"help:shotwell/privacy-policy\">online services
privacy policy</a>. For Google's own privacy policy, please refer to <a
href=\"https://policies.google.com/privacy\">https://policies.google.com/privacy</a>"), host);
+ //return new Shotwell.Google.Google("https://www.googleapis.com/auth/photoslibrary",
_("You are not currently logged into Google Photos.\n\nYou must have already signed up for a Google account
and set it up for use with Google Photos. Shotwell uses the Google Photos API services <a
href=\"https://developers.google.com/photos/\">https://developers.google.com/photos/</a> for all interaction
with your Google Photos data. You will have to grant access Shotwell to your Google Photos
library.\n\nShotwell's privacy policy regarding the use of data related to your Google account in general and
Google Photos in particular can be found in our <a href=\"help:shotwell/privacy-policy\">online services
privacy policy</a>. For Google's own privacy policy, please refer to <a
href=\"https://policies.google.com/privacy\">https://policies.google.com/privacy</a>"), host);
+ return null;
default:
return null;
}
diff --git a/plugins/authenticator/shotwell/TumblrAuthenticator.vala
b/plugins/authenticator/shotwell/TumblrAuthenticator.vala
index 7d128b0a..f20464d9 100644
--- a/plugins/authenticator/shotwell/TumblrAuthenticator.vala
+++ b/plugins/authenticator/shotwell/TumblrAuthenticator.vala
@@ -39,7 +39,6 @@ namespace Publishing.Authenticator.Shotwell.Tumblr {
try {
builder = new Gtk.Builder();
builder.add_from_resource (Resources.RESOURCE_PATH + "/tumblr_authentication_pane.ui");
- builder.connect_signals(null);
var content = builder.get_object ("content") as Gtk.Widget;
Gtk.Label message_label = builder.get_object("message_label") as Gtk.Label;
@@ -55,19 +54,16 @@ namespace Publishing.Authenticator.Shotwell.Tumblr {
}
username_entry = builder.get_object ("username_entry") as Gtk.Entry;
-
password_entry = builder.get_object ("password_entry") as Gtk.Entry;
-
-
login_button = builder.get_object("login_button") as Gtk.Button;
username_entry.changed.connect(on_user_changed);
password_entry.changed.connect(on_password_changed);
login_button.clicked.connect(on_login_button_clicked);
- content.parent.remove (content);
- pane_widget.add (content);
+ content.unparent();
+ pane_widget.append (content);
} catch (Error e) {
warning(_("Could not load UI: %s"), e.message);
}
@@ -107,7 +103,6 @@ namespace Publishing.Authenticator.Shotwell.Tumblr {
public void on_pane_installed() {
username_entry.grab_focus();
password_entry.set_activates_default(true);
- login_button.can_default = true;
update_login_button_sensitivity();
}
diff --git a/plugins/authenticator/shotwell/meson.build b/plugins/authenticator/shotwell/meson.build
index b43b889e..a359fcd3 100644
--- a/plugins/authenticator/shotwell/meson.build
+++ b/plugins/authenticator/shotwell/meson.build
@@ -1,7 +1,7 @@
authenticator_shotwell_sources = [
'ShotwellAuthenticatorFactory.vala',
- 'FlickrPublishingAuthenticator.vala',
- 'GoogleAuthenticator.vala',
+# 'FlickrPublishingAuthenticator.vala',
+# 'GoogleAuthenticator.vala',
'OAuth1Authenticator.vala',
'TumblrAuthenticator.vala'
]
@@ -11,13 +11,13 @@ authenticator_shotwell_resources = gnome.compile_resources('authenticator-resour
source_dir : meson.source_root())
authenticator_shotwell_deps = [gee, gtk, gio, soup, json_glib, sw_plugin,
- sw_plugin_common_dep, json_glib, xml, webkit, secret]
+ sw_plugin_common_dep, json_glib, xml, secret]
authenticator = library('shotwell-authenticator',
authenticator_shotwell_sources + authenticator_shotwell_resources,
dependencies : authenticator_shotwell_deps,
include_directories : config_incdir,
- version: meson.project_version(),
+ version: so_version,
vala_args : ['--gresources',
'org.gnome.Shotwell.Authenticator.gresource.xml'],
c_args :
diff --git a/plugins/authenticator/shotwell/tumblr_authentication_pane.ui
b/plugins/authenticator/shotwell/tumblr_authentication_pane.ui
index 24a647fb..0ac73351 100644
--- a/plugins/authenticator/shotwell/tumblr_authentication_pane.ui
+++ b/plugins/authenticator/shotwell/tumblr_authentication_pane.ui
@@ -1,126 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
<interface domain="shotwell">
- <requires lib="gtk+" version="3.14"/>
+ <requires lib="gtk" version="4.0"/>
<object class="GtkWindow" id="authentication_pane">
- <property name="can_focus">False</property>
- <child>
+ <property name="child">
<object class="GtkBox" id="content">
- <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="margin-start">30</property>
+ <property name="margin-end">30</property>
<property name="orientation">vertical</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="halign">start</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<property name="label">label</property>
- <property name="wrap">True</property>
+ <property name="wrap">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
<object class="GtkGrid" id="field_table">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="vexpand">1</property>
<property name="row_spacing">2</property>
<property name="column_spacing">8</property>
<child>
<object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">_Email address</property>
- <property name="use_underline">True</property>
+ <property name="use_underline">1</property>
<property name="mnemonic_widget">username_entry</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="username_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
+ <property name="focusable">1</property>
+ <property name="hexpand">1</property>
<property name="invisible_char">●</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="password_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">False</property>
- <property name="visibility">False</property>
+ <property name="focusable">1</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">0</property>
+ <property name="visibility">0</property>
<property name="invisible_char">●</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">_Password</property>
- <property name="use_underline">True</property>
+ <property name="use_underline">1</property>
<property name="mnemonic_widget">password_entry</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</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="GtkButtonBox" id="hbuttonbox1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <object class="GtkBox" id="hbuttonbox1">
+ <property name="vexpand">1</property>
<child>
<object class="GtkButton" id="login_button">
<property name="label" translatable="yes">Log in</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="focusable">1</property>
+ <property name="receives_default">1</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>
+ </property>
</object>
</interface>
diff --git a/plugins/meson.build b/plugins/meson.build
index 5ec3cd3e..17a294ce 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -16,8 +16,8 @@ sw_plugin_common = library('shotwell-plugin-common',
sw_plugin_common_dep = declare_dependency(include_directories : include_directories('.'),
link_with : sw_plugin_common)
-#subdir('authenticator')
-#subdir('shotwell-publishing')
+subdir('authenticator')
+subdir('shotwell-publishing')
#if get_option('extra_plugins')
# subdir('shotwell-publishing-extras')
#endif
diff --git a/plugins/shotwell-publishing/PhotosPublishingPane.vala
b/plugins/shotwell-publishing/PhotosPublishingPane.vala
index fe2dfbdd..deff0045 100644
--- a/plugins/shotwell-publishing/PhotosPublishingPane.vala
+++ b/plugins/shotwell-publishing/PhotosPublishingPane.vala
@@ -26,7 +26,7 @@ internal class PublishingOptionsPane : Gtk.Box, Spit.Publishing.DialogPane {
[GtkChild]
private unowned Gtk.Button publish_button;
[GtkChild]
- private unowned Gtk.RadioButton existing_album_radio;
+ private unowned Gtk.CheckButton existing_album_radio;
[GtkChild]
private unowned Gtk.ComboBoxText existing_albums_combo;
[GtkChild]
@@ -38,7 +38,7 @@ internal class PublishingOptionsPane : Gtk.Box, Spit.Publishing.DialogPane {
[GtkChild]
private unowned Gtk.CheckButton strip_metadata_check;
[GtkChild]
- private unowned Gtk.RadioButton new_album_radio;
+ private unowned Gtk.CheckButton new_album_radio;
[GtkChild]
private unowned Gtk.Entry new_album_entry;
@@ -52,7 +52,7 @@ internal class PublishingOptionsPane : Gtk.Box, Spit.Publishing.DialogPane {
this.parameters = parameters;
if (!can_logout) {
- logout_button.parent.remove(logout_button);
+ logout_button.unparent();
}
// populate any widgets whose contents are programmatically-generated.
diff --git a/plugins/shotwell-publishing/PhotosService.vala b/plugins/shotwell-publishing/PhotosService.vala
index 8e328f41..05430139 100644
--- a/plugins/shotwell-publishing/PhotosService.vala
+++ b/plugins/shotwell-publishing/PhotosService.vala
@@ -8,14 +8,6 @@
namespace Publishing.GooglePhotos {
public class Service : Object, Spit.Pluggable, Spit.Publishing.Service {
- private const string ICON_FILENAME = "google-photos.svg";
-
- private static Gdk.Pixbuf[] icon_pixbuf_set = null;
-
- static construct {
- icon_pixbuf_set = Resources.load_from_resource(Resources.RESOURCE_PATH + "/" + ICON_FILENAME);
- }
-
public Service(GLib.File resource_directory) {}
public int get_pluggable_interface(int min_host_interface, int max_host_interface) {
@@ -40,7 +32,7 @@ public class Service : Object, Spit.Pluggable, Spit.Publishing.Service {
info.website_url = Resources.WEBSITE_URL;
info.is_license_wordwrapped = false;
info.license = Resources.LICENSE;
- info.icons = icon_pixbuf_set;
+ info.icon = "google-photos";
}
public Spit.Publishing.Publisher create_publisher(Spit.Publishing.PluginHost host) {
diff --git a/plugins/shotwell-publishing/PiwigoPublishing.vala
b/plugins/shotwell-publishing/PiwigoPublishing.vala
index acfb3f3f..b47cb8af 100644
--- a/plugins/shotwell-publishing/PiwigoPublishing.vala
+++ b/plugins/shotwell-publishing/PiwigoPublishing.vala
@@ -5,14 +5,8 @@
*/
public class PiwigoService : Object, Spit.Pluggable, Spit.Publishing.Service {
- private const string ICON_FILENAME = "piwigo.svg";
-
- private static Gdk.Pixbuf[] icon_pixbuf_set = null;
-
- public PiwigoService(GLib.File resource_directory) {
- if (icon_pixbuf_set == null)
- icon_pixbuf_set = Resources.load_from_resource
- (Resources.RESOURCE_PATH + "/" + ICON_FILENAME);
+ public PiwigoService() {
+ Object();
}
public int get_pluggable_interface(int min_host_interface, int max_host_interface) {
@@ -37,7 +31,7 @@ public class PiwigoService : Object, Spit.Pluggable, Spit.Publishing.Service {
info.website_url = Resources.WEBSITE_URL;
info.is_license_wordwrapped = false;
info.license = Resources.LICENSE;
- info.icons = icon_pixbuf_set;
+ info.icon = "piwigo";
}
public void activation(bool enabled) {
@@ -1110,15 +1104,17 @@ internal class SSLErrorPane : Shotwell.Plugins.Common.BuilderPane {
null,
flags,
_("_OK"), Gtk.ResponseType.OK);
- dialog.get_content_area ().add (widget);
+ dialog.get_content_area ().append (widget);
dialog.set_default_response (Gtk.ResponseType.OK);
dialog.set_default_size (640, -1);
- dialog.show_all ();
- dialog.run ();
- dialog.destroy ();
+ dialog.show ();
+ dialog.set_modal(true);
+ dialog.response.connect(() => {
+ dialog.destroy();
+ });
});
} else {
- info.get_parent().remove(info);
+ info.unparent();
}
var proceed = this.get_builder ().get_object ("proceed_button") as Gtk.Button;
@@ -1155,7 +1151,6 @@ internal class AuthenticationPane : Shotwell.Plugins.Common.BuilderPane {
public AuthenticationPane (PiwigoPublisher publisher, Mode mode = Mode.INTRO) {
Object (resource_path : Resources.RESOURCE_PATH +
"/piwigo_authentication_pane.ui",
- connect_signals : true,
default_id : "login_button",
mode : mode,
publisher : publisher);
@@ -1239,7 +1234,6 @@ internal class AuthenticationPane : Shotwell.Plugins.Common.BuilderPane {
url_entry.grab_focus();
password_entry.set_activates_default(true);
- login_button.can_default = true;
update_login_button_sensitivity();
}
}
@@ -1251,8 +1245,8 @@ internal class PublishingOptionsPane : Shotwell.Plugins.Common.BuilderPane {
private static string DEFAULT_CATEGORY_NAME = _("Shotwell Connect");
- private Gtk.RadioButton use_existing_radio;
- private Gtk.RadioButton create_new_radio;
+ private Gtk.CheckButton use_existing_radio;
+ private Gtk.CheckButton create_new_radio;
private Gtk.ComboBoxText existing_categories_combo;
private Gtk.Entry new_category_entry;
private Gtk.Label within_existing_label;
@@ -1295,7 +1289,6 @@ internal class PublishingOptionsPane : Shotwell.Plugins.Common.BuilderPane {
bool strip_metadata_enabled) {
Object (resource_path : Resources.RESOURCE_PATH +
"/piwigo_publishing_options_pane.ui",
- connect_signals : true,
default_id : "publish_button",
last_category : last_category,
last_permission_level : last_permission_level,
@@ -1313,8 +1306,8 @@ internal class PublishingOptionsPane : Shotwell.Plugins.Common.BuilderPane {
base.constructed ();
var builder = this.get_builder ();
- use_existing_radio = builder.get_object("use_existing_radio") as Gtk.RadioButton;
- create_new_radio = builder.get_object("create_new_radio") as Gtk.RadioButton;
+ use_existing_radio = builder.get_object("use_existing_radio") as Gtk.CheckButton;
+ create_new_radio = builder.get_object("create_new_radio") as Gtk.CheckButton;
existing_categories_combo = builder.get_object("existing_categories_combo") as Gtk.ComboBoxText;
new_category_entry = builder.get_object ("new_category_entry") as Gtk.Entry;
within_existing_label = builder.get_object ("within_existing_label") as Gtk.Label;
@@ -1345,8 +1338,8 @@ internal class PublishingOptionsPane : Shotwell.Plugins.Common.BuilderPane {
publish_button = builder.get_object("publish_button") as Gtk.Button;
publish_button.clicked.connect(on_publish_button_clicked);
- use_existing_radio.clicked.connect(on_use_existing_radio_clicked);
- create_new_radio.clicked.connect(on_create_new_radio_clicked);
+ use_existing_radio.toggled.connect(on_use_existing_radio_clicked);
+ create_new_radio.toggled.connect(on_create_new_radio_clicked);
new_category_entry.changed.connect(on_new_category_entry_changed);
within_existing_combo.changed.connect(on_existing_combo_changed);
@@ -1468,7 +1461,6 @@ internal class PublishingOptionsPane : Shotwell.Plugins.Common.BuilderPane {
create_permissions_combo();
create_size_combo();
- publish_button.can_default = true;
update_publish_button_sensitivity();
}
diff --git a/plugins/shotwell-publishing/TumblrPublishing.vala
b/plugins/shotwell-publishing/TumblrPublishing.vala
index 3525d227..3b933949 100644
--- a/plugins/shotwell-publishing/TumblrPublishing.vala
+++ b/plugins/shotwell-publishing/TumblrPublishing.vala
@@ -6,15 +6,8 @@
*/
public class TumblrService : Object, Spit.Pluggable, Spit.Publishing.Service {
- private const string ICON_FILENAME = "tumblr.png";
-
- private static Gdk.Pixbuf[] icon_pixbuf_set = null;
-
- public TumblrService(GLib.File resource_directory) {
- if (icon_pixbuf_set == null)
- icon_pixbuf_set =
- Resources.load_from_resource(Resources.RESOURCE_PATH + "/" +
- ICON_FILENAME);
+ public TumblrService() {
+ Object();
}
public int get_pluggable_interface(int min_host_interface, int max_host_interface) {
@@ -39,7 +32,7 @@ public class TumblrService : Object, Spit.Pluggable, Spit.Publishing.Service {
info.website_url = Resources.WEBSITE_URL;
info.is_license_wordwrapped = false;
info.license = Resources.LICENSE;
- info.icons = icon_pixbuf_set;
+ info.icon = "tumblr";
}
public void activation(bool enabled) {
@@ -464,7 +457,6 @@ namespace Publishing.Tumblr {
builder = new Gtk.Builder();
builder.add_from_resource (Resources.RESOURCE_PATH +
"/tumblr_publishing_options_pane.ui");
- builder.connect_signals(null);
// pull in the necessary widgets from the glade file
pane_widget = (Gtk.Box) this.builder.get_object("tumblr_pane");
@@ -499,17 +491,11 @@ namespace Publishing.Tumblr {
}
}
-
-
-
-
private void on_logout_clicked() {
logout();
}
private void on_publish_clicked() {
-
-
publish();
}
diff --git a/plugins/shotwell-publishing/google_photos_publishing_options_pane.ui
b/plugins/shotwell-publishing/google_photos_publishing_options_pane.ui
index 8685b965..8526ed30 100644
--- a/plugins/shotwell-publishing/google_photos_publishing_options_pane.ui
+++ b/plugins/shotwell-publishing/google_photos_publishing_options_pane.ui
@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.0 -->
<interface domain="shotwell">
- <requires lib="gtk+" version="3.14"/>
+ <requires lib="gtk" version="4.0"/>
+ <requires lib="gtk" version="4.0"/>
<template class="PublishingGooglePhotosPublishingOptionsPane" parent="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="margin_start">18</property>
<property name="margin_end">18</property>
<property name="margin_top">18</property>
@@ -16,200 +14,147 @@
</child>
<child>
<object class="GtkLabel" id="login_identity_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="halign">start</property>
<property name="margin_top">12</property>
<property name="margin_bottom">32</property>
- <property name="label">'you are logged in as $name' (populated in the application code)</property>
+ <property name="label">'you are logged in as $name' (populated in the application
code)</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">4</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="visible">0</property>
<property name="margin_start">32</property>
<property name="margin_end">32</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="publish_to_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
+ <property name="vexpand">1</property>
<property name="halign">start</property>
<property name="label">$mediatype will appear in (populated in code)</property>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
<object class="GtkGrid" id="album_choice_area_grid">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="margin_start">24</property>
<property name="margin_end">24</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
- <property name="column_homogeneous">True</property>
+ <property name="column_homogeneous">1</property>
<child>
<object class="GtkComboBoxText" id="existing_albums_combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="tooltip_text" translatable="yes">Shotwell can only publish into albums that
it created by itself, so this list might be empty despite the fact that you already have albums in your
Google Photos account</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="strip_metadata_check">
+ <property name="visible">0</property>
<property name="label" translatable="yes">_Remove location, camera, and other identifying
information before uploading</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="focusable">1</property>
<property name="halign">start</property>
<property name="margin_top">16</property>
- <property name="hexpand">True</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="hexpand">1</property>
+ <property name="use_underline">1</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ <property name="column-span">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">2</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Photo _size preset</property>
- <property name="use_underline">True</property>
+ <property name="use_underline">1</property>
<property name="mnemonic_widget">size_combo</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
</child>
<child>
<object class="GtkComboBoxText" id="size_combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
</child>
<child>
- <object class="GtkRadioButton" id="existing_album_radio">
+ <object class="GtkCheckButton" id="existing_album_radio">
+ <property name="visible">0</property>
<property name="label" translatable="yes">An existing album</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
<property name="halign">end</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="active">1</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
- <object class="GtkRadioButton" id="new_album_radio">
+ <object class="GtkCheckButton" id="new_album_radio">
+ <property name="visible">0</property>
<property name="label" translatable="yes">A new album named</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
<property name="halign">end</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="active">1</property>
<property name="group">existing_album_radio</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="new_album_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="visible">0</property>
+ <property name="focusable">1</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
</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="GtkButtonBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">spread</property>
+ <object class="GtkBox">
+ <property name="visible">0</property>
<child>
<object class="GtkButton" id="logout_button">
+ <property name="visible">0</property>
<property name="label" translatable="yes">_Logout</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="focusable">1</property>
+ <property name="receives_default">1</property>
+ <property name="use_underline">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
<object class="GtkButton" id="publish_button">
+ <property name="visible">0</property>
<property name="label" translatable="yes">_Publish</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="focusable">1</property>
+ <property name="receives_default">1</property>
+ <property name="use_underline">1</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">4</property>
- </packing>
</child>
</template>
<object class="GtkSizeGroup">
diff --git a/plugins/shotwell-publishing/meson.build b/plugins/shotwell-publishing/meson.build
index 3096ee56..dc32a799 100644
--- a/plugins/shotwell-publishing/meson.build
+++ b/plugins/shotwell-publishing/meson.build
@@ -1,8 +1,8 @@
shotwell_publishing_sources = [
'shotwell-publishing.vala',
- 'FlickrPublishing.vala',
+# 'FlickrPublishing.vala',
'TumblrPublishing.vala',
- 'YouTubePublishing.vala',
+# 'YouTubePublishing.vala',
'YoutubeUploader.vala',
'PiwigoPublishing.vala',
'PhotosPublisher.vala',
diff --git a/plugins/shotwell-publishing/piwigo_authentication_pane.ui
b/plugins/shotwell-publishing/piwigo_authentication_pane.ui
index 82c90185..70dc23c3 100644
--- a/plugins/shotwell-publishing/piwigo_authentication_pane.ui
+++ b/plugins/shotwell-publishing/piwigo_authentication_pane.ui
@@ -1,176 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
<interface domain="shotwell">
- <requires lib="gtk+" version="3.14"/>
+ <requires lib="gtk" version="4.0"/>
+ <requires lib="gtk" version="4.0"/>
<object class="GtkWindow" id="authentication_pane">
- <property name="can_focus">False</property>
- <child>
+ <property name="child">
<object class="GtkBox" id="content">
- <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="visible">0</property>
+ <property name="margin-start">30</property>
+ <property name="margin-end">30</property>
+ <property name="hexpand">1</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="message_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="halign">start</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<property name="label">label</property>
- <property name="wrap">True</property>
+ <property name="wrap">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
<object class="GtkGrid" id="field_table">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
+ <property name="visible">0</property>
+ <property name="vexpand">1</property>
+ <property name="hexpand">1</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_URL of your Piwigo photo library</property>
- <property name="use_underline">True</property>
+ <property name="use_underline">1</property>
<property name="mnemonic_widget">url_entry</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="url_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
+ <property name="visible">0</property>
+ <property name="focusable">1</property>
+ <property name="hexpand">1</property>
<property name="invisible_char">●</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="password_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="visibility">False</property>
+ <property name="visible">0</property>
+ <property name="focusable">1</property>
+ <property name="hexpand">1</property>
+ <property name="visibility">0</property>
<property name="invisible_char">●</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
</child>
<child>
<object class="GtkSwitch" id="remember_password_checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="visible">0</property>
+ <property name="focusable">1</property>
<property name="halign">start</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="halign">end</property>
<property name="label" translatable="yes">User _name</property>
- <property name="use_underline">True</property>
+ <property name="use_underline">1</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="username_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
+ <property name="visible">0</property>
+ <property name="focusable">1</property>
+ <property name="hexpand">1</property>
<property name="invisible_char">●</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Password</property>
- <property name="use_underline">True</property>
+ <property name="use_underline">1</property>
<property name="mnemonic_widget">password_entry</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="visible">0</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Remember Password</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</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="GtkButtonBox" id="hbuttonbox1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">center</property>
+ <object class="GtkBox" id="hbuttonbox1">
+ <property name="visible">0</property>
+ <property name="vexpand">1</property>
<child>
<object class="GtkButton" id="login_button">
+ <property name="visible">0</property>
<property name="label" translatable="yes">Log in</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="focusable">1</property>
+ <property name="receives_default">1</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">2</property>
- </packing>
</child>
</object>
- </child>
+ </property>
</object>
</interface>
diff --git a/plugins/shotwell-publishing/piwigo_publishing_options_pane.ui
b/plugins/shotwell-publishing/piwigo_publishing_options_pane.ui
index c17d6164..94fd7c29 100644
--- a/plugins/shotwell-publishing/piwigo_publishing_options_pane.ui
+++ b/plugins/shotwell-publishing/piwigo_publishing_options_pane.ui
@@ -1,189 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.0 -->
<interface domain="shotwell">
- <requires lib="gtk+" version="3.14"/>
+ <requires lib="gtk" version="4.0"/>
<object class="GtkWindow" id="publishing_options_pane">
- <property name="can_focus">False</property>
- <child>
+ <property name="child">
<object class="GtkBox" id="content">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="margin_start">10</property>
<property name="margin_end">10</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="vexpand">1</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Photos will appear in:</property>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
<object class="GtkGrid" id="field_table">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="vexpand">1</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
- <object class="GtkRadioButton" id="use_existing_radio">
+ <object class="GtkCheckButton" id="use_existing_radio">
<property name="label" translatable="yes">An _existing category</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
<property name="halign">end</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use_underline">1</property>
+ <property name="active">1</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
<object class="GtkComboBoxText" id="existing_categories_combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
</child>
<child>
<object class="GtkComboBoxText" id="within_existing_combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
</child>
<child>
<object class="GtkComboBoxText" id="perms_combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">5</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
- </packing>
</child>
<child>
<object class="GtkComboBoxText" id="size_combo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">6</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</property>
- </packing>
</child>
<child>
<object class="GtkScrolledWindow" id="album_comment_scroll">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
- <child>
+ <property name="focusable">1</property>
+ <property name="child">
<object class="GtkTextView" id="album_comment">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="focusable">1</property>
<property name="wrap_mode">word</property>
</object>
- </child>
+ </property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- </packing>
</child>
<child>
- <object class="GtkRadioButton" id="create_new_radio">
+ <object class="GtkCheckButton" id="create_new_radio">
<property name="label" translatable="yes">A _new album named</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
<property name="halign">end</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use_underline">1</property>
+ <property name="active">1</property>
<property name="group">use_existing_radio</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="new_category_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="focusable">1</property>
<property name="invisible_char">●</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="within_existing_label">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">False</property>
+ <property name="sensitive">0</property>
<property name="halign">end</property>
<property name="label" translatable="yes">within category</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="album_comment_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="label" translatable="yes">Album comment</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Photos will be _visible by</property>
- <property name="use_underline">True</property>
+ <property name="use_underline">1</property>
<property name="mnemonic_widget">perms_combo</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">5</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Photo size</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">6</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
- </packing>
</child>
<child>
<placeholder/>
@@ -192,115 +153,62 @@
<placeholder/>
</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="strip_metadata_check">
<property name="label" translatable="yes">_Remove location, camera, and other identifying
information before uploading</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="focusable">1</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use_underline">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="title_as_comment_check">
<property name="label" translatable="yes">_If a title is set and comment unset, use title as
comment</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="focusable">1</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use_underline">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="no_upload_tags_check">
<property name="label" translatable="yes">_Do no upload tags</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="focusable">1</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use_underline">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="no_upload_ratings_check">
<property name="label" translatable="yes">_Do not upload ratings</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
+ <property name="focusable">1</property>
<property name="halign">start</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
+ <property name="use_underline">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">5</property>
- </packing>
</child>
<child>
- <object class="GtkButtonBox" id="hbuttonbox1">
+ <object class="GtkBox" id="hbuttonbox1">
+ <property name="vexpand">1</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="logout_button">
<property name="label" translatable="yes">Logout</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="focusable">1</property>
+ <property name="receives_default">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
<object class="GtkButton" id="publish_button">
<property name="label" translatable="yes">Publish</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="focusable">1</property>
+ <property name="receives_default">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">6</property>
- </packing>
</child>
</object>
- </child>
+ </property>
<child type="titlebar">
<placeholder/>
</child>
diff --git a/plugins/shotwell-publishing/shotwell-publishing.vala
b/plugins/shotwell-publishing/shotwell-publishing.vala
index 5cebf0e3..c44fc2b8 100644
--- a/plugins/shotwell-publishing/shotwell-publishing.vala
+++ b/plugins/shotwell-publishing/shotwell-publishing.vala
@@ -30,22 +30,22 @@ private class ShotwellPublishingCoreServices : Object, Spit.Module {
#if HAVE_FLICKR
if (authenicators.contains("flickr")) {
- pluggables += new FlickrService(resource_directory);
+ //pluggables += new FlickrService(resource_directory);
}
#endif
#if HAVE_YOUTUBE
if (authenicators.contains("youtube")) {
- pluggables += new YouTubeService(resource_directory);
+ //pluggables += new YouTubeService(resource_directory);
}
#endif
#if HAVE_PIWIGO
- pluggables += new PiwigoService(resource_directory);
+ pluggables += new PiwigoService();
#endif
#if HAVE_TUMBLR
- pluggables += new TumblrService(module_file.get_parent());
+ pluggables += new TumblrService();
#endif
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]