[Digikam-devel] extragear/graphics/digikam

Gilles Caulier caulier.gilles at free.fr
Tue Apr 4 21:23:45 BST 2006


SVN commit 526512 by cgilles:

digikam from trunk : improvement camera setup page :

- Using KListView look better than QListView
- Add gphoto logo to give more visibility to end users about internal camera interface (there is no camera drivers into digikam core).

CCMAIL: digikam-devel at kde.org 


 M  +2 -1      digikam/pics/Makefile.am  
 AM            digikam/pics/gphotologo.png  
 M  +42 -15    utilities/setup/setupcamera.cpp  
 M  +2 -0      utilities/setup/setupcamera.h  


--- trunk/extragear/graphics/digikam/digikam/pics/Makefile.am #526511:526512
@@ -1,6 +1,7 @@
 digikampicdir = $(kde_datadir)/digikam/data
 digikampic_DATA = image_broken.png histogram-lin.png histogram-log.png \
-	              image-full.png image-selection.png rating.png digikamlogo.png worldmap.png 
+	          image-full.png image-selection.png rating.png digikamlogo.png \
+	          worldmap.png gphotologo.png 
 
 iconsdir = $(kde_datadir)/digikam/icons/hicolor/32x32/actions
 icons_DATA = tag.png tag-folder.png tag-events.png tag-people.png tag-places.png 
** trunk/extragear/graphics/digikam/digikam/pics/gphotologo.png #property svn:mime-type
   + application/octet-stream
--- trunk/extragear/graphics/digikam/utilities/setup/setupcamera.cpp #526511:526512
@@ -25,13 +25,19 @@
 #include <qgroupbox.h>
 #include <qpushbutton.h>
 #include <qlayout.h>
-#include <qlistview.h>
 #include <qwhatsthis.h>
+#include <qtooltip.h>
 
 // KDE includes.
 
+#include <klistview.h>
 #include <klocale.h>
 #include <kmessagebox.h>
+#include <kurllabel.h>
+#include <kiconloader.h>
+#include <kglobalsettings.h>
+#include <kapplication.h>
+#include <kstandarddirs.h>
 
 // Local includes.
 
@@ -56,12 +62,12 @@
         autoDetectButton = 0;
     }
 
-    QListView*   listView;
+    KListView   *listView;
 
-    QPushButton* addButton;
-    QPushButton* removeButton;
-    QPushButton* editButton;
-    QPushButton* autoDetectButton;
+    QPushButton *addButton;
+    QPushButton *removeButton;
+    QPushButton *editButton;
+    QPushButton *autoDetectButton;
 };
 
 SetupCamera::SetupCamera( QWidget* parent )
@@ -73,16 +79,18 @@
     QGridLayout* groupBoxLayout = new QGridLayout( this, 2, 5, 0, KDialog::spacingHint() );
     groupBoxLayout->setAlignment( Qt::AlignTop );
 
-    d->listView = new QListView( this );
+    d->listView = new KListView( this );
     d->listView->addColumn( i18n("Title") );
     d->listView->addColumn( i18n("Model") );
     d->listView->addColumn( i18n("Port") );
     d->listView->addColumn( i18n("Path") );
     d->listView->setAllColumnsShowFocus(true);
-    groupBoxLayout->addMultiCellWidget( d->listView, 0, 4, 0, 0 );
+    groupBoxLayout->addMultiCellWidget( d->listView, 0, 5, 0, 0 );
     QWhatsThis::add( d->listView, i18n("<p>Here you can see the digital camera list used by digiKam "
-                                     "via the Gphoto interface."));
+                                       "via the Gphoto interface."));
 
+    // -------------------------------------------------------------
+
     d->addButton = new QPushButton( this );
     groupBoxLayout->addWidget( d->addButton, 0, 1 );
 
@@ -104,6 +112,15 @@
                                            QSizePolicy::Expanding );
     groupBoxLayout->addItem( spacer, 4, 1 );
 
+    KURLLabel *gphotoLogoLabel = new KURLLabel(this);
+    gphotoLogoLabel->setText(QString::null);
+    gphotoLogoLabel->setURL("http://www.gphoto.org");
+    KGlobal::dirs()->addResourceType("gphotologo", KGlobal::dirs()->kde_default("data") + "digikam/data");
+    QString directory = KGlobal::dirs()->findResourceDir("gphotologo", "gphotologo.png");
+    gphotoLogoLabel->setPixmap( QPixmap( directory + "gphotologo.png" ) );
+    QToolTip::add(gphotoLogoLabel, i18n("Visit Gphoto project website"));
+    groupBoxLayout->addWidget( gphotoLogoLabel, 5, 1 );
+
     adjustSize();
     mainLayout->addWidget(this);
 
@@ -112,8 +129,11 @@
     d->removeButton->setEnabled(false);
     d->editButton->setEnabled(false);
 
-    // connections
+    // -------------------------------------------------------------
 
+    connect(gphotoLogoLabel, SIGNAL(leftClickedURL(const QString&)),
+            this, SLOT(processGphotoURL(const QString&)));
+
     connect(d->listView, SIGNAL(selectionChanged()),
             this, SLOT(slotSelectionChanged()));
 
@@ -136,10 +156,11 @@
     if (clist) 
     {
         QPtrList<CameraType>* cl = clist->cameraList();
+
         for (CameraType *ctype = cl->first(); ctype;
              ctype = cl->next()) 
         {
-            new QListViewItem(d->listView, ctype->title(), ctype->model(),
+            new KListViewItem(d->listView, ctype->title(), ctype->model(),
                               ctype->port(), ctype->path());
         }
     }
@@ -150,6 +171,11 @@
     delete d;
 }
 
+void SetupCamera::processGphotoURL(const QString& url)
+{
+    KApplication::kApplication()->invokeBrowser(url);
+}
+
 void SetupCamera::slotSelectionChanged()
 {
     QListViewItem *item = d->listView->selectedItem();
@@ -191,8 +217,8 @@
     if (!item) return;
 
     CameraSelection *select = new CameraSelection;
-    select->setCamera(item->text(0), item->text(1),
-                      item->text(2), item->text(3));
+    select->setCamera(item->text(0), item->text(1), item->text(2), item->text(3));
+
     connect(select, SIGNAL(signalOkClicked(const QString&, const QString&, 
                                            const QString&, const QString&)),
             this,   SLOT(slotEditedCamera(const QString&, const QString&, 
@@ -225,14 +251,14 @@
     {
        KMessageBox::information(this, i18n("Found camera '%1' (%2) and added it to the list.")
                                 .arg(model).arg(port));
-       new QListViewItem(d->listView, model, model, port, "/");
+       new KListViewItem(d->listView, model, model, port, "/");
     }
 }
 
 void SetupCamera::slotAddedCamera(const QString& title, const QString& model,
                                   const QString& port, const QString& path)
 {
-    new QListViewItem(d->listView, title, model, port, path);
+    new KListViewItem(d->listView, title, model, port, path);
 }
 
 void SetupCamera::slotEditedCamera(const QString& title, const QString& model,
@@ -250,6 +276,7 @@
 void SetupCamera::applySettings()
 {
     CameraList* clist = CameraList::instance();
+
     if (clist) 
     {
         clist->clear();
--- trunk/extragear/graphics/digikam/utilities/setup/setupcamera.h #526511:526512
@@ -45,6 +45,8 @@
     
 private slots:
 
+    void processGphotoURL(const QString& url);
+
     void slotSelectionChanged();
 
     void slotAddCamera();



More information about the Digikam-devel mailing list