[kmobiletools] KDE/kdepim/kmobiletools/kmobiletools
Marco Gulino
marco at kmobiletools.org
Sat Jun 2 01:47:43 CEST 2007
SVN commit 670555 by gulino:
Let's the probe start ;)
The wizard now can scan selected devices in a better way.
M +1 -1 engines/at_engine/testphonedevice.h
M +91 -1 engines/at_engine/wizard/at_scanprogresspage.cpp
M +18 -3 engines/at_engine/wizard/at_scanprogresspage.h
M +5 -0 engines/libkmobiletoolsengineui/scanprogressPage.cpp
M +1 -0 engines/libkmobiletoolsengineui/scanprogressPage.h
M +3 -1 libkmobiletools/engine.cpp
M +0 -1 mainpart/devicehome.cpp
M +1 -1 mainpart/newdevicewizard/firstpage.cpp
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/engines/at_engine/testphonedevice.h #670554:670555
@@ -36,7 +36,7 @@
TestPhoneDeviceJob(const QString &devicename, AT_Engine* parent);
~TestPhoneDeviceJob();
- JobType type() { return static_cast<JobType>(AT_Engine::TestPhoneDevice); }
+ virtual JobType type() { return static_cast<JobType>(AT_Engine::TestPhoneDevice); }
KMobileTools::EngineData *data() { return enginedata; }
bool found() { return b_found; }
QString path() const { return deviceName; }
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/engines/at_engine/wizard/at_scanprogresspage.cpp #670554:670555
@@ -21,9 +21,14 @@
Boston, MA 02110-1301, USA.
***************************************************************************/
#include "at_scanprogresspage.h"
+#include "at_engine.h"
+#include "testphonedevice.h"
+#include <libkmobiletools/engineslist.h>
+#include <libkmobiletools/enginedata.h>
+#include "atengineconfig.h"
AT_ScanProgressPage::AT_ScanProgressPage(QWidget *parent)
- : ScanProgressPage(parent)
+ : ScanProgressPage(parent), totaljobs(0), donejobs(0)
{
}
@@ -34,3 +39,88 @@
#include "at_scanprogresspage.moc"
+
+
+/*!
+ \fn AT_ScanProgressPage::isComplete()
+ */
+bool AT_ScanProgressPage::isComplete() const {
+ bool complete=(donejobs!=0 && totaljobs==donejobs);
+ kDebug() << "isComplete==" << complete << " (progress=" << donejobs << "/" << totaljobs << ")\n";
+ return complete;
+}
+
+
+/*!
+ \fn AT_ScanProgressPage::cleanupPage()
+ */
+void AT_ScanProgressPage::cleanupPage()
+{
+ kDebug() << "AT_ScanProgressPage::cleanupPage()\n";
+ ScanProgressPage::cleanupPage();
+ disconnect(engine, SIGNAL(foundDeviceData(FindDeviceDataJob*)), this, SLOT(deviceProbed(FindDeviceDataJob*)) );
+ /// @todo implement me
+ totaljobs=0;
+ l_devices.clear();
+}
+
+
+/*!
+ \fn AT_ScanProgressPage::initializePage()
+ */
+void AT_ScanProgressPage::initializePage() {
+ kDebug() << "AT_ScanProgressPage::initializePage()\n";
+ engine=(AT_Engine*) KMobileTools::EnginesList::instance()->wizardEngine();
+ connect(engine, SIGNAL(foundDeviceData(FindDeviceDataJob*)), this, SLOT(deviceProbed(FindDeviceDataJob*)) );
+ cfg=(ATDevicesConfig*) DEVCFG(wizard()->objectName() );
+ startScan();
+}
+
+
+/*!
+ \fn AT_ScanProgressPage::deviceProbed(FindDeviceDataJob*)
+ */
+void AT_ScanProgressPage::deviceProbed(FindDeviceDataJob* job)
+{
+ kDebug() << "Job done: " << job->path() << "; found: " << job->found() << endl;
+ if(job->found()) l_devices+=job->data();
+ donejobs++;
+ setProgress( (donejobs*100)/totaljobs);
+ emit completeChanged();
+}
+
+
+/*!
+ \fn AT_ScanProgressPage::startScan()
+ */
+void AT_ScanProgressPage::startScan()
+{
+ donejobs=0;
+ if(!cfg->at_connections() ) return;
+ QStringList devices;
+ TestPhoneDeviceJob *curjob;
+ if(cfg->at_connections() & AT_Engine::ConnectionUSB)
+ for(uchar i=0; i<10; i++) {
+ engine->enqueueJob( new FindDeviceDataJob(QString("/dev/ttyACM%1").arg(i), engine) );
+ engine->enqueueJob(new FindDeviceDataJob(QString("/dev/ttyUSB%1").arg(i), engine) );
+ totaljobs+=2;
+ }
+ if(cfg->at_connections() & AT_Engine::ConnectionIrDA)
+ for(uchar i=0; i<10; i++) {
+ engine->enqueueJob(new FindDeviceDataJob(QString("/dev/ircomm%1").arg(i), engine) );
+ totaljobs++;
+ }
+ if(cfg->at_connections() & AT_Engine::ConnectionSerial)
+ for(uchar i=0; i<10; i++) {
+ engine->enqueueJob(new FindDeviceDataJob(QString("/dev/ttyS%1").arg(i), engine) );
+ totaljobs++;
+ }
+/* if(cfg->at_connections() & ConnectionBluetooth)
+ for(QStringList::ConstIterator it=bluetoothDevices.begin(); it!=bluetoothDevices.end(); ++it)
+ engine->enqueueJob(new FindDeviceDataJob(*it, engine) );*/
+ if(cfg->at_connections() & AT_Engine::ConnectionUser)
+ for(QStringList::ConstIterator it=cfg->at_userdevices().begin(); it!=cfg->at_userdevices().end(); ++it) {
+ engine->enqueueJob(new FindDeviceDataJob(*it, engine) );
+ totaljobs++;
+ }
+}
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/engines/at_engine/wizard/at_scanprogresspage.h #670554:670555
@@ -24,10 +24,12 @@
#define AT_SCANPROGRESSPAGE_H
#include <libkmobiletoolsengineui/scanprogressPage.h>
+#include <QList>
-/**
- @author
-*/
+class FindDeviceDataJob;
+class AT_Engine;
+class ATDevicesConfig;
+namespace KMobileTools { class EngineData; }
class AT_ScanProgressPage : public ScanProgressPage
{
Q_OBJECT
@@ -35,7 +37,20 @@
AT_ScanProgressPage(QWidget *parent = 0);
~AT_ScanProgressPage();
+ bool isComplete() const;
+ void cleanupPage();
+ void initializePage();
+ void startScan();
+ QList<KMobileTools::EngineData*> foundDevices();
+public slots:
+ void deviceProbed(FindDeviceDataJob*);
+private:
+ AT_Engine *engine;
+ ATDevicesConfig *cfg;
+ int totaljobs;
+ int donejobs;
+ QList<KMobileTools::EngineData*> l_devices;
};
#endif
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/engines/libkmobiletoolsengineui/scanprogressPage.cpp #670554:670555
@@ -58,4 +58,9 @@
return progressBar()->value();
}
+void ScanProgressPage::cleanupPage() {
+ kDebug() << "void ScanProgressPage::cleanupPage()\n";
+ setProgress(0);
+}
+
#include "scanprogressPage.moc"
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/engines/libkmobiletoolsengineui/scanprogressPage.h #670554:670555
@@ -38,6 +38,7 @@
QProgressBar *progressBar();
void setProgress(int progress);
int progress();
+ virtual void cleanupPage();
private:
ScanProgressPagePrivate *d;
};
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/libkmobiletools/engine.cpp #670554:670555
@@ -261,7 +261,9 @@
kDebug() << "Error loading library: " << KLibLoader::self()->lastErrorMessage() << endl;
return NULL;
}
- return static_cast<KMobileTools::Engine *>(factory->create(parent, "KMobileTools::Engine" ) );
+ Engine *ret=static_cast<KMobileTools::Engine *>(factory->create(parent, "KMobileTools::Engine" ) );
+ if(parent) ret->setObjectName(parent->objectName());
+ return ret;
}
void Engine::setConnected(bool b) { d->b_connected=b; }
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/mainpart/devicehome.cpp #670554:670555
@@ -316,7 +316,6 @@
emit deleteThis( objectName() );
return;
}
- engine->setObjectName( objectName() );
connect(engine, SIGNAL(connected()), this, SLOT(devConnected()) );
connect(engine, SIGNAL(disconnected()), this, SLOT(devDisconnected() ) );
connect(engine, SIGNAL(connected() ), this, SLOT(enableWidgets() ) );
--- trunk/KDE/kdepim/kmobiletools/kmobiletools/mainpart/newdevicewizard/firstpage.cpp #670554:670555
@@ -70,7 +70,7 @@
// setField("engine",d->enginelibname);
// now let's load the engine library
kDebug() << "Engine Library field changed: " << field("engine").toString() << endl;
- KMobileTools::Engine *engine=KMobileTools::Engine::load( engineLibrary() , this);
+ KMobileTools::Engine *engine=KMobileTools::Engine::load( engineLibrary() , wizard() );
if(!engine)
{
KMessageBox::error(this, i18n("Could not load the engine %1.\nIf this error persists, please restart KMobileTools.",
More information about the kmobiletools
mailing list