Bug 254508 - Please turn the "send file" wizard into a simpler interface with just one step
Summary: Please turn the "send file" wizard into a simpler interface with just one step
Status: RESOLVED FIXED
Alias: None
Product: solid
Classification: Frameworks and Libraries
Component: bluetooth (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: ---
Assignee: Alex Fiestas
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-17 23:40 UTC by Flavio Stanchina
Modified: 2011-01-19 20:07 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
BAD: embedded file open widget (31.64 KB, image/png)
2011-01-11 20:07 UTC, Martin Koller
Details
GOOD: normal file open dialog (87.49 KB, image/png)
2011-01-11 20:08 UTC, Martin Koller
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Flavio Stanchina 2010-10-17 23:40:59 UTC
Version:           unspecified (using KDE 4.4.5) 
OS:                Linux

Please turn the "send file" wizard into a simpler interface with just one step, like it was in KDE 3. The current interface looks like it was copied from the same functionality in Windows and it is extremely annoying, as one has to press the "next" button a few times in addition to actually selecting the file to send and the destination device.

At the very least, please remove the first page from the wizard as it is useless, it just tells you that it's going to send a file to the device, like I didn't know it when I launched it...

Reproducible: Always
Comment 1 Alex Fiestas 2010-10-18 09:37:36 UTC
If you want something to be changed, you better provide a mockup or something that might be more useful to us (developers) to understand your concerns. The first version of BlueDevil is focused on features, not usability, but for 1.1 we are going to concentrate on usability+elegance, so will be a good time to change that.

Thanks.
Comment 2 Martin Koller 2011-01-11 20:06:33 UTC
What should be changed:
1.) remove the first page of the wizard
2.) as the second page, do not embed the file dialog into the wizard - it makes the file open dialog widget look completely wrong and makes it unusable (see the 2 attached screenshots). You even can not save/restore the size of it. Just use the file selection dialog as any other KDE application
Comment 3 Martin Koller 2011-01-11 20:07:17 UTC
Created attachment 55882 [details]
BAD: embedded file open widget
Comment 4 Martin Koller 2011-01-11 20:08:15 UTC
Created attachment 55883 [details]
GOOD: normal file open dialog
Comment 5 Alex Fiestas 2011-01-14 05:24:03 UTC
I loved your idea, I'm going to implement it right now.

Thanks for the wish and for the recommendations.
Comment 6 Alex Fiestas 2011-01-19 20:07:50 UTC
	A	 src/actionplugins/sendfile/helper/pages/selectfilediscover.ui	 [License: Trivialfile.]

commit e2d2b316424a310f6e9aaca2521d2494173ca54d
Author: Alex Fiestas <alex@eyeos.org>
Date:   Wed Jan 19 20:00:44 2011 +0100

    Refactoring of SendFile Wizard, now it only has 1 page.
    
    BUG: 254508
    FIXED-IN: 1.1

diff --git a/src/actionplugins/sendfile/helper/CMakeLists.txt b/src/actionplugins/sendfile/helper/CMakeLists.txt
index 293d409..a6b8ef7 100644
--- a/src/actionplugins/sendfile/helper/CMakeLists.txt
+++ b/src/actionplugins/sendfile/helper/CMakeLists.txt
@@ -8,18 +8,15 @@ set(sendfilehelper_SRCS
     main.cpp
     discoverwidget.cpp
     sendfilewizard.cpp
-    pages/selectfilespage.cpp
     pages/selectdevicepage.cpp
     pages/connectingpage.cpp
-    pages/sendintropage.cpp
     obexagent.cpp
     sendfilesjob.cpp
 )
 
 kde4_add_ui_files(sendfilehelper_SRCS
-    discover.ui
     pages/connecting.ui
-    pages/sendintro.ui
+    pages/selectfilediscover.ui
 )
 
 qt4_add_dbus_interface(sendfilehelper_SRCS org.openobex.Client.xml obex_client)
diff --git a/src/actionplugins/sendfile/helper/discover.ui b/src/actionplugins/sendfile/helper/discover.ui
index 2b2b0d8..a2abbbd 100644
--- a/src/actionplugins/sendfile/helper/discover.ui
+++ b/src/actionplugins/sendfile/helper/discover.ui
@@ -27,21 +27,7 @@
       </widget>
      </item>
      <item>
-      <layout class="QHBoxLayout" name="horizontalLayout_2">
-       <item>
-        <widget class="QProgressBar" name="progressBar">
-         <property name="maximum">
-          <number>0</number>
-         </property>
-         <property name="value">
-          <number>0</number>
-         </property>
-         <property name="textVisible">
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-      </layout>
+      <layout class="QHBoxLayout" name="horizontalLayout_2"/>
      </item>
     </layout>
    </item>
