--- a/bluetoothengine/bthid/bthidkbdsettings/group/bthidkbdsettings.mmp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/bthid/bthidkbdsettings/group/bthidkbdsettings.mmp Wed Oct 13 13:15:31 2010 +0300
@@ -50,9 +50,6 @@
SOURCE bthidpluginimplementationtable.cpp btkeysettinglist.cpp btkeyenumtextsettingitem.cpp
APP_LAYER_SYSTEMINCLUDE
-#ifdef __SERIES60_HELP
-SYSTEMINCLUDE /epoc32/include/cshelp
-#endif
SYSTEMINCLUDE ../../../inc
//***********ECOM resource definition******************
@@ -101,9 +98,6 @@
LIBRARY cenrepnotifhandler.lib
DEBUGLIBRARY flogger.lib
-#ifdef __SERIES60_HELP
-LIBRARY hlplch.lib // Help library
-#endif
// End of file
--- a/bluetoothengine/bthid/keyboard/inc/finder.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/bthid/keyboard/inc/finder.h Wed Oct 13 13:15:31 2010 +0300
@@ -203,97 +203,4 @@
return (iField != 0);
}
-// ----------------------------------------------------------------------
-/**
- * Field finder for the ordinary mouse fields.
- */
-class TMouseFinder : public MHidFieldFinder
- {
-public:
- // From MHidFieldFinder
- virtual TBool BeginCollection(const CCollection *aCollection);
- virtual TBool EndCollection(const CCollection *aCollection);
- virtual void Field(const CField* aField);
-
-public:
- /** Constructor */
- TMouseFinder();
-
- /**
- * Get the field containing the standard keys, if found.
- * @return CField* Pointer to the field, or NULL.
- */
- inline const CField* ButtonsField() const;
- /**
- * Get the field containing the xy field, if found.
- * @return CField* Pointer to the field, or NULL.
- */
- inline const CField* XYField() const;
- /**
- * Get the field containing the wheel info, if found.
- * @return CField* Pointer to the field, or NULL.
- */
- inline const CField* WheelField() const;
- /**
- * Check whether the required fields have been found.
- * @return ETrue if they have.
- */
- inline TBool Found() const;
-
- /**
- * Check whether a given field contains the XY Coordinates
- * @param aField Pointer to the field to test.
- * @return ETrue if it does.
- */
- TBool IsXY(const CField* aField) const;
- /**
- * Check whether a given field contains the Buttons.
- * @param aField Pointer to the field to test.
- * @return ETrue if it does.
- */
- TBool IsButtons(const CField* aField) const;
- /**
- * Check whether a given field contains a wheel.
- * @param aField Pointer to the field to test.
- * @return ETrue if it does.
- */
- TBool IsWheel(const CField* aField) const;
-
-private:
- /** Pointer to the field containing the XY pointer info. */
- const CField* iXY;
-
- /** Pointer to the field containing the buttons. */
- const CField* iButtons;
-
- /** Pointer to the field containing the Wheel info. */
- const CField* iWheel;
-
- /** Pointer to the top level application collection being searched. */
- const CCollection* iAppCollection;
- };
-// ----------------------------------------------------------------------
-
-inline TBool TMouseFinder::Found() const
- {
- // Standard and modifier key fields are always necessary, but the
- // Wheel field is optional:
- //
- return iButtons && iXY;
- }
-
-inline const CField* TMouseFinder::ButtonsField() const
- {
- return iButtons;
- }
-
-inline const CField* TMouseFinder::XYField() const
- {
- return iXY;
- }
-
-inline const CField* TMouseFinder::WheelField() const
- {
- return iWheel;
- }
#endif
--- a/bluetoothengine/bthid/keyboard/src/finder.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/bthid/keyboard/src/finder.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -254,138 +254,3 @@
{
return !Found();
}
-
-// ----------------------------------------------------------------------
-TMouseFinder::TMouseFinder() :
- iXY(0), iButtons(0), iWheel(0), iAppCollection(0)
- {
- // Nothing else to do
- }
-
-// ----------------------------------------------------------------------
-
-TBool TMouseFinder::BeginCollection(const CCollection *aCollection)
- {
- TBool examineCollection = ETrue;
-
- if ((aCollection->IsApplication()) && (iAppCollection == 0))
- {
- // Top-level application collection.
-
- if ((aCollection->UsagePage() == EUsagePageGenericDesktop)
- && (aCollection->Usage() == EGenericDesktopUsageMouse))
- {
- // Collection is a mouse device:
- iAppCollection = aCollection;
- iXY = iWheel = iButtons = 0;
- }
- else
- {
- // Skip other types of top-level application collection:
- examineCollection = EFalse;
- }
- }
-
- return examineCollection;
- }
-
-TBool TMouseFinder::EndCollection(const CCollection *aCollection)
- {
- TBool continueSearch = ETrue;
-
- DBG(RDebug::Print(_L("[HID]\tTHeadsetFinder::EndCollection")));
- if (aCollection == iAppCollection)
- {
- // Top-level application(Generic Desktop:Mouse) finished:
- //
- iAppCollection = 0;
-
- // Stop if we've found a mouse we can use in this
- // application collection:
- //
- continueSearch = !Found();
- }
-
- return continueSearch;
- }
-
-void TMouseFinder::Field(const CField* aField)
- {
- if (iAppCollection)
- {
- if (IsWheel(aField))
- {
- iWheel = aField;
- }
-
- if (IsXY(aField))
- {
- iXY = aField;
- }
-
- if (IsButtons(aField))
- {
- iButtons = aField;
- }
- }
- }
-
-// ----------------------------------------------------------------------
-
-
-TBool TMouseFinder::IsXY(const CField* aField) const
- {
- TBool found = EFalse;
-
- if (aField->IsInput() && aField->IsData() && (aField->UsagePage()
- == EUsagePageGenericDesktop))
- {
-
- if (aField->HasUsage(EGenericDesktopUsageX) && aField->HasUsage(
- EGenericDesktopUsageY))
- {
- DBG(RDebug::Print(_L("[HID]\tXY field found")));
- found = ETrue;
- }
- }
-
- return found;
- }
-
-TBool TMouseFinder::IsButtons(const CField* aField) const
- {
- TBool found = EFalse;
-
- if (aField->IsInput() && aField->IsData() && (aField->UsagePage()
- == EUsagePageButton))
- {
- const TInt KMinButtons = 1;
- const TInt KMaxButtons = 15;
-
- // Test for a field containing at least num lock or caps lock
- if ((aField->UsageMin() >= KMinButtons) && (aField->UsageMax()
- <= KMaxButtons))
- {
- DBG(RDebug::Print(_L("[HID]\tButtons field found")));
- found = ETrue;
- }
- }
-
- return found;
- }
-
-TBool TMouseFinder::IsWheel(const CField* aField) const
- {
- TBool found = EFalse;
-
- if (aField->IsInput() && aField->IsData() && (aField->UsagePage()
- == EUsagePageGenericDesktop))
- {
- if (aField->HasUsage(EGenericDesktopUsageWheel))
- {
- found = ETrue;
- }
- }
-
- return found;
- }
--- a/bluetoothengine/bthid/mouse/hidmousedriver/src/finder.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/bthid/mouse/hidmousedriver/src/finder.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -135,12 +135,13 @@
if (aField->IsInput() && aField->IsData() &&
(aField->UsagePage() == EUsagePageButton))
{
- const TInt KMinButtons = 1;
- const TInt KMaxButtons = 15;
-
- // Test for a field containing at least num lock or caps lock
- if ( (aField->UsageMin() >= KMinButtons)
- && (aField->UsageMax() <= KMaxButtons) )
+ const TInt KButton1 = 1;
+ const TInt KButton2 = 2;
+ const TInt KButton3 = 3;
+ // Test for fields containing mouse buttons, only three mouse buttons event are handled
+ // in mouse driver anyway, detecting for KButton1, KButton2 & KButton3 here.
+ if ( (aField->UsageMin() <= KButton1)
+ && (aField->UsageMax() >= KButton3) )
{
DBG(RDebug::Print(_L("[HID]\tButtons field found")));
found = ETrue;
--- a/bluetoothengine/btindicator/btindicator.pro Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btindicator/btindicator.pro Wed Oct 13 13:15:31 2010 +0300
@@ -28,6 +28,9 @@
MOC_DIR = moc
OBJECTS_DIR = obj
+TRANSLATIONS = btindimenu.ts
+# Only one .ts file allowed for a .pro file.
+
LIBS += -lxqservice -lcpframework
symbian {
TARGET.EPOCALLOWDLLDATA = 1
--- a/bluetoothengine/btnotif/btdevicedialogplugin/docml/bt-send-dialog.docml Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btdevicedialogplugin/docml/bt-send-dialog.docml Wed Oct 13 13:15:31 2010 +0300
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="1.1">
+<hbdocument version="1.2">
<object name="hideAction" type="HbAction">
+ <string locid="txt_common_button_hide" name="text"/>
<bool name="enabled" value="FALSE"/>
- <string locid="txt_common_button_hide" name="text"/>
</object>
<object name="cancelAction" type="HbAction">
<string locid="txt_common_button_cancel" name="text"/>
@@ -13,7 +13,6 @@
<real name="z" value="1"/>
<string name="plainText" value="Sending File x/y to Device"/>
</widget>
- <ref object="hideAction" role="HbWidget:addAction"/>
<ref object="cancelAction" role="HbWidget:addAction"/>
<widget name="itemContainer" role="HbDialog:contentWidget" type="HbWidget">
<widget name="fileDetailsContainer" type="HbWidget">
@@ -35,12 +34,12 @@
<real name="z" value="0"/>
<sizehint height="9.8806un" type="PREFERRED" width="23.8806un"/>
<layout type="anchor">
- <anchoritem dst="fileIcon" dstEdge="LEFT" spacing="1.04478un" src="" srcEdge="LEFT"/>
- <anchoritem dst="fileIcon" dstEdge="BOTTOM" spacing="-0.71767un" src="" srcEdge="BOTTOM"/>
- <anchoritem dst="fileSize" dstEdge="LEFT" spacing="9.30448un" src="" srcEdge="LEFT"/>
- <anchoritem dst="fileSize" dstEdge="BOTTOM" spacing="-0.26991un" src="" srcEdge="BOTTOM"/>
- <anchoritem dst="fileName" dstEdge="LEFT" spacing="9.30448un" src="" srcEdge="LEFT"/>
- <anchoritem dst="fileName" dstEdge="TOP" spacing="0.44776un" src="" srcEdge="TOP"/>
+ <anchoritem dst="fileIcon" dstEdge="LEFT" prefLength="1.04478un" src="" srcEdge="LEFT"/>
+ <anchoritem direction="NEGATIVE" dst="fileIcon" dstEdge="BOTTOM" prefLength="0.71767un" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="fileSize" dstEdge="LEFT" prefLength="9.30448un" src="" srcEdge="LEFT"/>
+ <anchoritem direction="NEGATIVE" dst="fileSize" dstEdge="BOTTOM" prefLength="0.26991un" src="" srcEdge="BOTTOM"/>
+ <anchoritem dst="fileName" dstEdge="LEFT" prefLength="9.30448un" src="" srcEdge="LEFT"/>
+ <anchoritem dst="fileName" dstEdge="TOP" prefLength="0.44776un" src="" srcEdge="TOP"/>
</layout>
</widget>
<widget name="progressContainer" type="HbWidget">
--- a/bluetoothengine/btnotif/btdevicedialogplugin/inc/btdevicedialogpluginerrors.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btdevicedialogplugin/inc/btdevicedialogpluginerrors.h Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -26,5 +26,8 @@
const int ParameterError = HbDeviceDialog::PluginErrors + 1;
// Unknown device dialog error
const int UnknownDeviceDialogError = HbDeviceDialog::PluginErrors + 2;
+// DocML loading error
+const int DocMLLoadingError = HbDeviceDialog::PluginErrors + 3;
+
#endif // BTDEVICEDIALOGPLUGINERRORS_H
--- a/bluetoothengine/btnotif/btdevicedialogplugin/inc/btrecvcompleteddialogwidget.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btdevicedialogplugin/inc/btrecvcompleteddialogwidget.h Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -28,18 +28,6 @@
#include <qstandarditemmodel.h>
#include <hblabel.h>
#include <hbaction.h>
-#include <QRunnable>
-
-
-class CoversationViewServiceStarter : public QRunnable
- {
-public:
- CoversationViewServiceStarter(qint64 conversationId);
- ~CoversationViewServiceStarter();
- void run();
-private:
- qint64 mCnvId;
- };
class BTRecvcompletedDialogWidget : public QObject,
--- a/bluetoothengine/btnotif/btdevicedialogplugin/inc/btsenddialogwidget.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btdevicedialogplugin/inc/btsenddialogwidget.h Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0""
@@ -19,16 +19,12 @@
#ifndef BTSENDDIALOGWIDGET_H
#define BTSENDDIALOGWIDGET_H
-#include <QObject>
#include <QVariantMap>
#include <hbdialog.h>
#include <hbdevicedialoginterface.h>
-#include <hbpopup.h>
#include <hbdocumentloader.h>
-#include <qstandarditemmodel.h>
#include <hbprogressbar.h>
#include <hblabel.h>
-#include <hblistview.h>
#include <hbaction.h>
@@ -49,31 +45,25 @@
virtual QObject *signalSender() const;
public slots:
-// void hideClicked();
void cancelClicked();
-// void inputClosed(HbAction* action);
private:
- bool constructDialog(const QVariantMap ¶meters);
- void hideEvent(QHideEvent *event);
- void showEvent(QShowEvent *event);
+ void constructDialog(const QVariantMap ¶meters);
signals:
void deviceDialogClosed();
private:
HbDocumentLoader *mLoader;
- // QStandardItemModel* mContentItemModel;
- HbProgressBar* mProgressBar;
- HbLabel* mDialogHeading;
- HbLabel* mFileIconLabel;
- HbLabel* mFileNameLabel;
- HbLabel* mFileSizeLabel;
-
-// HbListView* mListView;
+ HbProgressBar *mProgressBar;
+ HbLabel *mDialogHeading;
+ HbLabel *mFileIconLabel;
+ HbLabel *mFileNameLabel;
+ HbLabel *mFileSizeLabel;
HbDialog *mSendDialog;
HbAction *mHideAction;
HbAction *mCancelAction;
int mFileIndex;
+ int mLastError;
Q_DISABLE_COPY(BTSendDialogWidget)
--- a/bluetoothengine/btnotif/btdevicedialogplugin/src/btrecvcompleteddialogwidget.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btdevicedialogplugin/src/btrecvcompleteddialogwidget.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -16,46 +16,13 @@
*/
#include "btrecvcompleteddialogwidget.h"
-#include <xqaiwrequest.h>
-#include <xqappmgr.h>
-#include <QThreadPool>
#include "bluetoothdevicedialogs.h"
const char* DOCML_BT_RECV_CMPLTD_DIALOG = ":/docml/bt-receive-done-dialog.docml";
-const qint64 KBluetoothMsgsConversationId = 0x01;
-
-
-CoversationViewServiceStarter::CoversationViewServiceStarter(qint64 conversationId)
-:mCnvId(conversationId)
- {
-
- }
-
-CoversationViewServiceStarter::~CoversationViewServiceStarter()
- {
-
- }
-
-void CoversationViewServiceStarter::run()
- {
- QList<QVariant> args;
- QString serviceName("com.nokia.services.hbserviceprovider");
- QString operation("open(qint64)");
- XQAiwRequest* request;
- XQApplicationManager appManager;
- request = appManager.create(serviceName, "conversationview", operation, false); // not embedded
- if ( request == NULL )
- {
- return;
- }
- args << QVariant(mCnvId);
- request->setArguments(args);
- request->send();
- delete request;
- }
BTRecvcompletedDialogWidget::BTRecvcompletedDialogWidget(const QVariantMap ¶meters)
+
:mLoader(0),
mOpenConversationView(false)
{
@@ -190,14 +157,6 @@
void BTRecvcompletedDialogWidget::showClicked()
{
- if(mOpenConversationView)
- {
- CoversationViewServiceStarter* service = new CoversationViewServiceStarter(KBluetoothMsgsConversationId);
- service->setAutoDelete(true);
-
- QThreadPool::globalInstance()->start(service);
- }
-
QVariantMap data;
data.insert(QString("actionResult"), QVariant(TBluetoothDialogParams::EShow));
emit deviceDialogData(data);
--- a/bluetoothengine/btnotif/btdevicedialogplugin/src/btsenddialogwidget.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btdevicedialogplugin/src/btsenddialogwidget.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0""
@@ -16,12 +16,7 @@
*/
#include "btsenddialogwidget.h"
-#include <hblabel.h>
-#include <hblistview.h>
-#include <hbtoolbar.h>
-#include <hblistwidget.h>
-#include <qstandarditemmodel.h>
-#include <hbaction.h>
+#include "btdevicedialogpluginerrors.h"
#define LOC_SENDING_FILES_TO_DEVICE hbTrId("txt_bt_title_sending_file_l1l2_to_3")
@@ -31,56 +26,29 @@
BTSendDialogWidget::BTSendDialogWidget(const QVariantMap ¶meters)
{
mLoader = 0;
+ mLastError = NoError;
constructDialog(parameters);
}
BTSendDialogWidget::~BTSendDialogWidget()
{
delete mLoader;
- /* if(mContentItemModel)
- {
- delete mContentItemModel;
- mContentItemModel = NULL;
- }*/
}
bool BTSendDialogWidget::setDeviceDialogParameters(const QVariantMap ¶meters)
{
+ mLastError = NoError;
if(mFileIndex != parameters.value("currentFileIdx").toString().toInt() )
{
mDialogHeading->setTextWrapping(Hb::TextWordWrap);
mDialogHeading->setAlignment(Qt::AlignHCenter);
- //Todo - replace this with the actual text from parameters
QString headLabel = QString(LOC_SENDING_FILES_TO_DEVICE).arg(parameters.value("currentFileIdx").toInt())
.arg(parameters.value("totalFilesCnt").toInt())
.arg(parameters.value("destinationName").toString());
- /* headLabel.append(QString("Sending file "));
- headLabel.append(parameters.value("currentFileIdx").toString());
- headLabel.append('/');
- headLabel.append(parameters.value("totalFilesCnt").toString());
- headLabel.append(QString(" to "));
- headLabel.append(parameters.value("destinationName").toString());*/
mDialogHeading->setPlainText(headLabel);
- /* QStringList info;
- info.append(parameters.value("fileName").toString());
- info.append(parameters.value("fileSzTxt").toString());
-
- QStandardItem* listitem = new QStandardItem();
- // parameters.
- listitem->setData(info, Qt::DisplayRole);
-
- //Todo - Insert file icons here thumbnail icon
- QIcon icon(QString(":/icons/qtg_large_bluetooth.svg"));
- listitem->setIcon(icon);
-
- delete mContentItemModel;
- mContentItemModel = new QStandardItemModel(this);
- mListView->setModel(mContentItemModel);//, prototype);
-
- mContentItemModel->appendRow(listitem);*/
- //Todo - Insert file icons here thumbnail icon
+ //Todo - Insert file icons here instead of bluetooth image
QIcon icon(QString(":/icons/qtg_large_bluetooth.svg"));
mFileIconLabel->setIcon(icon);
mFileNameLabel->setPlainText(parameters.value("fileName").toString());
@@ -99,7 +67,7 @@
int BTSendDialogWidget::deviceDialogError() const
{
- return 0;
+ return mLastError;
}
void BTSendDialogWidget::closeDeviceDialog(bool byClient)
@@ -120,8 +88,9 @@
return const_cast<BTSendDialogWidget*>(this);
}
-bool BTSendDialogWidget::constructDialog(const QVariantMap&/*parameters*/)
+void BTSendDialogWidget::constructDialog(const QVariantMap& parameters)
{
+ Q_UNUSED(parameters);
mLoader = new HbDocumentLoader();
bool ok = false;
@@ -133,59 +102,23 @@
mFileIconLabel = qobject_cast<HbLabel*>(mLoader->findWidget("fileIcon"));
mFileNameLabel = qobject_cast<HbLabel*>(mLoader->findWidget("fileName"));
mFileSizeLabel = qobject_cast<HbLabel*>(mLoader->findWidget("fileSize"));
- // mSendDialog->setHeadingWidget(mLabel);
- /* mListView = qobject_cast<HbListView*>(mLoader->findWidget("listView"));
- if(mListView)
- {
- mContentItemModel = new QStandardItemModel(this);
- mListView->setModel(mContentItemModel);//, prototype);
- }*/
mProgressBar = qobject_cast<HbProgressBar*>(mLoader->findWidget("sendProgressBar"));
-
- // HbAction* hide = new HbAction("Hide");
- // HbAction* cancel = new HbAction("Cancel");
-
- // this->addAction(hide);
- // this->addAction(cancel);
-
- // QGraphicsWidget *widget = mLoader->findWidget(QString("container"));
- // this->setContentWidget(widget);
+ mSendDialog->setBackgroundFaded(false);
+ mSendDialog->setDismissPolicy(HbPopup::NoDismiss);
+ mSendDialog->setTimeout(HbPopup::NoTimeout);
+ mSendDialog->setAttribute(Qt::WA_DeleteOnClose);
+
+ mCancelAction = static_cast<HbAction*>( mLoader->findObject( "cancelAction" ) );
+
+ connect(mCancelAction, SIGNAL(triggered()), this, SLOT(cancelClicked()));
}
-
- mSendDialog->setBackgroundFaded(false);
- mSendDialog->setDismissPolicy(HbPopup::NoDismiss);
- mSendDialog->setTimeout(HbPopup::NoTimeout);
- mSendDialog->setAttribute(Qt::WA_DeleteOnClose);
-
- mHideAction = static_cast<HbAction*>( mLoader->findObject( "hideAction" ) );
- mHideAction->disconnect(mSendDialog); // Todo: needed?
-
- mCancelAction = static_cast<HbAction*>( mLoader->findObject( "cancelAction" ) );
- mCancelAction->disconnect(mSendDialog); // Todo: needed?
-
- connect(mCancelAction, SIGNAL(triggered()), this, SLOT(cancelClicked()));
-
- return true;
+ else
+ {
+ mLastError = DocMLLoadingError;
+ }
}
-/*void BTSendDialogWidget::hideEvent(QHideEvent *event)
- {
- HbDialog::hideEvent(event);
- emit deviceDialogClosed();
- }
-
-void BTSendDialogWidget::showEvent(QShowEvent *event)
- {
- HbDialog::showEvent(event);
- }*/
-
-/*void BTSendDialogWidget::hideClicked()
- {
- // TODO
- this->close();
- emit deviceDialogClosed();
- }*/
void BTSendDialogWidget::cancelClicked()
{
@@ -193,14 +126,4 @@
emit deviceDialogClosed();
}
-/*void BTSendDialogWidget::inputClosed(HbAction* action)
- {
- QVariantMap data;
-
- HbDialog *dlg=static_cast<HbDialog*>(sender());
- if(dlg->actions().first() == action) {
- }
- else if(dlg->actions().at(1) == action) {
- }
- }*/
--- a/bluetoothengine/btnotif/btnotifsrv/inc/btnotifoutgoingpairinghandler.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btnotifsrv/inc/btnotifoutgoingpairinghandler.h Wed Oct 13 13:15:31 2010 +0300
@@ -22,7 +22,7 @@
#include <bluetooth/pairing.h>
#include <e32property.h>
#include "btnotifclientserver.h"
-#include "btnotifBasePairingHandler.h"
+#include "btnotifbasepairinghandler.h"
#include <hb/hbcore/hbsymbianvariant.h>
#include "btnotificationresult.h"
#include "bluetoothdevicedialogs.h"
--- a/bluetoothengine/btnotif/btnotifsrv/src/btnotifpairnotifier.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btnotif/btnotifsrv/src/btnotifpairnotifier.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -163,7 +163,7 @@
}
else
{
- // We don't have any friendly name then chek if we have the device name
+ // We don't have any friendly name then check if we have the device name
// otherwise use the Alias
if(0 >= iCurrentDeviceName.Length())
{
--- a/bluetoothengine/btpbap/src/Pbapplugin.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btpbap/src/Pbapplugin.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -142,7 +142,7 @@
//
TInt CPBAPplugin::Disconnect( const TBTDevAddr& aAddr, TBTDisconnectType /*aDiscType*/ )
{
- if ( iObserver )
+ if ( !iObserver )
{
return KErrGeneral;
}
--- a/bluetoothengine/btsac/inc/btsacGavdp.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btsac/inc/btsacGavdp.h Wed Oct 13 13:15:31 2010 +0300
@@ -244,9 +244,7 @@
private: // Data
- MInternalGavdpUser* iObserver;
-
- CBTSACStreamerController* iStreamer;
+ MInternalGavdpUser* iObserver;
RSocketServ iSockServ;
RGavdp iGavdp;
--- a/bluetoothengine/btsac/inc/btsacdefs.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btsac/inc/btsacdefs.h Wed Oct 13 13:15:31 2010 +0300
@@ -67,7 +67,8 @@
enum TBTPanicCode
{
EBTPanicNullPointer = 33400,
- EBTPanicSocketExists
+ EBTPanicSocketExists,
+ EBTPanicCouldntOpenGavdp
};
#endif // BTSACDEFS_H
--- a/bluetoothengine/btsac/src/btsacGavdp.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btsac/src/btsacGavdp.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -663,15 +663,25 @@
TRACE_INFO((_L("CBTSACGavdp::GAVDP_BearerReady() Got a bearer, for session %d"), aAddr.Session()))
// AV sockets don't foward opts yet so use addr version
+ TBTDevAddr RemoteBDAddr = aAddr.BTAddr();
RBTPhysicalLinkAdapter phy;
- TBTDevAddr RemoteBDAddr = aAddr.BTAddr();
TInt err = phy.Open(iSockServ, RemoteBDAddr);
- TUint16 packets = EAnyACLPacket;
- err = phy.RequestChangeSupportedPacketTypes(packets);
- TRACE_INFO((_L("CBTSACGavdp::GAVDP_BearerReady() Modified PHY, result %d"), err))
-
- // state handles the call-back
- iObserver->GAVDP_BearerReady(aNewSocket, aAddr);
+ TRACE_INFO((_L("CBTSACGavdp::GAVDP_BearerReady() RBTPhysicalLinkAdapter::Open returned %d"), err))
+ if ( !err )
+ {
+ TUint16 packets = EAnyACLPacket;
+ err = phy.RequestChangeSupportedPacketTypes(packets);
+ TRACE_INFO((_L("CBTSACGavdp::GAVDP_BearerReady() Modified PHY, result %d"), err))
+ phy.Close();
+ }
+ if ( err )
+ {
+ iObserver->GAVDP_Error(err, KNullDesC8());
+ }
+ else
+ {
+ iObserver->GAVDP_BearerReady(aNewSocket, aAddr);
+ }
}
///////////////////// Call Backs from GAVDP End.///////////////////
--- a/bluetoothengine/btsac/src/btsacStateListening.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btsac/src/btsacStateListening.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -318,16 +318,12 @@
{
Parent().SetRemoteAddr(TBTDevAddr());
}
- TInt err = Parent().iGavdp->Shutdown();
- if(!err)
- {
- TRACE_INFO((_L("CBtsacListening::GoListen(), Signalling disconnected, Re-listen...")))
- // Starts to listen for inbound signalling channel connections.
- err = Parent().iGavdp->Listen();
- }
+ TRACE_INFO((_L("CBtsacListening::GoListen(), Signalling disconnected, Re-listen...")))
+ // Starts to listen for inbound signalling channel connections.
+ TInt err = Parent().iGavdp->Listen();
if(err)
{
- // Shutdown failed, reset gavdp
+ // Listen request failed, reset gavdp
TRACE_INFO((_L("CBtsacListening::GoListen(), error = %d."), err))
ResetGavdp();
}
@@ -341,7 +337,8 @@
{
TRACE_FUNC
Parent().iGavdp->Close();
- if( Parent().iGavdp->Open() == KErrNone )
+ TInt err = Parent().iGavdp->Open();
+ if( !err )
{
iInitializationProcedure = EInitProcedureWaitingConfConfirmed;
if(iPendingRequests == KRequestNone)
@@ -353,7 +350,8 @@
}
else
{
- TRACE_INFO((_L("CBtsacListening::ResetGavdp() Couldn't open gavdp.")))
+ TRACE_INFO((_L("CBtsacListening::ResetGavdp() Couldn't open gavdp, err %d"), err))
+ __ASSERT_DEBUG(err != KErrNone, PANIC(EBTPanicCouldntOpenGavdp));
return KErrGeneral;
}
}
--- a/bluetoothengine/btui/btcpplugin/btcpplugin.pro Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpplugin.pro Wed Oct 13 13:15:31 2010 +0300
@@ -25,9 +25,8 @@
MOC_DIR = moc
OBJECTS_DIR = obj
-TRANSLATIONS += btviews.ts \
- btdialogs.ts \
- btindimenu.ts
+TRANSLATIONS = btviews.ts
+# Removed btdialogs.ts and btindimenu.ts since only one .ts file allowed for a .pro file. btdialogs.ts moved to btuidelegate.pro
RESOURCES += btcpplugin.qrc
# Input
--- a/bluetoothengine/btui/btcpplugin/btcpuibaseview.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuibaseview.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -25,6 +25,8 @@
#include "btuidevtypemap.h"
#include <btabstractdelegate.h>
#include <btdelegatefactory.h>
+#include "btqtconstants.h"
+
/*!
This constructor constructs new setting and device models.
@@ -33,9 +35,11 @@
CpBaseSettingView(0, parent), mViewMgr(0), mDelegate(0), mPreviousView(0),
mBack(0), mQuery(0), mContextMenu(0), mBtuiModelSortFilter(0)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
mSettingModel = new BtSettingModel(this);
mDeviceModel = new BtDeviceModel(this);
initialise();
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
/*!
@@ -48,9 +52,11 @@
CpBaseSettingView(0, parent), mViewMgr(0), mDelegate(0), mPreviousView(0),
mBack(0), mQuery(0), mContextMenu(0), mBtuiModelSortFilter(0)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
mSettingModel = new BtSettingModel(settingModel, this);
mDeviceModel = new BtDeviceModel(deviceModel, this);
initialise();
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
/*!
@@ -67,16 +73,18 @@
delete mContextMenu;
}
- BOstraceFunctionExit0(DUMMY_DEVLIST);
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
void BtcpuiBaseView::initialise()
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
bool ret(false);
mMainWindow = hbInstance->allMainWindows().first();
mContextMenu = new HbMenu();
ret = connect(mContextMenu, SIGNAL(triggered(HbAction *)), this, SLOT(contextMenuTriggered(HbAction *)));
- BTUI_ASSERT_X( ret, "bt-main-view", "Context Menu can't connect" );
+ BTUI_ASSERT_X( ret, "BtcpuiBaseView::initialise()", "Context Menu can't connect" );
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
void BtcpuiBaseView::setPreviousView(BtcpuiBaseView *view)
@@ -99,7 +107,7 @@
else {
setNavigationAction(0);
}
- BOstraceFunctionExit0(DUMMY_DEVLIST);
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
void BtcpuiBaseView::setViewMgr(BtcpuiViewMgr *mgr)
@@ -113,7 +121,7 @@
if ( mPreviousView ) {
viewMgr()->switchView(this, mPreviousView, QVariant(), true);
}
- BOstraceFunctionExit0(DUMMY_DEVLIST);
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
BtSettingModel *BtcpuiBaseView::settingModel()
@@ -139,28 +147,31 @@
mDelegate = BtDelegateFactory::newDelegate(type, mSettingModel, mDeviceModel);
ok = connect(mDelegate, SIGNAL(delegateCompleted(int,BtAbstractDelegate*)),
receiver, member);
- BOstraceExt1(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate signal connect %d", ok);
+ BOstraceExt1(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate new: signal connect %d", ok);
if (!ok) {
delete mDelegate;
mDelegate = 0;
}
}
- BOstraceExt2(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate: mDe: 0x%08X, ret %d", mDelegate, ok);
+ BOstraceExt2(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiBaseView::createDelegate(): mDe: 0x%08X, ret %d", mDelegate, ok);
return ok;
}
bool BtcpuiBaseView::createExecuteDelegate(BtDelegate::EditorType type,
QObject *receiver, const char *member, const QVariant ¶m)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
bool ok = createDelegate(type, receiver, member);
if (ok) {
mDelegate->exec(param);
}
+ BOstraceFunctionExitExt(DUMMY_DEVLIST, this, ok);
return ok;
}
void BtcpuiBaseView::viewByDeviceTypeDialog()
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
if ( !mQuery ) {
mQuery = new HbSelectionDialog();
QStringList devTypeList;
@@ -183,6 +194,7 @@
mQuery->setHeadingWidget(headingLabel);
}
mQuery->open(this,SLOT(viewByDialogClosed(HbAction*)));
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
void BtcpuiBaseView::viewByDialogClosed(HbAction* action)
@@ -193,6 +205,7 @@
int BtcpuiBaseView::selectedDeviceTypes(HbAction* action)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
int devTypesWanted = 0;
disconnect( mQuery, 0, this, 0); // remove signal
@@ -231,10 +244,11 @@
}
}
+ BOstraceFunctionExitExt(DUMMY_DEVLIST, this, devTypesWanted);
return devTypesWanted;
}
-void BtcpuiBaseView::deviceSelected(const QModelIndex& modelIndex)
+void BtcpuiBaseView::openDeviceView(const QModelIndex& modelIndex)
{
BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
BtcpuiBaseView *devView = viewMgr()->deviceView();
@@ -244,7 +258,7 @@
QVariant params;
params.setValue(index);
viewMgr()->switchView(this, devView, params, false);
- BOstraceFunctionExit0(DUMMY_DEVLIST);
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
void BtcpuiBaseView::createContextMenuActions(int majorRole)
@@ -255,23 +269,38 @@
void BtcpuiBaseView::take(BtAbstractDelegate *delegate)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
mDelegate = delegate;
if (mDelegate) {
disconnect(mDelegate, 0, 0, 0);
connect(mDelegate, SIGNAL(delegateCompleted(int,BtAbstractDelegate*)),
this, SLOT(handleDelegateCompleted(int)));
}
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
+// this could be made virtual if derived classes need different functionality
void BtcpuiBaseView::contextMenuTriggered(HbAction *action)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
if(!(action->text().compare(hbTrId("txt_common_menu_open")))) {
- deviceSelected(mLongPressedItem->modelIndex());
- }
+ openDeviceView(mLongPressedItem->modelIndex());
+ }
+ else if (!(action->text().compare(hbTrId("txt_bt_menu_connect_audio")))
+ || !(action->text().compare(hbTrId("txt_bt_menu_connect")))) {
+ connectToDevice(mLongPressedItem->modelIndex());
+ }
+ else if (!(action->text().compare(hbTrId("txt_bt_menu_disconnect_audio")))
+ || !(action->text().compare(hbTrId("txt_bt_menu_disconnect")))) {
+ disconnectFromDevice(mLongPressedItem->modelIndex());
+ }
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
+
void BtcpuiBaseView::showContextMenu(HbAbstractViewItem *item, const QPointF &coords)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
mLongPressedItem = item;
mContextMenu->clearActions();
@@ -285,13 +314,46 @@
}
mContextMenu->setPreferredPos(coords);
mContextMenu->open();
+
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
+}
+
+void BtcpuiBaseView::connectToDevice(const QModelIndex& modelIndex)
+{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
+ QModelIndex index = mBtuiModelSortFilter->mapToSource(modelIndex);
+
+ QVariant param;
+ param.setValue(index);
+
+ (void) createExecuteDelegate(BtDelegate::ConnectService,
+ this, SLOT(handleDelegateCompleted(int,BtAbstractDelegate*)), param);
+
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
+}
+
+void BtcpuiBaseView::disconnectFromDevice(const QModelIndex& modelIndex)
+{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
+ QModelIndex index = mBtuiModelSortFilter->mapToSource(modelIndex);
+ QVariant deviceBtAddress = mDeviceModel->data(index, BtDeviceModel::ReadableBdaddrRole);
+
+ QList<QVariant>paramList;
+ paramList.append(QVariant(ServiceLevel));
+ paramList.append(deviceBtAddress);
+
+ (void) createExecuteDelegate(BtDelegate::DisconnectService,
+ this, SLOT(handleDelegateCompleted(int,BtAbstractDelegate*)), QVariant(paramList));
+
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
void BtcpuiBaseView::handleDelegateCompleted(int error, BtAbstractDelegate* delegate)
{
BOstraceFunctionEntryExt( DUMMY_DEVLIST, this, error );
+ Q_UNUSED(delegate);
Q_UNUSED(error);
delete mDelegate;
mDelegate = 0;
- BOstraceFunctionExit0(DUMMY_DEVLIST);
+ BOstraceFunctionExit1(DUMMY_DEVLIST, this);
}
--- a/bluetoothengine/btui/btcpplugin/btcpuibaseview.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuibaseview.h Wed Oct 13 13:15:31 2010 +0300
@@ -58,7 +58,7 @@
void viewByDeviceTypeDialog();
virtual void viewByDialogClosed(HbAction* action);
void contextMenuTriggered(HbAction *action);
- void deviceSelected(const QModelIndex& modelIndex);
+ void openDeviceView(const QModelIndex& modelIndex);
void showContextMenu(HbAbstractViewItem *item, const QPointF &coords);
void handleDelegateCompleted(int error, BtAbstractDelegate* delegate);
@@ -89,6 +89,10 @@
virtual void createContextMenuActions(int majorRole);
+ virtual void connectToDevice(const QModelIndex& modelIndex);
+
+ virtual void disconnectFromDevice(const QModelIndex& modelIndex);
+
protected:
enum devTypeSelectionList {
--- a/bluetoothengine/btui/btcpplugin/btcpuidevicedetailsview.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuidevicedetailsview.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -15,15 +15,10 @@
*
*/
#include "btcpuidevicedetailsview.h"
-#include <QtGlobal>
-#include <QGraphicsLinearLayout>
-#include <HbInstance>
-#include <hblabel.h>
-#include <hbmenu.h>
+#include <hbdataform.h>
#include <hbaction.h>
-#include <hbcombobox.h>
-#include <hbgroupbox.h>
#include <bluetoothuitrace.h>
+#include <HbParameterLengthLimiter>
// docml to load
const char* BTUI_DEVICEDETAILSVIEW_DOCML = ":/docml/bt-device-details-view.docml";
@@ -69,12 +64,12 @@
void BtCpUiDeviceDetailsView::setDeviceName(const QString &deviceName)
{
BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
- //todo: use Localised string Id,If Loc ID is used
- //wrong string is displayed. Need to correct text map file.
- QString heading(hbTrId("%1 details"));
- if(mGroupBox) {
- mGroupBox->setHeading(heading.arg(deviceName));
+ if(mGroupBox) {
+ QString heading = HbParameterLengthLimiter(hbTrId(
+ "txt_bt_subhead_1_details")).arg(deviceName);
+
+ mGroupBox->setHeading(heading);
}
BOstraceFunctionExit0(DUMMY_DEVLIST);
}
@@ -92,7 +87,7 @@
{
BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
if (item && mLayout) {
- //todo: with out this item is not removed from the view.
+ //With out this item is not removed from the view.
item->setVisible(false);
mLayout->removeItem(item);
delete item;
--- a/bluetoothengine/btui/btcpplugin/btcpuidevicedetailsview.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuidevicedetailsview.h Wed Oct 13 13:15:31 2010 +0300
@@ -17,9 +17,6 @@
#ifndef BTCPUIDEVICEDETAILSVIEW_H
#define BTCPUIDEVICEDETAILSVIEW_H
-#include <hbview.h>
-#include <qglobal.h>
-#include <hbdataform.h>
#include <hbgroupbox.h>
#include <hbdocumentloader.h>
#include <cpbasesettingview.h>
--- a/bluetoothengine/btui/btcpplugin/btcpuideviceview.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuideviceview.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -30,9 +30,9 @@
#include <hblineedit.h>
#include <hblistview.h>
#include <hbmenu.h>
-#include <qstring>
-#include <qstringlist>
-#include <qdebug>
+#include <QString>
+#include <QStringList>
+#include <QDebug>
#include <bluetoothuitrace.h>
#include <btabstractdelegate.h>
#include <btdelegatefactory.h>
@@ -45,6 +45,10 @@
// docml to load
const char* BTUI_DEVICEVIEW_DOCML = ":/docml/bt-device-view.docml";
+
+// ToDo: should use base class delegate instead of mAbstractDelegate, also base class createDelegate()
+// and createExecuteDelegate()
+
BtcpuiDeviceView::BtcpuiDeviceView(BtSettingModel &settingModel,
BtDeviceModel &deviceModel,
QGraphicsItem *parent) :
@@ -562,7 +566,7 @@
void BtcpuiDeviceView::pairDelegateCompleted(int status)
{
- BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
+ BOstraceFunctionEntryExt( DUMMY_DEVLIST, this, status );
Q_UNUSED(status);
//TODO: handle the error here
if (mAbstractDelegate)
@@ -641,7 +645,8 @@
mAbstractDelegate = BtDelegateFactory::newDelegate(
BtDelegate::DisconnectService, mSettingModel, mDeviceModel);
// todo: check return value of connect
- connect( mAbstractDelegate, SIGNAL(delegateCompleted(int,BtAbstractDelegate*)), this, SLOT(disconnectDelegateCompleted(int)) );
+ connect( mAbstractDelegate, SIGNAL(delegateCompleted(int,BtAbstractDelegate*)), this,
+ SLOT(disconnectDelegateCompleted(int)) );
mAbstractDelegate->exec(QVariant(list));
}
BOstraceFunctionExit0(DUMMY_DEVLIST);
--- a/bluetoothengine/btui/btcpplugin/btcpuimainview.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuimainview.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -598,13 +598,13 @@
mDeviceList = qobject_cast<HbGridView *>( mLoader->findWidget( "deviceList" ) );
BTUI_ASSERT_X( mDeviceList != 0, "bt-main-view", "Device List (grid view) not found" );
- ret = connect(mDeviceList, SIGNAL(activated(QModelIndex)), this, SLOT(deviceSelected(QModelIndex)));
- BTUI_ASSERT_X( ret, "bt-main-view", "deviceSelected can't connect" );
+ ret = connect(mDeviceList, SIGNAL(activated(QModelIndex)), this, SLOT(openDeviceView(QModelIndex)));
+ BTUI_ASSERT_X( ret, "bt-main-view", "openDeviceView can't connect" );
ret = connect(mDeviceList,
SIGNAL(longPressed(HbAbstractViewItem*, QPointF)), this,
SLOT(showContextMenu(HbAbstractViewItem*, QPointF)));
- BTUI_ASSERT_X( ret, "bt-main-view", "deviceSelected can't connect" );
+ BTUI_ASSERT_X( ret, "bt-main-view", "showContextMenu can't connect" );
mOrientation = mMainWindow->orientation();
@@ -642,9 +642,6 @@
mVisibilityMode = qobject_cast<HbComboBox *>( mLoader->findWidget( "visibilityMode" ) );
BTUI_ASSERT_X( mVisibilityMode != 0, "bt-main-view", "visibility combobox not found" );
// add new item for temporary visibility
- // NOTE: translation (at least default english) gives string "(p)Visible for 5 min",
- // if setting 1 min --> "(s)Visible for 1 min", ie p=plural, s=singular, but these should
- // not be shown to the user!
// ToDo: change this to use translation once it starts working
QString tempVis(hbTrId("txt_bt_setlabel_visibility_val_visible_for_l1_min", 5));
//QString tempVis(hbTrId("Visible for 5 min"));
@@ -771,10 +768,15 @@
void BtcpuiMainView::createContextMenuActions(int majorRole)
{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
if (majorRole & BtuiDevProperty::Connected) {
mContextMenu->addAction(hbTrId("txt_bt_menu_disconnect"));
}
else {
mContextMenu->addAction(hbTrId("txt_bt_menu_connect"));
- }
+ }
+ BOstraceFunctionExit0(DUMMY_DEVLIST);
}
+
+
+
--- a/bluetoothengine/btui/btcpplugin/btcpuimainview.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuimainview.h Wed Oct 13 13:15:31 2010 +0300
@@ -61,11 +61,8 @@
void changePowerState();
void changeVisibility(int index);
void changeBtLocalName();
-
void updateSettingItems(const QModelIndex &topLeft, const QModelIndex &bottomRight);
-
void launchDeviceDiscovery();
-
void goToSearchView();
//from delegate classes
@@ -111,6 +108,7 @@
void updateOptionsMenu();
+
private:
// search view. Owned
--- a/bluetoothengine/btui/btcpplugin/btcpuisearchview.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuisearchview.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -38,14 +38,15 @@
#include "btuimodelsortfilter.h"
#include "btuiviewutil.h"
#include "btcpuiviewmgr.h"
+#include <btdelegatefactory.h>
+#include "btqtconstants.h"
// docml to load
const char* BTUI_SEARCHVIEW_DOCML = ":/docml/bt-search-view.docml";
-BtcpuiSearchView::BtcpuiSearchView(BtSettingModel &settingModel,
- BtDeviceModel &deviceModel,
- QGraphicsItem *parent) :
- BtcpuiBaseView(settingModel,deviceModel, parent)
+BtcpuiSearchView::BtcpuiSearchView(BtSettingModel &settingModel,
+ BtDeviceModel &deviceModel, QGraphicsItem *parent) :
+ BtcpuiBaseView(settingModel, deviceModel, parent), mSecondaryDelegate(0)
{
bool ret(false);
@@ -96,7 +97,7 @@
ret = connect(mDeviceList,
SIGNAL(longPressed(HbAbstractViewItem*, QPointF)), this,
SLOT(showContextMenu(HbAbstractViewItem*, QPointF)));
- BTUI_ASSERT_X( ret, "bt-search-view", "deviceSelected can't connect" );
+ BTUI_ASSERT_X( ret, "bt-search-view", "showContextMenu can't connect" );
mDeviceList->setSelectionMode( HbAbstractItemView::SingleSelection );
@@ -140,8 +141,8 @@
BTUI_ASSERT_X( optionsMenu != 0, "BtcpuiSearchView::BtcpuiSearchView", "Options menu not found" );
this->setMenu(optionsMenu);
- ret = connect(mDeviceList, SIGNAL(activated(QModelIndex)), this, SLOT(deviceSelected(QModelIndex)));
- BTUI_ASSERT_X( ret, "BtcpuiSearchView::BtcpuiSearchView", "deviceSelected can't connect" );
+ ret = connect(mDeviceList, SIGNAL(activated(QModelIndex)), this, SLOT(openDeviceView(QModelIndex)));
+ BTUI_ASSERT_X( ret, "BtcpuiSearchView::BtcpuiSearchView", "openDeviceView can't connect" );
bool regStatus(false);
regStatus = HbStyleLoader::registerFilePath(":/docml/btcpuisearchlistviewitem.widgetml");
@@ -172,6 +173,7 @@
{
delete mLoader; // Also deletes all widgets that it constructed.
delete mBtuiModelSortFilter;
+ delete mSecondaryDelegate;
HbStyleLoader::unregisterFilePath(":/docml/btcpuisearchlistviewitem.widgetml");
HbStyleLoader::unregisterFilePath(":/docml/btcpuisearchlistviewitem.css");
}
@@ -300,3 +302,71 @@
}
}
}
+
+void BtcpuiSearchView::connectToDevice(const QModelIndex& modelIndex)
+{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
+
+ bool ok(false);
+ if(!mSecondaryDelegate) {
+ mSecondaryDelegate = BtDelegateFactory::newDelegate(
+ BtDelegate::ConnectService, mSettingModel, mDeviceModel);
+ ok = connect(mSecondaryDelegate,
+ SIGNAL(delegateCompleted(int,BtAbstractDelegate*)), this,
+ SLOT(secondaryDelegateCompleted(int,BtAbstractDelegate*)));
+ BOstraceExt1(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiSearchView::connectToDevice signal connect %d", ok);
+ if (!ok) {
+ delete mSecondaryDelegate;
+ mSecondaryDelegate = 0;
+ }
+ else {
+ QModelIndex index = mBtuiModelSortFilter->mapToSource(modelIndex);
+ QVariant param;
+ param.setValue(index);
+ mSecondaryDelegate->exec(param);
+ }
+ }
+
+ BOstraceFunctionExit0(DUMMY_DEVLIST);
+}
+
+void BtcpuiSearchView::secondaryDelegateCompleted(int error, BtAbstractDelegate* delegate)
+{
+ BOstraceFunctionEntryExt( DUMMY_DEVLIST, this, error );
+ Q_UNUSED(error);
+ Q_UNUSED(delegate);
+
+ delete mSecondaryDelegate;
+ mSecondaryDelegate = 0;
+ BOstraceFunctionExit0(DUMMY_DEVLIST);
+}
+
+void BtcpuiSearchView::disconnectFromDevice(const QModelIndex& modelIndex)
+{
+ BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
+
+ bool ok(false);
+ if(!mSecondaryDelegate) {
+ mSecondaryDelegate = BtDelegateFactory::newDelegate(
+ BtDelegate::DisconnectService, mSettingModel, mDeviceModel);
+ ok = connect(mSecondaryDelegate,
+ SIGNAL(delegateCompleted(int,BtAbstractDelegate*)), this,
+ SLOT(secondaryDelegateCompleted(int,BtAbstractDelegate*)));
+ BOstraceExt1(TRACE_DEBUG, DUMMY_DEVLIST, "BtcpuiSearchView::connectToDevice signal connect %d", ok);
+ if (!ok) {
+ delete mSecondaryDelegate;
+ mSecondaryDelegate = 0;
+ }
+ else {
+ QModelIndex index = mBtuiModelSortFilter->mapToSource(modelIndex);
+ QVariant deviceBtAddress = mDeviceModel->data(index, BtDeviceModel::ReadableBdaddrRole);
+
+ QList<QVariant>paramList;
+ paramList.append(QVariant(ServiceLevel));
+ paramList.append(deviceBtAddress);
+
+ mSecondaryDelegate->exec(paramList);
+ }
+ }
+ BOstraceFunctionExit0(DUMMY_DEVLIST);
+}
--- a/bluetoothengine/btui/btcpplugin/btcpuisearchview.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btcpplugin/btcpuisearchview.h Wed Oct 13 13:15:31 2010 +0300
@@ -42,12 +42,17 @@
virtual void activateView( const QVariant& value, bool backNavi);
virtual void deactivateView();
virtual void createContextMenuActions(int majorRole);
+ virtual void connectToDevice(const QModelIndex& modelIndex);
+ virtual void disconnectFromDevice(const QModelIndex& modelIndex);
+
+
public slots:
void changeOrientation( Qt::Orientation orientation );
void stopSearching();
void retrySearch();
virtual void viewByDialogClosed(HbAction* action);
void deviceSearchCompleted(int error);
+ void secondaryDelegateCompleted(int error, BtAbstractDelegate* delegate);
private:
virtual void take(BtAbstractDelegate *delegate);
@@ -65,6 +70,12 @@
HbAction* mViewBy;
HbAction* mStop;
HbAction* mRetry;
+
+ //This is used to perform connect/disconnect operations.
+ //Inquiry delegate will be primary delegate, since Inquiry
+ //delegate is active most of the time, this secondary
+ //delegate is used to perform connect/disconnect.
+ BtAbstractDelegate* mSecondaryDelegate;
};
--- a/bluetoothengine/btui/btuidelegate/btdelegateconnect.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegateconnect.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -29,6 +29,7 @@
#include <bluetoothuitrace.h>
#include <e32property.h>
#include <ctsydomainpskeys.h>
+#include <hbparameterlengthlimiter.h>
BtDelegateConnect::BtDelegateConnect(
BtSettingModel* settingModel,
@@ -137,6 +138,8 @@
}
if( error ) {
+ QString prompt = HbParameterLengthLimiter(hbTrId("txt_bt_info_unable_to_connect_with_bluetooth")).arg(mDeviceName);
+ HbMessageBox::warning(prompt);
emitCommandComplete(error);
}
BOstraceFunctionExit1( DUMMY_DEVLIST, this );
@@ -195,6 +198,10 @@
}
else {
// command is finished
+ if(aErr){
+ QString prompt = HbParameterLengthLimiter(hbTrId("txt_bt_info_unable_to_connect_with_bluetooth")).arg(mDeviceName);
+ HbMessageBox::warning(prompt);
+ }
emitCommandComplete(aErr);
}
BOstraceFunctionExit1( DUMMY_DEVLIST, this );
--- a/bluetoothengine/btui/btuidelegate/btdelegatedevsecurity.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegatedevsecurity.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -32,7 +32,7 @@
QObject *parent) :
BtAbstractDelegate(settingModel, deviceModel, parent), mBtEngDevMan(0),
mDisconnectDelegate(0), mBtEngAddr(0), mRegDevArray(0), mOperation(0),
- mDevice(0),mNewDev(0), mActiveHandling(false),mAddingBlockedDev(false)
+ mDevice(0),mNewDev(0), mActiveHandling(false),mAddingDevToRegistry(false)
{
BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
mRegDevArray = new CBTDeviceArray(1);
@@ -187,7 +187,6 @@
{
BOstraceFunctionEntry1( DUMMY_DEVLIST, this );
if ( mActiveHandling ) {
- mAddingBlockedDev = false;
emitCommandComplete(KErrNone);
}
BOstraceFunctionExit1( DUMMY_DEVLIST, this );
@@ -213,9 +212,9 @@
return;
}
if ( !err ) {
- if ( mAddingBlockedDev ) {
+ if ( mAddingDevToRegistry ) {
// blocked a device which was not in the registry originally
- mAddingBlockedDev = false;
+ mAddingDevToRegistry = false;
delete mNewDev;
mNewDev = 0;
}
@@ -271,8 +270,9 @@
emitCommandComplete( KErrArgument );
}
}
- else if ( err == KErrNotFound && mOperation == BtBlock) { // device not in registry, need to add it
- mAddingBlockedDev = true;
+ else if ( err == KErrNotFound && ((mOperation == BtBlock) ||
+ (mOperation == BtAuthorize))) { // device not in registry, need to add it
+ mAddingDevToRegistry = true;
TRAP( err, {
mNewDev = CBTDevice::NewL( mBtEngAddr );
});
@@ -293,17 +293,21 @@
int cod = (index.data(BtDeviceModel::CoDRole)).toInt();
mNewDev->SetDeviceClass(cod);
TBTDeviceSecurity security = mNewDev->GlobalSecurity();
- security.SetBanned( ETrue );
- security.SetNoAuthorise( EFalse ); // set trust status to false
+ if (mOperation == BtBlock) {
+ security.SetBanned( ETrue );
+ security.SetNoAuthorise( EFalse ); // set trust status to false
+ mNewDev->DeleteLinkKey();
+ mNewDev->SetPaired(EFalse);
+ } else { // BtAuthorize
+ security.SetNoAuthorise( ETrue ); // set trust status to true
+ security.SetBanned( EFalse );
+ }
mNewDev->SetGlobalSecurity( security );
- mNewDev->DeleteLinkKey();
- mNewDev->SetPaired(EFalse);
err = mBtEngDevMan->AddDevice( *mNewDev ); // see callback HandleDevManComplete()
}
}
}
if (err) {
- mAddingBlockedDev = false;
emitCommandComplete( err );
}
}
@@ -316,7 +320,7 @@
// no dialogs here since stack provides "unpaired to %1" dialog
// and failures are not reported
mActiveHandling = false;
- mAddingBlockedDev = false;
+ mAddingDevToRegistry = false;
if ( mNewDev ) {
delete mNewDev;
mNewDev = 0;
--- a/bluetoothengine/btui/btuidelegate/btdelegatedevsecurity.h Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegatedevsecurity.h Wed Oct 13 13:15:31 2010 +0300
@@ -74,7 +74,7 @@
CBTDevice *mNewDev;
int mActiveHandling;
QModelIndex mIndex;
- bool mAddingBlockedDev;
+ bool mAddingDevToRegistry;
Q_DISABLE_COPY(BtDelegateDevSecurity)
};
--- a/bluetoothengine/btui/btuidelegate/btdelegatepair.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btdelegatepair.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -109,13 +109,13 @@
addrReadbleStringToSymbian( strBtAddr, btEngddr );
TBTDeviceClass btEngDeviceClass(cod);
error = mBtengConnMan->PairDevice(btEngddr, btEngDeviceClass);
- launchWaitDialog();
}
if(error) {
emitCommandComplete(error);
+ return;
}
-
+ launchWaitDialog();
}
--- a/bluetoothengine/btui/btuidelegate/btuidelegate.pro Wed Sep 29 13:09:05 2010 +0300
+++ b/bluetoothengine/btui/btuidelegate/btuidelegate.pro Wed Oct 13 13:15:31 2010 +0300
@@ -21,6 +21,8 @@
INCLUDEPATH += . \
../inc
+TRANSLATIONS = btdialogs.ts
+# Only one .ts file allowed for a .pro file. btviews.ts is in btcpplugin.pro
RESOURCES += btuidelegate.qrc
CONFIG += qt \
--- a/btobexprofiles/obexreceiveservices/bip/group/obexservicebip.mmp Wed Sep 29 13:09:05 2010 +0300
+++ b/btobexprofiles/obexreceiveservices/bip/group/obexservicebip.mmp Wed Oct 13 13:15:31 2010 +0300
@@ -39,6 +39,7 @@
USERINCLUDE ../inc
+USERINCLUDE ../../btconversationviewlauncher/inc
SYSTEMINCLUDE ../../../obexserviceman/utils/inc
MW_LAYER_SYSTEMINCLUDE
SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore
@@ -67,6 +68,7 @@
LIBRARY btengconnman.lib //btengconnman.dll
LIBRARY HbCore.lib
LIBRARY HbWidgets.lib
+LIBRARY btconversationviewlauncher.lib
DEBUGLIBRARY flogger.lib // For logging
--- a/btobexprofiles/obexreceiveservices/bip/inc/BIPController.h Wed Sep 29 13:09:05 2010 +0300
+++ b/btobexprofiles/obexreceiveservices/bip/inc/BIPController.h Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -37,6 +37,7 @@
class CBIPCapabilityHandler;
class CBIPImageHandler;
+class CBtConversationViewLauncher;
/**
* Backup status.
@@ -169,6 +170,7 @@
CHbDeviceDialogSymbian* iRecvDoneDialog;
TBool iShowRecvCompleteDialog;
CHbDeviceDialogSymbian* iMemoryFullDailog;
+ CBtConversationViewLauncher* iBtCnvViewLauncher;
};
_LIT(KBipPanicCategory, "BIP");
--- a/btobexprofiles/obexreceiveservices/bip/src/BIPController.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/btobexprofiles/obexreceiveservices/bip/src/BIPController.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -34,6 +34,7 @@
#include <msvids.h>
#include "debug.h"
#include <bluetoothdevicedialogs.h>
+#include "btconversationviewlauncher.h"
// CONSTANTS
_LIT8(KBipCapabilityType, "x-bt/img-capabilities\0");
@@ -77,6 +78,7 @@
iResultArray = new(ELeave) CBTDeviceArray(1);
// Get default folder from CenRep
TObexUtilsMessageHandler::GetCenRepKeyStringValueL(KCRUidBluetoothEngine, KLCReceiveFolder, iCenRepFolder);
+ iBtCnvViewLauncher = CBtConversationViewLauncher::NewL();
TRACE_FUNC_EXIT
}
@@ -106,6 +108,7 @@
delete iFailureDialog;
delete iRecvDoneDialog;
delete iMemoryFullDailog;
+ delete iBtCnvViewLauncher;
TRACE_FUNC_EXIT
}
@@ -1056,6 +1059,10 @@
}break;
case TBluetoothDialogParams::EShow:
+ {
+ TRAP_IGNORE(iBtCnvViewLauncher->LaunchConversationViewL());
+ }
+ //No break statement after the preview case since the receive dialog must be closed anyway
case TBluetoothDialogParams::ECancelShow:
{
//In case of Show, the device dialog will handle the opening of conversation view.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/btobexprofiles/obexreceiveservices/btconversationviewlauncher/btconversationviewlauncher.pro Wed Oct 13 13:15:31 2010 +0300
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+TEMPLATE = lib
+TARGET = btconversationviewlauncher
+
+TARGET.UID3 = 0xA89FB97A
+
+TARGET.CAPABILITY = CAP_GENERAL_DLL
+
+INCLUDEPATH += ./inc
+
+CONFIG += hb
+
+# Input
+SOURCES += ./src/btconversationviewlauncher.cpp
+
+HEADERS += ./inc/btconversationviewlauncher.h
+
+LIBS += -lhbcore \
+ -lxqservice \
+ -lxqserviceutil
+
+symbian*: {
+ TARGET.EPOCALLOWDLLDATA = 1
+ MMP_RULES -= "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE"
+ }
+
+BLD_INF_RULES.prj_exports += "./rom/btconversationviewlauncher.iby CORE_APP_LAYER_IBY_EXPORT_PATH(btconversationviewlauncher.iby)"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/btobexprofiles/obexreceiveservices/btconversationviewlauncher/bwins/btconversationviewlauncheru.def Wed Oct 13 13:15:31 2010 +0300
@@ -0,0 +1,5 @@
+EXPORTS
+ ?NewL@CBtConversationViewLauncher@@SAPAV1@XZ @ 1 NONAME ; class CBtConversationViewLauncher * CBtConversationViewLauncher::NewL(void)
+ ??1CBtConversationViewLauncher@@UAE@XZ @ 2 NONAME ; CBtConversationViewLauncher::~CBtConversationViewLauncher(void)
+ ?LaunchConversationViewL@CBtConversationViewLauncher@@QAEXXZ @ 3 NONAME ; void CBtConversationViewLauncher::LaunchConversationViewL(void)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/btobexprofiles/obexreceiveservices/btconversationviewlauncher/eabi/btconversationviewlauncheru.def Wed Oct 13 13:15:31 2010 +0300
@@ -0,0 +1,7 @@
+EXPORTS
+ _ZN27CBtConversationViewLauncher23LaunchConversationViewLEv @ 1 NONAME
+ _ZN27CBtConversationViewLauncher4NewLEv @ 2 NONAME
+ _ZN27CBtConversationViewLauncherD0Ev @ 3 NONAME
+ _ZN27CBtConversationViewLauncherD1Ev @ 4 NONAME
+ _ZN27CBtConversationViewLauncherD2Ev @ 5 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/btobexprofiles/obexreceiveservices/btconversationviewlauncher/inc/btconversationviewlauncher.h Wed Oct 13 13:15:31 2010 +0300
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include <e32base.h>
+
+/**
+This class is a utility class used by the BIP and OPP controllers to
+launch the Messaging App's Bluetooth conversation view.
+*/
+class CBtConversationViewLauncher : public CBase
+ {
+public:
+ IMPORT_C static CBtConversationViewLauncher* NewL();
+ IMPORT_C ~CBtConversationViewLauncher();
+ IMPORT_C void LaunchConversationViewL();
+
+private:
+ CBtConversationViewLauncher();
+ };
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/btobexprofiles/obexreceiveservices/btconversationviewlauncher/rom/btconversationviewlauncher.iby Wed Oct 13 13:15:31 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __BTCONVERSATIONVIEWLAUNCHER_IBY__
+#define __BTCONVERSATIONVIEWLAUNCHER_IBY__
+
+REM DLL
+file=ABI_DIR\UREL\btconversationviewlauncher.dll SHARED_LIB_DIR\btconversationviewlauncher.dll
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/btobexprofiles/obexreceiveservices/btconversationviewlauncher/src/btconversationviewlauncher.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0""
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#include "btconversationviewlauncher.h"
+#include <xqaiwrequest.h>
+#include <xqappmgr.h>
+
+const qint64 KBluetoothMsgsConversationId = 0x01;
+
+
+EXPORT_C CBtConversationViewLauncher* CBtConversationViewLauncher::NewL()
+ {
+ return (new(ELeave)CBtConversationViewLauncher);
+ }
+
+EXPORT_C CBtConversationViewLauncher::~CBtConversationViewLauncher()
+ {
+
+ }
+
+/**
+This API makes use of the QtHighway service provided by the Messaging Application
+to open the Bluetooth conversation view.
+*/
+
+EXPORT_C void CBtConversationViewLauncher::LaunchConversationViewL()
+ {
+ QString service("com.nokia.services.hbserviceprovider");
+ QString interface("conversationview");
+ QString operation("open(qint64)");
+ QList<QVariant> args;
+ XQAiwRequest* request;
+ XQApplicationManager appManager;
+ request = appManager.create(service, interface, operation, false); // not embedded
+ if ( request == NULL )
+ {
+ //Could not create request because of the arguments passed to the create() API.
+ User::Leave(KErrArgument);
+ }
+ args << QVariant(KBluetoothMsgsConversationId);
+ request->setArguments(args);
+ TInt error = KErrNone;
+ if(!request->send())
+ {
+ // The only likely Symbian error code that can be associated is KErrNotSupported
+ error = KErrNotSupported;
+ }
+ delete request;
+ User::LeaveIfError(error);
+ }
+
+CBtConversationViewLauncher::CBtConversationViewLauncher()
+ {
+
+ }
--- a/btobexprofiles/obexreceiveservices/opp/group/obexserviceopp.mmp Wed Sep 29 13:09:05 2010 +0300
+++ b/btobexprofiles/obexreceiveservices/opp/group/obexserviceopp.mmp Wed Oct 13 13:15:31 2010 +0300
@@ -36,6 +36,7 @@
USERINCLUDE ../inc
+USERINCLUDE ../../btconversationviewlauncher/inc
SYSTEMINCLUDE ../../../obexserviceman/utils/inc
SYSTEMINCLUDE /epoc32/include/ecom
MW_LAYER_SYSTEMINCLUDE
@@ -65,5 +66,6 @@
LIBRARY btengconnman.lib //btengconnman.dll
LIBRARY HbCore.lib
LIBRARY HbWidgets.lib
+LIBRARY btconversationviewlauncher.lib
DEBUGLIBRARY flogger.lib
--- a/btobexprofiles/obexreceiveservices/opp/inc/oppcontroller.h Wed Sep 29 13:09:05 2010 +0300
+++ b/btobexprofiles/obexreceiveservices/opp/inc/oppcontroller.h Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -34,6 +34,7 @@
#include <hbdevicedialogsymbian.h>
#include <hbsymbianvariant.h>
+class CBtConversationViewLauncher;
const TInt KBtStartReserveChannel = 9;
@@ -161,6 +162,7 @@
CHbDeviceDialogSymbian* iRecvDoneDialog;
TBool iShowRecvCompleteDialog;
CHbDeviceDialogSymbian* iMemoryFullDailog;
+ CBtConversationViewLauncher* iBtCnvViewLauncher;
};
#endif // OPPCONTROLLER_H
--- a/btobexprofiles/obexreceiveservices/opp/src/oppcontroller.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/btobexprofiles/obexreceiveservices/opp/src/oppcontroller.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -30,6 +30,7 @@
#include <es_sock.h>
#include <bt_sock.h>
#include <bluetoothdevicedialogs.h>
+#include "btconversationviewlauncher.h"
// CONSTANTS
@@ -68,6 +69,7 @@
TObexUtilsMessageHandler::GetCenRepKeyStringValueL(KCRUidBluetoothEngine,
KLCReceiveFolder,
iCenRepFolder);
+ iBtCnvViewLauncher = CBtConversationViewLauncher::NewL();
}
COPPController::~COPPController()
@@ -89,6 +91,7 @@
delete iFailureDialog;
delete iRecvDoneDialog;
delete iMemoryFullDailog;
+ delete iBtCnvViewLauncher;
}
// ---------------------------------------------------------
@@ -1009,6 +1012,10 @@
}break;
case TBluetoothDialogParams::EShow:
+ {
+ TRAP_IGNORE(iBtCnvViewLauncher->LaunchConversationViewL());
+ }
+ //No break statement after the preview case since the receive dialog must be closed anyway
case TBluetoothDialogParams::ECancelShow:
{
//In case of Show, the device dialog will handle the opening of conversation view.
--- a/btservices.pro Wed Sep 29 13:09:05 2010 +0300
+++ b/btservices.pro Wed Oct 13 13:15:31 2010 +0300
@@ -25,6 +25,7 @@
btobexprofiles/obexsendservices/obexhighway \
btobexprofiles/obexreceiveservices/btmsgviewer \
bluetoothengine/btxqservice \
-
+ btobexprofiles/obexreceiveservices/btconversationviewlauncher
+
CONFIG += ordered
--- a/cbsatplugin/atmisccmdplugin/src/atmisccmdplugin.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/cbsatplugin/atmisccmdplugin/src/atmisccmdplugin.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -433,12 +433,15 @@
}
else if (ret == KErrNone)
{
- aBuffer.Create( iReplyBuffer, partLength );
- iReplyBuffer.Delete( 0, partLength );
- if ( iReplyBuffer.Length() == 0 )
- {
- iReplyBuffer.Close();
- }
+
+ if((ret = aBuffer.Create( iReplyBuffer, partLength )) == KErrNone)
+ {
+ iReplyBuffer.Delete( 0, partLength );
+ if ( iReplyBuffer.Length() == 0 )
+ {
+ iReplyBuffer.Close();
+ }
+ }
}
}
@@ -477,35 +480,42 @@
Trace(KDebugPrintD, "iQuietMode: ", iQuietMode);
if ( iQuietMode )
{
- iReplyBuffer.Create( KNullDesC8 );
+ aError = iReplyBuffer.Create( KNullDesC8 );
}
else
{
- iReplyBuffer.Create( aSrcBuffer );
+ aError = iReplyBuffer.Create( aSrcBuffer );
}
- Trace(KDebugPrintD, "aReplyType: ", aReplyType);
- switch ( aReplyType )
+ if(aError == KErrNone)
{
- case EReplyTypeOther:
- break;
-#ifdef PROTOCOL_TDSCDMA
- case EReplyTypeEditor:
- CreateEditModeBuffer( iReplyBuffer );
- break;
-#endif
- case EReplyTypeOk:
- CreateOkOrErrorReply( iReplyBuffer, ETrue );
- break;
- case EReplyTypeError:
- CreateOkOrErrorReply( iReplyBuffer, EFalse );
- break;
- default:
- TRACE_FUNC_EXIT
- return KErrGeneral;
+ Trace(KDebugPrintD, "aReplyType: ", aReplyType);
+ switch ( aReplyType )
+ {
+ case EReplyTypeOther:
+ break;
+ #ifdef PROTOCOL_TDSCDMA
+ case EReplyTypeEditor:
+ aError = CreateEditModeBuffer( iReplyBuffer );
+ break;
+ #endif
+ case EReplyTypeOk:
+ aError = CreateOkOrErrorReply( iReplyBuffer, ETrue );
+ break;
+ case EReplyTypeError:
+ aError = CreateOkOrErrorReply( iReplyBuffer, EFalse );
+ break;
+ default:
+ TRACE_FUNC_EXIT
+ return KErrGeneral;
+ }
+
+ if(aError == KErrNone)
+ {
+ CreatePartOfReply( *iHcReply );
+ }
}
- CreatePartOfReply( *iHcReply );
- HandleCommandCompleted( KErrNone, aReplyType );
+ HandleCommandCompleted( aError, aError ? EReplyTypeUndefined : aReplyType );
if ( EReplyTypeEditor != aReplyType )
{
iHcCmd = NULL;
@@ -513,7 +523,7 @@
iCurrentHandler = NULL;
}
TRACE_FUNC_EXIT
- return KErrNone;
+ return aError;
}
/**
@@ -528,6 +538,8 @@
_LIT8( KErrorReplyNumeric, "4" );
_LIT8( KOkReplyNumeric, "0" );
TBuf8<KErrorReplyLength> replyBuffer;
+ TInt ret = KErrNone;
+
if ( iVerboseMode )
{
replyBuffer.Append( iCarriageReturn );
@@ -556,10 +568,14 @@
replyBuffer.Append( iCarriageReturn );
}
- aReplyBuffer.ReAlloc(aReplyBuffer.Length() + replyBuffer.Length());
- aReplyBuffer.Append( replyBuffer );
+ ret = aReplyBuffer.ReAlloc(aReplyBuffer.Length() + replyBuffer.Length());
+ if(ret == KErrNone)
+ {
+ aReplyBuffer.Append( replyBuffer );
+ }
+
TRACE_FUNC_EXIT
- return KErrNone;
+ return ret;
}
/**
@@ -648,7 +664,12 @@
{
// return error code to AT client
RBuf8 response;
- response.Create(KDefaultCmdBufLength);
+ if (KErrNone != response.Create(KDefaultCmdBufLength))
+ {
+ CreateReplyAndComplete(EReplyTypeError);
+ return;
+ }
+
response.Append(KCRLF);
switch(aError)
{
--- a/cbsatplugin/atmisccmdplugin/src/clckcommandhandler.cpp Wed Sep 29 13:09:05 2010 +0300
+++ b/cbsatplugin/atmisccmdplugin/src/clckcommandhandler.cpp Wed Oct 13 13:15:31 2010 +0300
@@ -560,7 +560,13 @@
return KErrArgument;
}
- iPassword.Create(tmpPwd);
+ ret = iPassword.Create(tmpPwd);
+ if (ret != KErrNone)
+ {
+ TRACE_FUNC_EXIT
+ return ret;
+ }
+
if (iPassword.Length() != 0)
{
ret = iATCmdParser.NextIntParam(iInfoClass);;
--- a/package_definition.xml Wed Sep 29 13:09:05 2010 +0300
+++ b/package_definition.xml Wed Oct 13 13:15:31 2010 +0300
@@ -140,6 +140,9 @@
<component id="btctrldcmoadapter" filter="s60" name="Bluetooth Control DCMO Adapter" class="plugin" introduced="^3">
<unit bldFile="bluetoothengine/btctrldcmoadapter/group"/>
</component>
+ <component id="btxqservice" filter="s60" name="Bluetooth Indicator" introduced="^4">
+ <unit bldFile="bluetoothengine/btxqservice" qt:proFile="btxqservice.pro"/>
+ </component>
</collection>
<collection id="bluetoothappprofiles" name="Bluetooth Application Profiles" level="plugin">
<component id="avrcp" name="Bluetooth AVRCP" introduced="9.1" purpose="optional">
@@ -167,6 +170,10 @@
<component id="btmsgviewer" name="BT message viewer" filter="s60" introduced="^4">
<unit bldFile="btobexprofiles/obexreceiveservices/btmsgviewer" qt:proFile="btmsgviewer.pro"/>
</component>
+ <!-- Move this up to btobexprofiles/btconversationviewlauncher, because obexreceiveservices is already a cpt and you can't have components inside components -->
+ <component id="btconversationviewlauncher" name="BT conversation view launcher" filter="s60" introduced="^4">
+ <unit bldFile="btobexprofiles/obexreceiveservices/btconversationviewlauncher" qt:proFile="btconversationviewlauncher.pro"/>
+ </component>
<component id="obexsendservices" name="OBEX Send Services" filter="s60">
<unit bldFile="btobexprofiles/obexsendservices/group"/>
</component>