f-spot r4348 - in trunk: . src
- From: sdelcroix svn gnome org
- To: svn-commits-list gnome org
- Subject: f-spot r4348 - in trunk: . src
- Date: Mon, 15 Sep 2008 14:27:07 +0000 (UTC)
Author: sdelcroix
Date: Mon Sep 15 14:27:07 2008
New Revision: 4348
URL: http://svn.gnome.org/viewvc/f-spot?rev=4348&view=rev
Log:
2008-09-15 Stephane Delcroix <sdelcroix novell com>
* src/MainWindows.cs
* src/FullScreenView.cs:
* src/f-spot.glade: some key handling refactoring, allow rating
and deleting in fullscreen. Patch from Anton Keks, fixes bgo #552145.
Modified:
trunk/ChangeLog
trunk/src/FullScreenView.cs
trunk/src/MainWindow.cs
trunk/src/f-spot.glade
Modified: trunk/src/FullScreenView.cs
==============================================================================
--- trunk/src/FullScreenView.cs (original)
+++ trunk/src/FullScreenView.cs Mon Sep 15 14:27:07 2008
@@ -234,7 +234,7 @@
this.Destroy ();
}
- private void HideToolbarAction (object sender, System.EventArgs args)
+ private void HideToolbarAction (object sender, System.EventArgs args)
{
scroll.HideControls (true);
controls.Dismiss ();
@@ -316,45 +316,30 @@
protected override bool OnKeyPressEvent (Gdk.EventKey key)
{
- bool allow_quit = false;
-
switch (key.Key) {
// quit only on certain keys
case Gdk.Key.F:
case Gdk.Key.f:
+ case Gdk.Key.Q:
+ case Gdk.Key.q:
case Gdk.Key.F11:
case Gdk.Key.Escape:
- allow_quit = true;
- break;
+ Quit ();
+ return true;
// display infobox for 'i' key
case Gdk.Key.i:
case Gdk.Key.I:
InfoAction (info_button, null);
- break;
+ return true;
case Gdk.Key.bracketleft:
new RotateLeftAction (view.Item).Activate ();
- break;
+ return true;
case Gdk.Key.bracketright:
new RotateRightAction (view.Item).Activate ();
- break;
- }
-
- if (key == null) {
- Log.Debug ("Key == null: " + key);
- return false;
+ return true;
}
- if (view == null) {
- Log.Debug ("view == null: " + key);
- return false;
- }
-
- bool retval = base.OnKeyPressEvent (key);
- if (allow_quit && !retval)
- Quit ();
- else
- view.Fit = false;
- return retval;
+ return base.OnKeyPressEvent (key);
}
}
}
Modified: trunk/src/MainWindow.cs
==============================================================================
--- trunk/src/MainWindow.cs (original)
+++ trunk/src/MainWindow.cs Mon Sep 15 14:27:07 2008
@@ -1310,58 +1310,6 @@
args.RetVal = true;
}
- void HandleIconViewKeyPressEvent (object sender, Gtk.KeyPressEventArgs args)
- {
- bool alt = ModifierType.Mod1Mask == (args.Event.State & ModifierType.Mod1Mask);
- bool shift = ModifierType.ShiftMask == (args.Event.State & ModifierType.ShiftMask);
-
- switch (args.Event.Key) {
- case Gdk.Key.Delete:
- if (shift)
- HandleDeleteCommand (sender, (EventArgs) args);
- else
- HandleRemoveCommand (sender, (EventArgs) args);
- args.RetVal = true;
- break;
- case Gdk.Key.Key_0:
- if (alt) {
- HandleRatingMenuSelected (0);
- args.RetVal = true;
- }
- break;
- case Gdk.Key.Key_1:
- if (alt) {
- HandleRatingMenuSelected (1);
- args.RetVal = true;
- }
- break;
- case Gdk.Key.Key_2:
- if (alt) {
- HandleRatingMenuSelected (2);
- args.RetVal = true;
- }
- break;
- case Gdk.Key.Key_3:
- if (alt) {
- HandleRatingMenuSelected (3);
- args.RetVal = true;
- }
- break;
- case Gdk.Key.Key_4:
- if (alt) {
- HandleRatingMenuSelected (4);
- args.RetVal = true;
- }
- break;
- case Gdk.Key.Key_5:
- if (alt) {
- HandleRatingMenuSelected (5);
- args.RetVal = true;
- }
- break;
- }
- }
-
public void ImportUriList (UriList list, bool copy)
{
ImportCommand command = new ImportCommand (main_window);
@@ -1470,72 +1418,99 @@
}
}
- //
- // PhotoView event handlers.
- //
-
- void HandlePhotoViewKeyPressEvent (object sender, Gtk.KeyPressEventArgs args)
- {
+ public void HandleCommonPhotoCommands (object sender, Gtk.KeyPressEventArgs args) {
bool alt = ModifierType.Mod1Mask == (args.Event.State & ModifierType.Mod1Mask);
bool shift = ModifierType.ShiftMask == (args.Event.State & ModifierType.ShiftMask);
+ bool handled = true;
switch (args.Event.Key) {
- case Gdk.Key.F:
- case Gdk.Key.f:
- HandleViewFullscreen (sender, args);
- args.RetVal = true;
- break;
- case Gdk.Key.Escape:
- SetViewMode (ModeType.IconView);
- args.RetVal = true;
- break;
case Gdk.Key.Delete:
if (shift)
- HandleDeleteCommand (sender, (EventArgs) args);
+ HandleDeleteCommand (sender, args);
else
- HandleRemoveCommand (sender, (EventArgs) args);
- args.RetVal = true;
+ HandleRemoveCommand (sender, args);
break;
case Gdk.Key.Key_0:
- if (alt) {
+ if (alt)
HandleRatingMenuSelected (0);
- args.RetVal = true;
- }
break;
case Gdk.Key.Key_1:
- if (alt) {
+ if (alt)
HandleRatingMenuSelected (1);
- args.RetVal = true;
- }
break;
case Gdk.Key.Key_2:
- if (alt) {
+ if (alt)
HandleRatingMenuSelected (2);
- args.RetVal = true;
- }
break;
case Gdk.Key.Key_3:
- if (alt) {
+ if (alt)
HandleRatingMenuSelected (3);
- args.RetVal = true;
- }
break;
case Gdk.Key.Key_4:
- if (alt) {
+ if (alt)
HandleRatingMenuSelected (4);
- args.RetVal = true;
- }
break;
case Gdk.Key.Key_5:
- if (alt) {
+ if (alt)
HandleRatingMenuSelected (5);
- args.RetVal = true;
- }
break;
default:
+ handled = false;
+ break;
+ }
+
+ if (handled)
+ args.RetVal = result;
+ }
+
+ void HandleIconViewKeyPressEvent (object sender, Gtk.KeyPressEventArgs args)
+ {
+ HandleCommonPhotoCommands (sender, args);
+ if ((bool)args.RetVal)
+ return;
+
+ switch (args.Event.Key) {
+ case Gdk.Key.F:
+ case Gdk.Key.f:
+ HandleViewFullscreen (sender, args);
+ args.RetVal = true;
+ break;
+ }
+ }
+
+ //
+ // FullScreenView event handlers.
+ //
+
+ void HandleFullScreenViewKeyPressEvent (object sender, Gtk.KeyPressEventArgs args)
+ {
+ HandleCommonPhotoCommands (sender, args);
+ if ((bool)args.RetVal)
+ // this will hide any panels again that might have appeared above the fullscreen view
+ fsview.Present ();
+ }
+
+ //
+ // PhotoView event handlers.
+ //
+
+ void HandlePhotoViewKeyPressEvent (object sender, Gtk.KeyPressEventArgs args)
+ {
+ HandleCommonPhotoCommands (sender, args);
+ if ((bool)args.RetVal)
+ return;
+
+ switch (args.Event.Key) {
+ case Gdk.Key.F:
+ case Gdk.Key.f:
+ HandleViewFullscreen (sender, args);
+ args.RetVal = true;
+ break;
+ case Gdk.Key.Escape:
+ SetViewMode (ModeType.IconView);
+ args.RetVal = true;
break;
}
- return;
}
void HandlePhotoViewUpdateStarted (PhotoView sender)
@@ -2233,6 +2208,7 @@
if (fsview == null) {
fsview = new FSpot.FullScreenView (query, main_window);
fsview.Destroyed += HandleFullScreenViewDestroy;
+ fsview.KeyPressEvent += HandleFullScreenViewKeyPressEvent;
fsview.View.Item.Index = active;
} else {
// FIXME this needs to be another mode like PhotoView and IconView mode.
@@ -2393,7 +2369,7 @@
Widget wsender = sender as Widget;
Gtk.Window toplevel = null;
- if (wsender != null)
+ if (wsender != null && !(wsender is MenuItem))
toplevel = (Gtk.Window) wsender.Toplevel;
else if (fsview != null)
toplevel = fsview;
@@ -2415,8 +2391,6 @@
photos.Length);
string ok_caption = Catalog.GetPluralString ("_Delete photo", "_Delete photos", photos.Length);
-
-
if (ResponseType.Ok == HigMessageDialog.RunHigConfirmation(GetToplevel (sender),
DialogFlags.DestroyWithParent,
MessageType.Warning,
Modified: trunk/src/f-spot.glade
==============================================================================
--- trunk/src/f-spot.glade (original)
+++ trunk/src/f-spot.glade Mon Sep 15 14:27:07 2008
@@ -3291,6 +3291,7 @@
<property name="label" translatable="yes">_Delete From Drive</property>
<property name="use_underline">True</property>
<signal name="activate" handler="HandleDeleteCommand"/>
+ <accelerator key="Delete" modifiers="GDK_SHIFT_MASK" signal="activate"/>
</widget>
</child>
<child>
@@ -3299,6 +3300,7 @@
<property name="label" translatable="yes">_Remove From Catalog</property>
<property name="use_underline">True</property>
<signal name="activate" handler="HandleRemoveCommand"/>
+ <accelerator key="Delete" signal="activate"/>
</widget>
</child>
<child>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]