diff --git a/src/actionplugins/sendfile/helper/pages/selectdevicepage.cpp b/src/actionplugins/sendfile/helper/pages/selectdevicepage.cpp
index 1da6056..b84bb66 100644
--- a/src/actionplugins/sendfile/helper/pages/selectdevicepage.cpp
+++ b/src/actionplugins/sendfile/helper/pages/selectdevicepage.cpp
@@ -24,20 +24,40 @@
 #include "discoverwidget.h"
 #include "../sendfilewizard.h"
 
+#include <QDesktopServices>
 #include <QtGui/QVBoxLayout>
+
+#include <KUrl>
+#include <kfiledialog.h>
 #include <kfilewidget.h>
 #include <kdiroperator.h>
+#include <kurlrequester.h>
+#include <kurlcombobox.h>
+#include <kpixmapsequenceoverlaypainter.h>
+#include <KDebug>
 
 #include <bluedevil/bluedevil.h>
+#include <QLabel>
 
 using namespace BlueDevil;
-SelectDevicePage::SelectDevicePage(QWidget* parent): QWizardPage(parent)
+SelectDevicePage::SelectDevicePage(QWidget* parent): QWizardPage(parent), m_dialog(0)
 {
+    setupUi(this);
+
     DiscoverWidget *widget = new DiscoverWidget(this);
-    QVBoxLayout *layout = new QVBoxLayout(this);
-    layout->addWidget(widget);
+    widget->setContentsMargins(0, 0, 0, 0);
+    discoverLayout->addWidget(widget);
+
+    KPixmapSequenceOverlayPainter *workingPainter = new KPixmapSequenceOverlayPainter(this);
+    workingPainter->setWidget(working);
+    workingPainter->start();
+
+    int buttonSize = selectBtn->sizeHint().height();
+    selectBtn->setFixedSize(buttonSize, buttonSize);
+    selectBtn->setIcon(KIcon("document-open"));
 
     connect(widget, SIGNAL(deviceSelected(Device*)), this, SLOT(deviceSelected(Device*)));
+    connect(selectBtn, SIGNAL(clicked(bool)), this, SLOT(openFileDialog()));
 }
 
 
@@ -51,11 +71,39 @@ void SelectDevicePage::deviceSelected(Device* device)
     emit completeChanged();
 }
 
+void SelectDevicePage::openFileDialog()
+{
+    //Don't worry MLaurent, I'm not going to check the pointer before delete it :)
+    delete m_dialog;
+
+    m_dialog = new KFileDialog(KUrl(QDesktopServices::storageLocation(QDesktopServices::HomeLocation)), "*", this);
+    m_dialog->setMode(KFile::Files);
+
+    static_cast<SendFileWizard* >(wizard())->setFileDialog(m_dialog);
+    connect(m_dialog, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));
+
+    m_dialog->exec();
+}
+
+void SelectDevicePage::selectionChanged()
+{
+    if (m_dialog->selectedUrls().isEmpty()) {
+        selectLbl->setText(i18n("Select one or more files:"));
+    } else {
+        selectLbl->setText(i18n("Selected files: <b>%1</b>").arg(m_dialog->selectedUrls().count()));
+    }
+    emit completeChanged();
+}
+
 bool SelectDevicePage::isComplete() const
 {
     if (!static_cast<SendFileWizard* >(wizard())->device()) {
         return false;
     }
 
+    if (!m_dialog || m_dialog->selectedUrls().isEmpty()) {
+        return false;
+    }
+
     return true;
 }
diff --git a/src/actionplugins/sendfile/helper/pages/selectdevicepage.h b/src/actionplugins/sendfile/helper/pages/selectdevicepage.h
index 9500818..daa03dd 100644
--- a/src/actionplugins/sendfile/helper/pages/selectdevicepage.h
+++ b/src/actionplugins/sendfile/helper/pages/selectdevicepage.h
@@ -23,14 +23,19 @@
 #ifndef SELECTDEVICEPAGE_H
 #define SELECTDEVICEPAGE_H
 
+#include "ui_selectfilediscover.h"
+
 #include <QWizard>
 
+class KUrl;
+class KFileDialog;
 namespace BlueDevil {
     class Device;
 }
 using namespace BlueDevil;
 
-class SelectDevicePage : public QWizardPage
+class SelectDevicePage : public QWizardPage ,
+        public Ui::SelectFileDiscover
 {
 Q_OBJECT
 public:
@@ -40,6 +45,11 @@ public:
 
 private Q_SLOTS:
     void deviceSelected(Device*);
+    void openFileDialog();
+    void selectionChanged();
+
+private:
+    KFileDialog *m_dialog;
 };
 
 #endif // SELECTDEVICEPAGE_H
