summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/aboutWindow.vala4
-rw-r--r--src/gui/newsWindow.vala24
-rw-r--r--src/gui/pieList.vala24
-rw-r--r--src/gui/piePreview.vala36
-rw-r--r--src/gui/settingsWindow.vala6
-rw-r--r--src/gui/triggerSelectButton.vala1
6 files changed, 61 insertions, 34 deletions
diff --git a/src/gui/aboutWindow.vala b/src/gui/aboutWindow.vala
index 6c5820b..c6b7453 100644
--- a/src/gui/aboutWindow.vala
+++ b/src/gui/aboutWindow.vala
@@ -44,7 +44,9 @@ public class AboutWindow: Gtk.AboutDialog {
"Eduardo Anabalon <lalo1412@gmail.com> (ES)",
"Grégoire Bellon-Gervais <greggbg@gmail.com> (FR)",
"Alex Maxime <cad.maxime@gmail.com> (FR)",
- "Eugene Roskin <pams@imail.ru> (RU)"
+ "Eugene Roskin <pams@imail.ru> (RU)",
+ "Ting Zhou <tzhou@haverford.edu> (ZH-CN)",
+ "Martin Dinov <martindinov@yahoo.com> (BG)"
};
// sort translators
diff --git a/src/gui/newsWindow.vala b/src/gui/newsWindow.vala
index 9212fa6..75de60e 100644
--- a/src/gui/newsWindow.vala
+++ b/src/gui/newsWindow.vala
@@ -23,7 +23,7 @@ namespace GnomePie {
public class NewsWindow: Gtk.Dialog {
- public static const int news_count = 1;
+ public static const int news_count = 2;
/////////////////////////////////////////////////////////////////////
///
@@ -42,27 +42,7 @@ public class NewsWindow: Gtk.Dialog {
var news = new Gtk.Label("");
news.wrap = true;
news.set_width_chars(75);
- news.set_markup("<b>Gnome-Pie needs your help!</b>\n\n" +
-
- "Hey, this is Simon, developer of Gnome-Pie. I’m going to " +
- "write my Bachelor thesis on pie menus! In order to improve " +
- "Gnome-Pie to the limits, I need some information on how " +
- "you use Gnome-Pie.\n\n" +
-
- "<b>So please help improving this software by sending the " +
- "file 'gnome-pie.stats' located in <a href='file:" +
- Paths.config_directory + "'>" + Paths.config_directory +
- "</a> by email to <a href='mailto:pie-stats@simonschneegans.de?subject=statistics'>" +
- "pie-stats@simonschneegans.de</a>!</b>\n\n" +
-
- "There is no personal information in this file. Only " +
- "information on your usage frequency, how fast you use " +
- "Gnome-Pie and how many Pies with how many Slices you " +
- "have configured. If you have any questions regarding " +
- "this topic please send an email to " +
- "<a href='mailto:code@simonschneegans.de'>code@simonschneegans.de</a>!\n\n" +
-
- "Thank you so much! It’s going to be exciting!");
+ news.set_markup("<b>Thank you!</b>\n\n");
box.pack_start(news, false, false);
diff --git a/src/gui/pieList.vala b/src/gui/pieList.vala
index 474e5f5..f9fb54b 100644
--- a/src/gui/pieList.vala
+++ b/src/gui/pieList.vala
@@ -94,6 +94,7 @@ class PieList : Gtk.TreeView {
this.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, entries, Gdk.DragAction.LINK);
this.enable_model_drag_dest(entries, Gdk.DragAction.COPY | Gdk.DragAction.MOVE | Gdk.DragAction.LINK);
this.drag_data_get.connect(this.on_dnd_source);
+ this.drag_data_received.connect(this.on_dnd_received);
this.drag_begin.connect_after(this.on_start_drag);
this.drag_motion.connect(this.on_drag_move);
this.drag_leave.connect(() => {
@@ -238,6 +239,29 @@ class PieList : Gtk.TreeView {
return true;
}
+
+ /////////////////////////////////////////////////////////////////////
+ /// Called when the user finishes a drag operation on this widget.
+ /// Only used for external drags.
+ /////////////////////////////////////////////////////////////////////
+
+ private void on_dnd_received(Gdk.DragContext context, int x, int y,
+ Gtk.SelectionData selection_data, uint info, uint time_) {
+
+ Gtk.TreeIter active;
+ if (this.get_selection().get_selected(null, out active)) {
+ string id = "";
+ this.data.get(active, DataPos.ID, out id);
+
+ var pie = PieManager.all_pies[id];
+
+ foreach (var uri in selection_data.get_uris()) {
+ pie.add_action(ActionRegistry.new_for_uri(uri), 0);
+ }
+
+ this.on_select(id);
+ }
+ }
}
}
diff --git a/src/gui/piePreview.vala b/src/gui/piePreview.vala
index 5745fcb..3ddf6c8 100644
--- a/src/gui/piePreview.vala
+++ b/src/gui/piePreview.vala
@@ -68,6 +68,7 @@ class PiePreview : Gtk.DrawingArea {
/////////////////////////////////////////////////////////////////////
private int drag_start_index = -1;
+ private string drag_start_id = "";
/////////////////////////////////////////////////////////////////////
/// C'tor, creates the widget.
@@ -174,8 +175,12 @@ class PiePreview : Gtk.DrawingArea {
public void set_pie(string id) {
this.current_id = id;
- this.modify_bg(Gtk.StateType.NORMAL, Gtk.rc_get_style(this).light[0]);
+ this.modify_bg(Gtk.StateType.NORMAL, Gtk.rc_get_style(this).light[Gtk.StateType.NORMAL]);
this.renderer.load_pie(PieManager.all_pies[id]);
+
+ if (id == this.drag_start_id) {
+ this.renderer.hide_group(this.drag_start_index);
+ }
}
/////////////////////////////////////////////////////////////////////
@@ -209,6 +214,7 @@ class PiePreview : Gtk.DrawingArea {
Gtk.Allocation allocation;
this.get_allocation(out allocation);
+
ctx.translate((int)(allocation.width*0.5), (int)(allocation.height*0.5));
this.renderer.draw(frame_time, ctx);
@@ -278,6 +284,7 @@ class PiePreview : Gtk.DrawingArea {
Gtk.Allocation allocation;
this.get_allocation(out allocation);
this.renderer.on_mouse_move(x-allocation.width*0.5, y-allocation.height*0.5);
+
return true;
}
@@ -287,6 +294,7 @@ class PiePreview : Gtk.DrawingArea {
private void on_start_drag(Gdk.DragContext ctx) {
this.drag_start_index = this.renderer.get_active_slice();
+ this.drag_start_id = this.current_id;
var icon = this.renderer.get_active_icon();
var pixbuf = icon.to_pixbuf();
@@ -311,11 +319,29 @@ class PiePreview : Gtk.DrawingArea {
context.list_targets().foreach((target) => {
Gdk.Atom target_type = (Gdk.Atom)target;
if (target_type.name() == "text/plain") {
- var pie = PieManager.all_pies[this.current_id];
- pie.move_group(this.drag_start_index, target_index);
- this.renderer.show_hidden_group_at(target_index);
+ if (this.current_id == this.drag_start_id) {
+ var pie = PieManager.all_pies[this.current_id];
+ pie.move_group(this.drag_start_index, target_index);
+ this.renderer.show_hidden_group_at(target_index);
+ } else {
+ var src_pie = PieManager.all_pies[this.drag_start_id];
+ var dst_pie = PieManager.all_pies[this.current_id];
+ dst_pie.add_group(src_pie.action_groups[this.drag_start_index], target_index);
+ this.renderer.add_group(dst_pie.action_groups[target_index], target_index);
+
+ if (this.renderer.slices.size == 1)
+ this.on_first_slice_added();
+
+ if ((context.get_actions() & Gdk.DragAction.COPY) == 0)
+ src_pie.remove_group(this.drag_start_index);
+ }
+
+
}
});
+
+ this.drag_start_index = -1;
+ this.drag_start_id = "";
}
}
@@ -349,7 +375,7 @@ class PiePreview : Gtk.DrawingArea {
this.drag_enabled = true;
Gtk.TargetEntry slice_source = {"text/plain", Gtk.TargetFlags.SAME_WIDGET | Gtk.TargetFlags.SAME_APP, 0};
Gtk.TargetEntry[] sources = { slice_source };
- Gtk.drag_source_set(this, Gdk.ModifierType.BUTTON1_MASK, sources, Gdk.DragAction.MOVE);
+ Gtk.drag_source_set(this, Gdk.ModifierType.BUTTON1_MASK, sources, Gdk.DragAction.MOVE | Gdk.DragAction.COPY);
}
}
diff --git a/src/gui/settingsWindow.vala b/src/gui/settingsWindow.vala
index 60bfcf3..81f8f7e 100644
--- a/src/gui/settingsWindow.vala
+++ b/src/gui/settingsWindow.vala
@@ -138,12 +138,6 @@ public class SettingsWindow : GLib.Object {
private void on_close_button_clicked() {
this.window.hide();
-
- Logger.stats("SETTINGS " + Config.global.theme.name +
- (this.indicator.active ? " INDICATOR" : "") +
- (this.autostart.active ? " AUTOSTART" : "") +
- (this.captions.active ? " CAPTIONS" : "") +
- " %f".printf(Config.global.global_scale));
}
/////////////////////////////////////////////////////////////////////
diff --git a/src/gui/triggerSelectButton.vala b/src/gui/triggerSelectButton.vala
index fd8505a..7132220 100644
--- a/src/gui/triggerSelectButton.vala
+++ b/src/gui/triggerSelectButton.vala
@@ -48,6 +48,7 @@ public class TriggerSelectButton : Gtk.ToggleButton {
/////////////////////////////////////////////////////////////////////
private Gdk.ModifierType lock_modifiers = Gdk.ModifierType.MOD2_MASK
+ |Gdk.ModifierType.SUPER_MASK
|Gdk.ModifierType.LOCK_MASK
|Gdk.ModifierType.MOD5_MASK;