Bug 121784 - accessing the camera in mass storage mode just lists jpegs and no other filetypes
Summary: accessing the camera in mass storage mode just lists jpegs and no other filet...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Import-UMS (show other bugs)
Version: 0.8.1
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-11 19:47 UTC by Dennis Gnad
Modified: 2017-08-15 22:01 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 0.9.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Gnad 2006-02-11 19:47:04 UTC
Version:           0.8.1 (using KDE KDE 3.5.1)

Easy Description:
1. Camera is set to ptp mode, digikam lists all files on it (my raw files(*.NEF) and the jpeg files)

2. Camera is set to mass storage mode, digikam just lists jpeg files, but when I look at it in konqueror, I can also see the *.NEF files (all files..)

3. Reading the card in a card reader in mass storage mode, digikam just lists jpeg files, but when I look at it in konqueror, I can also see the *.NEF files (all files..)
Comment 1 caulier.gilles 2006-02-12 09:48:28 UTC
This problem have been reported to digikam-users ML. Take a look here :

http://mail.kde.org/pipermail/digikam-users/2006-February/000982.html

Check you camera mounted point properties. 

Here you can find a screenshot of camera interface displaying all image file types :

http://digikam3rdparty.free.fr/Screenshots/camera_gui_with_raw_files_preview.png


Gilles Caulier

 
Comment 2 Dennis Gnad 2006-02-12 10:13:20 UTC
Like the user on the mailing list said:

There is definately a bug in the "Mass Storage Camera" Type as "Mounted Camera" also works for me.
Comment 3 Dennis Gnad 2006-02-13 21:32:45 UTC
To fix it you could do this:
Disable the "Mass Storage Camera" Type and just allow the "Mounted Camera" type ( which is "Directory Browse"). An additional bad thing is, that the not-so-good working type is the auto-detected one. So delete it from the list, and select the other one (Mounted Camera) when the "Mass Storge Camera" is autodetected.
Comment 4 caulier.gilles 2006-04-03 11:41:03 UTC
SVN commit 525916 by cgilles:

digikam from trunk : Polishing and improving camera setup dialog. Add Tips on the bottom about how to set USB mass Storage camera. Add web Link to fresh cameras list supported by GPhoto2.
CCMAIL: digikam-devel@kde.org
CCBUGS: 121800, 121784

 M  +55 -68    cameraselection.cpp  


--- trunk/extragear/graphics/digikam/utilities/setup/cameraselection.cpp #525915:525916
@@ -25,7 +25,6 @@
 #include <qcombobox.h>
 #include <qgroupbox.h>
 #include <qlabel.h>
-#include <qlistview.h>
 #include <qpushbutton.h>
 #include <qradiobutton.h>
 #include <qvbuttongroup.h>
@@ -37,8 +36,10 @@
 // KDE includes.
 
 #include <kglobalsettings.h>
+#include <kactivelabel.h>
 #include <kurlrequester.h>
 #include <klocale.h>
+#include <klistview.h>
 
 // Local includes.
 
@@ -64,8 +65,6 @@
         umsMountURL      = 0;
     }
 
-    QListView     *listView;
-
     QLineEdit     *titleEdit;
 
     QVButtonGroup *portButtonGroup;
@@ -81,6 +80,8 @@
     QString        UMSCameraNameShown;
 
     QStringList    serialPortList;
+    
+    KListView     *listView;
 
     KURLRequester *umsMountURL;
 };
@@ -97,40 +98,33 @@
     QWidget *page = new QWidget( this );
     setMainWidget(page);
     
-    QVBoxLayout *topLayout =
-        new QVBoxLayout( page, 5, 5 ); 
+    QVBoxLayout *topLayout = new QVBoxLayout( page, 5, 5 ); 
 
-    QGroupBox* mainBox = new QGroupBox( page );
-    mainBox->setTitle( i18n( "Camera Configuration" ) );
-    mainBox->setColumnLayout(0, Qt::Vertical );
-    mainBox->layout()->setSpacing( 5 );
-    mainBox->layout()->setMargin( 5 );
-    QGridLayout* mainBoxLayout = new QGridLayout( mainBox->layout() );
-    mainBoxLayout->setAlignment( Qt::AlignTop );
+    // --------------------------------------------------------------
 