diff --git a/src/actionplugins/sendfile/helper/pages/selectfilediscover.ui b/src/actionplugins/sendfile/helper/pages/selectfilediscover.ui
new file mode 100644
index 0000000..86235fc
--- /dev/null
+++ b/src/actionplugins/sendfile/helper/pages/selectfilediscover.ui
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SelectFileDiscover</class>
+ <widget class="QWidget" name="SelectFileDiscover">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>658</width>
+    <height>396</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="sizeConstraint">
+    <enum>QLayout::SetMinimumSize</enum>
+   </property>
+   <property name="margin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Select a device from the list:</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QWidget" name="widget_2" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_4">
+      <property name="margin">
+       <number>0</number>
+      </property>
+      <item>
+       <layout class="QHBoxLayout" name="discoverLayout"/>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QWidget" name="widget" native="true">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="margin">
+       <number>4</number>
+      </property>
+      <item>
+       <widget class="QWidget" name="working" native="true">
+        <property name="minimumSize">
+         <size>
+          <width>24</width>
+          <height>24</height>
+         </size>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_2">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeType">
+         <enum>QSizePolicy::Fixed</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>4</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QLabel" name="label_3">
+        <property name="text">
+         <string>Scanning</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>289</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QLabel" name="selectLbl">
+        <property name="text">
+         <string>Select one or more files:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="KPushButton" name="selectBtn">
+        <property name="toolTip">
+         <string extracomment="Open file dialog"/>
+        </property>
+        <property name="flat">
+         <bool>true</bool>
+        </property>
+        <property name="isDragEnabled" stdset="0">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>KPushButton</class>
+   <extends>QPushButton</extends>
+   <header>kpushbutton.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/actionplugins/sendfile/helper/pages/selectfilespage.cpp b/src/actionplugins/sendfile/helper/pages/selectfilespage.cpp
deleted file mode 100644
index f80123f..0000000
--- a/src/actionplugins/sendfile/helper/pages/selectfilespage.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/***************************************************************************
- *   This file is part of the KDE project                                  *
- *                                                                         *
- *   Copyright (C) 2010 Alejandro Fiestas Olivares <alex@ufocoders.com>    *
- *   Copyright (C) 2010 UFO Coders <info@ufocoders.com>                    *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
-
-#include "selectfilespage.h"
-#include "../sendfilewizard.h"
-
-#include <kfilewidget.h>
-#include <kdiroperator.h>
-#include <kurl.h>
-
-#include <QDebug>
-
-#include <QtGui/QVBoxLayout>
-#include <QtGui/QLabel>
-
-#include <QDesktopServices>
-
-SelectFilesPage::SelectFilesPage(QWidget* parent): QWizardPage(parent)
-{
-    m_files = new KFileWidget(KUrl(QDesktopServices::storageLocation(QDesktopServices::HomeLocation)), this);
-    m_files->setMode(KFile::Files);
-
-    connect(m_files, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));
-
-    QVBoxLayout *layout = new QVBoxLayout(this);
-    layout->addWidget(m_files);
-}
-
-void SelectFilesPage::initializePage()
-{
-    static_cast<SendFileWizard* >(wizard())->setFileWidget(m_files);
-}
-
-
-void SelectFilesPage::selectionChanged()
-{
-    emit completeChanged();
-}
-
-bool SelectFilesPage::isComplete() const
-{
-    return !m_files->dirOperator()->selectedItems().isEmpty();
-}
\ No newline at end of file
diff --git a/src/actionplugins/sendfile/helper/pages/selectfilespage.h b/src/actionplugins/sendfile/helper/pages/selectfilespage.h
deleted file mode 100644
index 1628347..0000000
--- a/src/actionplugins/sendfile/helper/pages/selectfilespage.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/***************************************************************************
- *   This file is part of the KDE project                                  *
- *                                                                         *
- *   Copyright (C) 2010 Alejandro Fiestas Olivares <alex@ufocoders.com>    *
- *   Copyright (C) 2010 UFO Coders <info@ufocoders.com>                    *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
-
-#ifndef SELECTFILESPAGE_H
-#define SELECTFILESPAGE_H
-
-#include <QtGui/QWizard>
-
-class KFileWidget;
-
-class SelectFilesPage : public QWizardPage
-{
-Q_OBJECT
-public:
-    SelectFilesPage(QWidget* parent = 0);
-
-    virtual bool isComplete() const;
-    virtual void initializePage();
-private Q_SLOTS:
-    void selectionChanged();
-
-private:
-    KFileWidget *m_files;
-};
-
-#endif // SELECTFILESPAGE_H
diff --git a/src/actionplugins/sendfile/helper/pages/sendintro.ui b/src/actionplugins/sendfile/helper/pages/sendintro.ui
deleted file mode 100644
index 9274b98..0000000
--- a/src/actionplugins/sendfile/helper/pages/sendintro.ui
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Intro</class>
- <widget class="QWidget" name="Intro">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string notr="true"/>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Send the selected files to the selected device</string>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/actionplugins/sendfile/helper/pages/sendintropage.cpp b/src/actionplugins/sendfile/helper/pages/sendintropage.cpp
deleted file mode 100644
index 9e45f87..0000000
--- a/src/actionplugins/sendfile/helper/pages/sendintropage.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/***************************************************************************
- *   This file is part of the KDE project                                  *
- *                                                                         *
- *   Copyright (C) 2010 Alejandro Fiestas Olivares <alex@ufocoders.com>    *
- *   Copyright (C) 2010 UFO Coders <info@ufocoders.com>                    *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
-
-#include "sendintropage.h"
-
-SendIntroPage::SendIntroPage(QWidget* parent): QWizardPage(parent)
-{
-    setupUi(this);
-}
\ No newline at end of file
diff --git a/src/actionplugins/sendfile/helper/pages/sendintropage.h b/src/actionplugins/sendfile/helper/pages/sendintropage.h
deleted file mode 100644
index e1417ed..0000000
--- a/src/actionplugins/sendfile/helper/pages/sendintropage.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************
- *   This file is part of the KDE project                                  *
- *                                                                         *
- *   Copyright (C) 2010 Alejandro Fiestas Olivares <alex@ufocoders.com>    *
- *   Copyright (C) 2010 UFO Coders <info@ufocoders.com>                    *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
-
-#ifndef SENDINTROPAGE_H
-#define SENDINTROPAGE_H
-
-#include "ui_sendintro.h"
-
-#include <QtGui/QWizard>
-
-
-class SendIntroPage : public QWizardPage, public Ui::Intro
-{
-
-public :
-    SendIntroPage(QWidget* parent = 0);
-};
-
-#endif // SENDINTROPAGE_H
diff --git a/src/actionplugins/sendfile/helper/sendfilesjob.cpp b/src/actionplugins/sendfile/helper/sendfilesjob.cpp
index 881985e..211a6b5 100644
--- a/src/actionplugins/sendfile/helper/sendfilesjob.cpp
+++ b/src/actionplugins/sendfile/helper/sendfilesjob.cpp
@@ -26,14 +26,14 @@
 
 #include "obex_client.h"
 
-#include <KFileItemList>
 #include <KLocalizedString>
 #include <KDebug>
 
 #include <bluedevil/bluedevil.h>
+#include <kfile.h>
 
 using namespace BlueDevil;
-SendFilesJob::SendFilesJob(KFileItemList list, Device *device, ObexAgent *agent, QObject* parent): KJob(parent)
+SendFilesJob::SendFilesJob(KUrl::List list, Device* device, ObexAgent* agent, QObject* parent): KJob(parent)
 ,m_currentTransferJob(0)
 {
     m_agent = agent;
@@ -42,12 +42,13 @@ SendFilesJob::SendFilesJob(KFileItemList list, Device *device, ObexAgent *agent,
     m_totalSize = 0;
     m_progress = 0;
 
-    Q_FOREACH(const KFileItem &item, list) {
-        if (item.isLocalFile()) {
-            m_filesToSend << item.url().path();
-            kDebug() << "Adding size : " << item.size();
-            m_filesToSendSize << item.size();
-            m_totalSize += item.size();
+    Q_FOREACH(const KUrl &url, list) {
+        if (url.isLocalFile()) {
+            m_filesToSend << url.path();
+            QFile file(url.url());
+            kDebug() << "Adding size : " << file.size();
+            m_filesToSendSize << file.size();
+            m_totalSize += file.size();
         }
     }
 
diff --git a/src/actionplugins/sendfile/helper/sendfilesjob.h b/src/actionplugins/sendfile/helper/sendfilesjob.h
index 0c9b108..3fb044a 100644
--- a/src/actionplugins/sendfile/helper/sendfilesjob.h
+++ b/src/actionplugins/sendfile/helper/sendfilesjob.h
@@ -43,7 +43,7 @@ class SendFilesJob : public KJob
 {
 Q_OBJECT
 public:
-    SendFilesJob(KFileItemList list, BlueDevil::Device* device, ObexAgent* agent, QObject* parent = 0);
+    SendFilesJob(KUrl::List list, BlueDevil::Device* device, ObexAgent* agent, QObject* parent = 0);
 
     virtual void start();
     virtual bool doKill();
diff --git a/src/actionplugins/sendfile/helper/sendfilewizard.cpp b/src/actionplugins/sendfile/helper/sendfilewizard.cpp
index 029808c..c1fb97d 100644
--- a/src/actionplugins/sendfile/helper/sendfilewizard.cpp
+++ b/src/actionplugins/sendfile/helper/sendfilewizard.cpp
@@ -18,10 +18,8 @@
 
 #include "sendfilewizard.h"
 #include "obexagent.h"
-#include "pages/selectfilespage.h"
 #include "pages/selectdevicepage.h"
 #include "pages/connectingpage.h"
-#include "pages/sendintropage.h"
 
 #include <QApplication>
 
@@ -29,7 +27,7 @@
 #include <klocalizedstring.h>
 #include <kpushbutton.h>
 #include <kstatusbarjobtracker.h>
-#include <kfilewidget.h>
+#include <kfiledialog.h>
 
 #include <bluedevil/bluedevil.h>
 #include <sendfilesjob.h>
@@ -48,17 +46,12 @@ SendFileWizard::SendFileWizard(const QString &deviceUri)
     } else {
         setWindowTitle(i18n("Bluetooth Send Files"));
 
-        setButton(QWizard::BackButton, new KPushButton(KStandardGuiItem::back(KStandardGuiItem::UseRTL)));
-        setButton(QWizard::NextButton, new KPushButton(KStandardGuiItem::forward(KStandardGuiItem::UseRTL)));
+        setButton(QWizard::NextButton, new KPushButton(KIcon("document-export"), i18n("Send Files")));
         setButton(QWizard::CancelButton, new KPushButton(KStandardGuiItem::cancel()));
 
         setOption(QWizard::DisabledBackButtonOnLastPage);
+        setOption(QWizard::NoBackButtonOnStartPage);
 
-        //We do not want "Forward" as text
-        setButtonText(QWizard::NextButton, i18n("Next"));
-
-        addPage(new SendIntroPage());
-        addPage(new SelectFilesPage());
         if (deviceUri.isEmpty()) {
             addPage(new SelectDevicePage());
         }
@@ -84,14 +77,14 @@ void SendFileWizard::done(int result)
 }
 
 
-void SendFileWizard::setFileWidget(KFileWidget* fileWidget)
+void SendFileWizard::setFileDialog(KFileDialog *fileDialog)
 {
-    m_fileWidget = fileWidget;
+    m_fileDialog = fileDialog;
 }
 
-KFileWidget* SendFileWizard::fileWidget()
+KFileDialog* SendFileWizard::fileDialog()
 {
-    return m_fileWidget;
+    return m_fileDialog;
 }
 
 void SendFileWizard::setDevice(Device* device)
@@ -111,7 +104,7 @@ void SendFileWizard::wizardDone()
 
 void SendFileWizard::startTransfer()
 {
-    m_job = new SendFilesJob(m_fileWidget->dirOperator()->selectedItems(), m_device, m_agent);
+    m_job = new SendFilesJob(m_fileDialog->selectedUrls(), m_device, m_agent);
     connect(m_job, SIGNAL(destroyed(QObject*)), qApp, SLOT(quit()));
 
     KIO::getJobTracker()->registerJob(m_job);
diff --git a/src/actionplugins/sendfile/helper/sendfilewizard.h b/src/actionplugins/sendfile/helper/sendfilewizard.h
index 878f5aa..de04dbd 100644
--- a/src/actionplugins/sendfile/helper/sendfilewizard.h
+++ b/src/actionplugins/sendfile/helper/sendfilewizard.h
@@ -24,7 +24,7 @@
 #include "discoverwidget.h"
 
 class WizardAgent;
-class KFileWidget;
+class KFileDialog;
 class ObexAgent;
 class SendFilesJob;
 namespace BlueDevil {
@@ -42,8 +42,8 @@ public:
 
     virtual void done(int result);
 
-    void setFileWidget(KFileWidget *);
-    KFileWidget * fileWidget();
+    void setFileDialog(KFileDialog *);
+    KFileDialog * fileDialog();
 
     void setDevice(Device *device);
     Device* device();
@@ -54,7 +54,7 @@ private Q_SLOTS:
     void wizardDone();
 
 private:
-    KFileWidget  *m_fileWidget;
+    KFileDialog  *m_fileDialog;
     Device       *m_device;
     ObexAgent    *m_agent;
     SendFilesJob *m_job;