Added "tou" command
[nnokia.git] / shootquery.cpp
1 #include <QtDebug>
2 #include "shootquery.h"
3 #include "camshooter.h"
4
5 ShootQuery::ShootQuery(QObject *parent, CamShooter *camShooterSingleton, QMessageAddress remoteAddr) :
6     QObject(parent)
7 {
8     msgManager = new QMessageManager(this);
9     msgService = new QMessageService(this);
10     filterId = 0;
11
12     this->camShooter = camShooterSingleton;
13     this->remoteAddr = remoteAddr;
14     QObject::connect(camShooter, SIGNAL(fileReady(const QString &)),
15                      this, SLOT(slot_imageReady(const QString &)));
16     QObject::connect(msgManager, SIGNAL(messageUpdated(const QMessageId&, const QMessageManager::NotificationFilterIdSet&)),
17                      this, SLOT(slot_message_updated(const QMessageId&, const QMessageManager::NotificationFilterIdSet&)));
18     camShooter->go();
19 }
20
21 ShootQuery::~ShootQuery() {
22     qDebug() << "deleting ShotQuery";
23     if (filterId)
24         msgManager->unregisterNotificationFilter(filterId);
25     QObject::disconnect(this, 0, 0, 0);
26     delete msgManager;
27     delete msgService;
28 }
29
30 void ShootQuery::slot_imageReady(const QString &filename) {
31     qDebug() << "In slot imageReady";
32
33     qDebug() << "building mms";
34     QMessage response;
35     response.setType(QMessage::Mms);
36     response.setTo(remoteAddr);
37     qDebug() << "attaching image";
38     QStringList paths;
39     paths << filename;
40     response.appendAttachments(paths);
41
42     qDebug() << "sending message";
43     if (!msgService->send(response)) {
44         qDebug() << "send() failed.";
45     }
46     else {
47         qDebug() << "message" << response.id().toString() << "queued";
48         qDebug() << "response status is" << response.status();
49         filterId = msgManager->registerNotificationFilter(
50                             QMessageFilter::byId(response.id()));
51     }
52 }
53
54
55 void ShootQuery::slot_message_updated(const QMessageId &id, const QMessageManager::NotificationFilterIdSet&) {
56     qDebug() << "Message" << id.toString() << "was updated.";
57     QMessage msg = msgManager->message(id);
58     qDebug() << "msg status is" << msg.status();
59     if (msg.standardFolder() == QMessage::SentFolder) {
60         qDebug() << "Message was sent. deleting.";
61         msgManager->removeMessage(msg.id());
62         qDebug() << "Message deleted.";
63         delete this;
64     }
65 }