-    d->listView = new QListView( mainBox );
-    d->listView->addColumn( i18n("Cameras") );
-    d->listView->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,
-                                         QSizePolicy::Expanding));
-    mainBoxLayout->addMultiCellWidget( d->listView, 0, 4, 0, 0 );
+    QGroupBox* mainBox = new QGroupBox( 0, Qt::Vertical, i18n( "Camera Configuration" ), page );
+    mainBox->setInsideMargin(KDialogBase::marginHint());
+    mainBox->setInsideSpacing(KDialogBase::spacingHint());  
+    
+    QGridLayout* mainBoxLayout = new QGridLayout( mainBox->layout(), 5, 1, KDialog::spacingHint() );
+    
+    // --------------------------------------------------------------
 
-    QGroupBox* titleBox = new QGroupBox( mainBox );
-    titleBox->setTitle( i18n("Camera Title") );
-    titleBox->setColumnLayout(0, Qt::Vertical );
-    titleBox->layout()->setSpacing( 5 );
-    titleBox->layout()->setMargin( 5 );
-    QVBoxLayout* titleBoxLayout = new QVBoxLayout( titleBox->layout() );
+    d->listView = new KListView( mainBox );
+    d->listView->addColumn( i18n("Camera List") );
+    d->listView->setAllColumnsShowFocus(true);
+    d->listView->setResizeMode(KListView::LastColumn);
+    d->listView->setMinimumWidth(350);
 
-    d->titleEdit = new QLineEdit( titleBox );
-    titleBoxLayout->addWidget( d->titleEdit );
+    // --------------------------------------------------------------
 
-    mainBoxLayout->addWidget( titleBox, 0, 1 );
+    QGroupBox* titleBox = new QGroupBox( 1, Qt::Vertical, i18n("Camera Title"), mainBox );
+    d->titleEdit = new QLineEdit( titleBox );
     
-    d->portButtonGroup = new QVButtonGroup( mainBox );
-    d->portButtonGroup->setTitle( i18n( "Camera Port Type" ) );
+    // --------------------------------------------------------------
+    
+    d->portButtonGroup = new QVButtonGroup( i18n("Camera Port Type"), mainBox );
     d->portButtonGroup->setRadioButtonExclusive( true );
-    d->portButtonGroup->layout()->setSpacing( 5 );
-    d->portButtonGroup->layout()->setMargin( 5 );
 
     d->usbButton = new QRadioButton( d->portButtonGroup );
     d->usbButton->setText( i18n( "USB" ) );
@@ -138,51 +132,44 @@
     d->serialButton = new QRadioButton( d->portButtonGroup );
     d->serialButton->setText( i18n( "Serial" ) );
 
-    mainBoxLayout->addWidget( d->portButtonGroup, 1, 1 );
-
-    QGroupBox* portPathBox = new QGroupBox( mainBox );
-    portPathBox->setTitle( i18n( "Camera Port Path" ) );
-    portPathBox->setColumnLayout(0, Qt::Vertical );
-    portPathBox->layout()->setSpacing( 5 );
-    portPathBox->layout()->setMargin( 5 );
-    QVBoxLayout* portPathBoxLayout = new QVBoxLayout( portPathBox->layout() );
-    portPathBoxLayout->setAlignment( Qt::AlignTop );
-
+    // --------------------------------------------------------------
+    
+    QGroupBox* portPathBox = new QGroupBox( 1, Qt::Horizontal, i18n( "Camera Port Path" ), mainBox );
     d->portPathLabel = new QLabel( portPathBox);
-    d->portPathLabel->setText( i18n( "only for serial port\n"
-			             "cameras" ) );
-    portPathBoxLayout->addWidget( d->portPathLabel );
+    d->portPathLabel->setText( i18n( "Note: only for serial port camera" ) );
 
     d->portPathComboBox = new QComboBox( false, portPathBox );
     d->portPathComboBox->setDuplicatesEnabled( false );
-    portPathBoxLayout->addWidget( d->portPathComboBox );
 
-    mainBoxLayout->addWidget( portPathBox, 2, 1 );
+    // --------------------------------------------------------------
 
