Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > by-pkgid > 0abb67cc31f5617c59cab8212a9bda64 > files > 5

f-spot-0.5.0.3-3mdv2009.1.src.rpm

diff --git a/ChangeLog b/ChangeLog
index 2b5b733..8a44ce1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-10-23  Stephane Delcroix  <sdelcroix@novell.com>
+
+	* src/MainWindow.cs:
+	* tools/f-spot-import: fix the import uri to match the nautilus one,
+	avoid popping the multiple camera detection dialog.
+
 2008-10-17  Stephane Delcroix  <sdelcroix@novell.com>
 
 	* src/PhotoStore.cs: fix the subselect column names to work on both
diff --git a/src/MainWindow.cs b/src/MainWindow.cs
index e86538e..8f94f57 100644
--- a/src/MainWindow.cs
+++ b/src/MainWindow.cs
@@ -1659,6 +1659,7 @@ public class MainWindow {
 
 	public void ImportCamera (string camera_device)
 	{
+		Log.DebugFormat ("ImportCamera {0}", camera_device);
 		GPhotoCamera cam = new GPhotoCamera();
 
 		try {
@@ -1679,10 +1680,9 @@ public class MainWindow {
 				selected_cam = 0;
 			} else {
 				bool found = false;
-				if (camera_device != null) {
-					string port = camera_device.Remove (0, "gphoto2:".Length);
-					for (int i = 0; i < num_cameras; i++)
-						if (cam.CameraList.GetValue (i) == port) {
+				if (camera_device != null)
+					for (int i = 0; i < num_cameras; i++) {
+						if (camera_device.IndexOf (cam.CameraList.GetValue(i)) != 0) {
 							selected_cam = i;
 							found = true;
 							break;
diff --git a/tools/f-spot-import b/tools/f-spot-import
index 520aa43..da4e81b 100755
--- a/tools/f-spot-import
+++ b/tools/f-spot-import
@@ -1,20 +1,23 @@
-#!/bin/bash
+#!/bin/bash -x
 
 udi="$1"
 #xmessage $udi
-mount_point=`hal-get-property --udi="$udi" --key=volume.mount_point`
-if [ -n "$mount_point" ]; then
-      # USB Mass Storage camera: need to pass f-spot a mount point
 
-      f-spot --import "$mount_point"
+if [ "$udi" != "${udi#gphoto2:}" ]; then
+	# gphoto2, as passed by nautilus.
+	f-spot --import "$udi"
+	exit
+fi
+mount_point=`hal-get-property --udi="$udi" --key=volume.mount_point` || true
+if [ -n "$mount_point" ]; then
+	# USB Mass Storage camera: need to pass f-spot a mount point
+	f-spot --import "$mount_point"
 else
-     # Some other camera try GPhoto2
-
-     bus=`hal-get-property --udi="$udi" --key=usb.bus_number`
-     dev=`hal-get-property --udi="$udi" --key=usb.linux.device_number`
-     uri=`printf gphoto2:usb:%.3d,%.3d $bus $dev`
+	# Some other camera try GPhoto2
 
-     echo $uri
+	bus=`hal-get-property --udi="$udi" --key=usb.bus_number`
+	dev=`hal-get-property --udi="$udi" --key=usb.linux.device_number`
+	uri=`printf gphoto2:[usb:%.3d,%.3d] $bus $dev`
 
-     f-spot --import "$uri"
+	f-spot --import "$uri"
 fi