mirror of
https://gitlab.gnome.org/World/tootle
synced 2025-02-16 19:40:41 +01:00
Add reply button
This commit is contained in:
parent
541cd26ac3
commit
28456b2aa0
@ -54,7 +54,7 @@ public enum Tootle.NotificationType {
|
|||||||
case MENTION:
|
case MENTION:
|
||||||
return "user-available-symbolic";
|
return "user-available-symbolic";
|
||||||
case REBLOG:
|
case REBLOG:
|
||||||
return "edit-undo-symbolic";
|
return "go-up-symbolic";
|
||||||
case FAVORITE:
|
case FAVORITE:
|
||||||
return "help-about-symbolic";
|
return "help-about-symbolic";
|
||||||
case FOLLOW:
|
case FOLLOW:
|
||||||
|
@ -4,12 +4,13 @@ using Tootle;
|
|||||||
public class Tootle.PostDialog : Gtk.Dialog {
|
public class Tootle.PostDialog : Gtk.Dialog {
|
||||||
|
|
||||||
private static PostDialog dialog;
|
private static PostDialog dialog;
|
||||||
private Gtk.TextView text;
|
protected Gtk.TextView text;
|
||||||
private Gtk.Label counter;
|
private Gtk.Label counter;
|
||||||
private Gtk.MenuButton visibility;
|
private Gtk.MenuButton visibility;
|
||||||
private Gtk.Button publish;
|
private Gtk.Button publish;
|
||||||
|
|
||||||
private StatusVisibility visibility_opt;
|
private StatusVisibility visibility_opt;
|
||||||
|
protected int64? in_reply_to_id;
|
||||||
|
|
||||||
public PostDialog (Gtk.Window? parent) {
|
public PostDialog (Gtk.Window? parent) {
|
||||||
Object (
|
Object (
|
||||||
@ -106,9 +107,19 @@ public class Tootle.PostDialog : Gtk.Dialog {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void open_reply (Gtk.Window? parent, Status status){
|
||||||
|
if(dialog == null){
|
||||||
|
open (parent);
|
||||||
|
dialog.in_reply_to_id = status.id;
|
||||||
|
dialog.text.buffer.text = "@%s ".printf (status.account.username);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void publish_post(){
|
public void publish_post(){
|
||||||
var text_escaped = text.buffer.text.replace (" ", "%20");
|
var text_escaped = text.buffer.text.replace (" ", "%20");
|
||||||
var pars = "?status=" + text_escaped;
|
var pars = "?status=" + text_escaped;
|
||||||
|
if (in_reply_to_id != null)
|
||||||
|
pars += "&in_reply_to_id=" + in_reply_to_id.to_string ();
|
||||||
pars += "&visibility=" + visibility_opt.to_string ();
|
pars += "&visibility=" + visibility_opt.to_string ();
|
||||||
|
|
||||||
var msg = new Soup.Message("POST", Settings.instance.instance_url + "/api/v1/statuses" + pars);
|
var msg = new Soup.Message("POST", Settings.instance.instance_url + "/api/v1/statuses" + pars);
|
||||||
|
@ -17,6 +17,7 @@ public class Tootle.StatusWidget : Gtk.Grid {
|
|||||||
Gtk.Label favorites;
|
Gtk.Label favorites;
|
||||||
Gtk.ToggleButton reblog;
|
Gtk.ToggleButton reblog;
|
||||||
Gtk.ToggleButton favorite;
|
Gtk.ToggleButton favorite;
|
||||||
|
Gtk.ToggleButton reply;
|
||||||
Gtk.Button? spoiler_button;
|
Gtk.Button? spoiler_button;
|
||||||
|
|
||||||
construct {
|
construct {
|
||||||
@ -46,16 +47,21 @@ public class Tootle.StatusWidget : Gtk.Grid {
|
|||||||
reblogs = new Gtk.Label ("0");
|
reblogs = new Gtk.Label ("0");
|
||||||
favorites = new Gtk.Label ("0");
|
favorites = new Gtk.Label ("0");
|
||||||
|
|
||||||
reblog = get_action_button ();
|
reblog = get_action_button ("go-up-symbolic");
|
||||||
reblog.toggled.connect (() => {
|
reblog.toggled.connect (() => {
|
||||||
if (reblog.sensitive)
|
if (reblog.sensitive)
|
||||||
toggle_reblog ();
|
toggle_reblog ();
|
||||||
});
|
});
|
||||||
favorite = get_action_button (false);
|
favorite = get_action_button ("help-about-symbolic");
|
||||||
favorite.toggled.connect (() => {
|
favorite.toggled.connect (() => {
|
||||||
if (favorite.sensitive)
|
if (favorite.sensitive)
|
||||||
toggle_fav ();
|
toggle_fav ();
|
||||||
});
|
});
|
||||||
|
reply = get_action_button ("edit-undo-symbolic");
|
||||||
|
reply.toggled.connect (() => {
|
||||||
|
reply.set_active (false);
|
||||||
|
PostDialog.open_reply (Tootle.window, this.status);
|
||||||
|
});
|
||||||
|
|
||||||
counters = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6); //TODO: currently useless
|
counters = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6); //TODO: currently useless
|
||||||
counters.margin_top = 6;
|
counters.margin_top = 6;
|
||||||
@ -63,6 +69,7 @@ public class Tootle.StatusWidget : Gtk.Grid {
|
|||||||
counters.add (reblogs);
|
counters.add (reblogs);
|
||||||
counters.add (favorite);
|
counters.add (favorite);
|
||||||
counters.add (favorites);
|
counters.add (favorites);
|
||||||
|
counters.add (reply);
|
||||||
counters.show_all ();
|
counters.show_all ();
|
||||||
|
|
||||||
attach (avatar, 1, 1, 1, 4);
|
attach (avatar, 1, 1, 1, 4);
|
||||||
@ -77,7 +84,7 @@ public class Tootle.StatusWidget : Gtk.Grid {
|
|||||||
get_style_context ().add_class ("status");
|
get_style_context ().add_class ("status");
|
||||||
|
|
||||||
if (status.reblog != null){
|
if (status.reblog != null){
|
||||||
var image = new Gtk.Image.from_icon_name("edit-undo-symbolic", Gtk.IconSize.SMALL_TOOLBAR);
|
var image = new Gtk.Image.from_icon_name("go-up-symbolic", Gtk.IconSize.SMALL_TOOLBAR);
|
||||||
image.halign = Gtk.Align.END;
|
image.halign = Gtk.Align.END;
|
||||||
image.margin_end = 8;
|
image.margin_end = 8;
|
||||||
image.show ();
|
image.show ();
|
||||||
@ -138,12 +145,8 @@ public class Tootle.StatusWidget : Gtk.Grid {
|
|||||||
CacheManager.instance.load_avatar (avatar_url, this.avatar, this.avatar_size);
|
CacheManager.instance.load_avatar (avatar_url, this.avatar, this.avatar_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Gtk.ToggleButton get_action_button (bool reblog = true){
|
private Gtk.ToggleButton get_action_button (string icon_path){
|
||||||
var path = "edit-undo-symbolic";
|
var icon = new Gtk.Image.from_icon_name (icon_path, Gtk.IconSize.SMALL_TOOLBAR);
|
||||||
if (!reblog)
|
|
||||||
path = "help-about-symbolic";
|
|
||||||
var icon = new Gtk.Image.from_icon_name (path, Gtk.IconSize.SMALL_TOOLBAR);
|
|
||||||
|
|
||||||
var button = new Gtk.ToggleButton ();
|
var button = new Gtk.ToggleButton ();
|
||||||
button.can_default = false;
|
button.can_default = false;
|
||||||
button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT);
|
button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user