-    QGroupBox* umsMountBox = new QGroupBox( mainBox );
-    umsMountBox->setTitle( i18n( "Camera Mount Path" ) );
-    umsMountBox->setColumnLayout(0, Qt::Vertical );
-    umsMountBox->layout()->setSpacing( 5 );
-    umsMountBox->layout()->setMargin( 5 );
-    QVBoxLayout* umsMountBoxLayout = new QVBoxLayout( umsMountBox->layout() );
-    umsMountBoxLayout->setAlignment( Qt::AlignTop );
+    QGroupBox* umsMountBox = new QGroupBox( 1, Qt::Horizontal, i18n( "Camera Mount Path"), mainBox );
 
     QLabel* umsMountLabel = new QLabel( umsMountBox );
-    umsMountLabel->setText( i18n( "only for USB/IEEE mass storage\n"
-                                  "cameras" ) );
-    umsMountBoxLayout->addWidget( umsMountLabel );
+    umsMountLabel->setText( i18n( "Note: only for USB/IEEE mass storage camera" ) );
 
     d->umsMountURL = new KURLRequester( QString("/mnt/camera"), umsMountBox);
     d->umsMountURL->setMode(KFile::Directory | KFile::ExistingOnly | KFile::LocalOnly);
+    
+    // --------------------------------------------------------------
+    
+    KActiveLabel* explanation = new KActiveLabel(mainBox);
+    explanation->setText(i18n("<p>To set an <b>Usb Mass Storage</b> camera, please use <b>%1</b> from camera list.<p> "
+                              "<p>To see a fresh list of supported cameras, take a look at "
+                              "<a href='http://www.teaser.fr/~hfiguiere/linux/digicam.html'>this url</a>.</p>")
+                              .arg(d->UMSCameraNameShown));    
 
-    umsMountBoxLayout->addWidget( d->umsMountURL );
-    mainBoxLayout->addWidget( umsMountBox, 3, 1 );
+    // --------------------------------------------------------------
+    
+    mainBoxLayout->addMultiCellWidget( d->listView, 0, 5, 0, 0 );
+    mainBoxLayout->addMultiCellWidget( titleBox, 0, 0, 1, 1 );
+    mainBoxLayout->addMultiCellWidget( d->portButtonGroup, 1, 1, 1, 1 );
+    mainBoxLayout->addMultiCellWidget( portPathBox, 2, 2, 1, 1 );
+    mainBoxLayout->addMultiCellWidget( umsMountBox, 3, 3, 1, 1 );
+    mainBoxLayout->addMultiCellWidget( explanation, 4, 4, 1, 1 );
+    mainBoxLayout->setColStretch( 0, 10 );
+    mainBoxLayout->setRowStretch( 5, 10 );
 
-    QSpacerItem* spacer = new QSpacerItem( 20, 20,
-                                           QSizePolicy::Minimum,
-                                           QSizePolicy::Expanding );
-    mainBoxLayout->addItem( spacer, 4, 1 );
-
     topLayout->addWidget( mainBox );
 
     // Connections --------------------------------------------------
@@ -246,17 +233,17 @@
 {
     int count = 0;
     QStringList clist;
-
-    GPIface::getSupportedCameras(count, clist);
-
     QString cname;
-    for (int i=0; i<count; i++) 
+    
+    GPIface::getSupportedCameras(count, clist);
+    
+    for (int i = 0 ; i < count ; i++) 
     {
         cname = clist[i];
         if (cname == d->UMSCameraNameActual)
-            new QListViewItem(d->listView, d->UMSCameraNameShown);
+            new KListViewItem(d->listView, d->UMSCameraNameShown);
         else
-            new QListViewItem(d->listView, cname);
+            new KListViewItem(d->listView, cname);
     }
 }
 
Comment 5 caulier.gilles 2006-07-18 09:41:12 UTC
There is no camera drivers in digiKam. libgphoto 2.2 have fixed some PTP driver problems. Look at #121691

The new camera setup dialog available with 0.9.0 release is enough to help digiKam user with camera settings. I want let's a stnadard implementation about digiKam and gphoto2 interface. disable PTP drivers and remplace it by Mounted Camera mode can be a contraint with some old cameras.

I close this file now.

Gilles Caulier