diff -r 1f895d8a5b2b -r 46686fb6258c qtmobileextensions/examples/keycaptureex/capturerequest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtmobileextensions/examples/keycaptureex/capturerequest.cpp Wed Aug 18 10:38:12 2010 +0300 @@ -0,0 +1,142 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License as published by +* the Free Software Foundation, version 2.1 of the License. +* +* 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 Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, +* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". +* +* Description: +* +*/ + +#include "capturerequest.h" + +#include + +#include "mapping.h" + +CaptureRequest::CaptureRequest(Mapping *mapping_) +{ + mRequestType = RequestTypeUndefined; + mKey = Qt::Key_unknown; + mModifiersMap = Qt::NoModifier; + mModifier = Qt::NoModifier; + mLongFlags = XQKeyCapture::LongNormal; + + this->mapping = mapping_; +} + +CaptureRequest::~CaptureRequest() +{ +} + +QString CaptureRequest::toString() +{ + QString res = "Request "; + + switch (mRequestType) { + case CaptureRequest::RequestTypeKey : + res +="Key("; + break; + case CaptureRequest::RequestTypeLongKey : + res +="LongKey("; + break; + case CaptureRequest::RequestTypeKeyUpAndDowns : + res +="UpAndDowns("; + break; + case CaptureRequest::RequestTypeCancelKey : + res +="CancelKey("; + break; + case CaptureRequest::RequestTypeCancelLongKey : + res +="CancelLongKey("; + break; + case CaptureRequest::RequestTypeCancelKeyUpAndDowns : + res +="CancelUpAndDowns("; + break; + default: + res +="Unknown"; + break; + } + + if ( mRequestType == RequestTypeUndefined) + return res; + +// res +=QString("%1").arg(mKey, 0, 16); + + res += mapping->name(mKey); + + res += QString("(0x%1)").arg(mKey, 0, 16); + + //TODO::put to res mModifiersMap + //TODO::put to res mModifier + if ( mRequestType == RequestTypeLongKey || mRequestType == RequestTypeCancelLongKey) + res +=QString(",%1)").arg(mLongFlags, 0, 16); + else + res +=")"; + + return res; +} + +bool CaptureRequest::setType(QAction* action) +{ + if (!action) + return false; + + bool ok; + + int act = action->data().toInt(&ok); + + if (ok){ + switch (act){ + case 1 : mRequestType = RequestTypeKey; break; + case 2 : mRequestType = RequestTypeLongKey; break; + case 3 : mRequestType = RequestTypeKeyUpAndDowns; break; + case 4 : mRequestType = RequestTypeCancelKey; break; + case 5 : mRequestType = RequestTypeCancelLongKey; break; + case 6 : mRequestType = RequestTypeCancelKeyUpAndDowns; break; + } + return mRequestType!=RequestTypeUndefined; + }else{ + return false; + } +} + +bool CaptureRequest::setKey(QAction* action, QMap *map) +{ + if (!action || !map || map->count()==0) + return false; + + QString key = action->data().toString(); + + if (!key.isNull() && map->contains(key)) { + mKey = map->value(key); + return true; + } + + return false; +} + +bool CaptureRequest::setLongFlags(QAction* action, QMap *map) +{ + if (!action || !map || map->count()==0) + return false; + + QString flag = action->data().toString(); + + if ( !flag.isNull() && map->contains(flag)){ + mLongFlags = map->value(flag); + return true; + } + + return false; +}