From 44ded91b14b37101fb7291a8fff3f39ae6019791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20P=C3=A5lsson?= Date: Tue, 18 Feb 2014 14:40:33 +0100 Subject: Implemented getPrevEnteredValues for inputted text --- browser/browser.pro | 4 +++- browser/unit-tests/browserdbus/testbrowserdbus.cpp | 12 ++++++++++ browser/unit-tests/browserdbus/testbrowserdbus.h | 1 + browser/unit-tests/browserdbus/webpagegenerator.h | 5 ++-- browser/userinput.cpp | 28 +++++++++++++++++++++- browser/userinput.h | 16 +++++++++++++ common/browserdbus.cpp | 16 +++++++++++++ common/browserdbus.h | 2 ++ 8 files changed, 80 insertions(+), 4 deletions(-) diff --git a/browser/browser.pro b/browser/browser.pro index 5541b31..7d0a6fc 100644 --- a/browser/browser.pro +++ b/browser/browser.pro @@ -1,5 +1,6 @@ QT += dbus webkitwidgets +CONFIG += debug qt my_dbus_cachemanager_adaptors.files += ../common/ICacheManager.xml my_dbus_cachemanager_adaptors.header_flags = -i cachemanager.h -i ../common/browserdefs.h -l cachemanager @@ -14,7 +15,8 @@ my_dbus_bookmark_adaptors.header_flags = -i bookmarkmanager.h -i ../common/brows my_dbus_bookmark_adaptors.source_flags = -l bookmarkmanager my_dbus_userinput_adaptors.files += ../common/IUserInput.xml -my_dbus_userinput_adaptors.header_flags = -i ../common/browserdefs.h +my_dbus_userinput_adaptors.header_flags = -i ../common/browserdefs.h -i userinput.h -l userinput +my_dbus_userinput_adaptors.source_flags = -l userinput my_dbus_webpagewindow_adaptors.files += ../common/IWebPageWindow.xml my_dbus_webpagewindow_adaptors.header_flags = -i webpagewindow.h -i ../common/browserdefs.h -l webpagewindow diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.cpp b/browser/unit-tests/browserdbus/testbrowserdbus.cpp index e8a050e..eba617e 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.cpp +++ b/browser/unit-tests/browserdbus/testbrowserdbus.cpp @@ -301,4 +301,16 @@ void TestBrowserDBus::testAlertDialog() { QVERIFY(spy.wait(1000)); m_bdb->closeAlertDialog(); } + +void TestBrowserDBus::testGetPrevEnteredValues() { + m_bdb->createPageWindow(1,0,0,800,600); + m_bdb->loadurl(testFileUrl()); + QProcess::execute("xdotool mousemove 200 375"); + QProcess::execute("xdotool click 1"); + QTest::qSleep(300); + m_bdb->inputText(conn::brw::DR_OK, "Hello world"); + QTest::qSleep(300); + QStringList list = m_bdb->getPrevEnteredValues("input", "", conn::brw::IET_TEXT); + QVERIFY(list.contains("Hello world")); +} QTEST_MAIN (TestBrowserDBus); diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.h b/browser/unit-tests/browserdbus/testbrowserdbus.h index e356f83..ca808c2 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.h +++ b/browser/unit-tests/browserdbus/testbrowserdbus.h @@ -47,6 +47,7 @@ private slots: void testPromptDialog(); void testCancelPromptDialog(); void testAlertDialog(); + void testGetPrevEnteredValues(); private: QString testFileUrl() { diff --git a/browser/unit-tests/browserdbus/webpagegenerator.h b/browser/unit-tests/browserdbus/webpagegenerator.h index fc7f665..8168f16 100644 --- a/browser/unit-tests/browserdbus/webpagegenerator.h +++ b/browser/unit-tests/browserdbus/webpagegenerator.h @@ -24,11 +24,12 @@ public: "
Go to google
" " " " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ac dignissim leo. Vivamus euismod tortor eu varius molestie. Proin non egestas mauris. Suspendisse nec fringilla mauris, sed dapibus mi. Mauris suscipit rutrum turpis non venenatis. Nunc quis dolor id massa dignissim rutrum. Praesent pretium enim vitae metus placerat, sed sodales elit blandit. Sed volutpat magna neque, ac mollis velit ullamcorper et. Quisque lorem dolor, suscipit mattis mi vitae, euismod cursus magna. Proin at commodo tortor, vitae convallis ipsum. Suspendisse potenti. Vivamus leo metus, feugiat at elit eu, ultricies mattis ipsum. Ut eros risus, facilisis at scelerisque a, hendrerit id odio. Quisque sapien erat, tristique vitae erat non, venenatis elementum leo. Donec at nisi justo. Integer at fringilla ante, in scelerisque risus. Praesent a leo orci. Donec urna eros, molestie non erat ut, pellentesque faucibus odio. Proin in porttitor erat. Duis ac justo massa. Donec nec augue quis nibh feugiat vestibulum. Morbi tortor velit, malesuada nec nulla ac, semper vehicula" - "
" " Set status bar text" "
" - "
" + "
" " Trigger alert" "
" diff --git a/browser/userinput.cpp b/browser/userinput.cpp index 5d2d950..5ffc0b1 100644 --- a/browser/userinput.cpp +++ b/browser/userinput.cpp @@ -16,7 +16,7 @@ #include userinput::userinput(QObject *parent) : - QObject(parent) + QObject(parent), m_inputHistory(new QList()) { qDebug() << __PRETTY_FUNCTION__; } @@ -29,12 +29,21 @@ conn::brw::ERROR_IDS userinput::inputText(conn::brw::DIALOG_RESULT a_eResult, co if(a_eResult == conn::brw::DR_OK) emit inputText(a_strInputValue); + struct inputStruct is; + is.name = m_currentInput.name; + is.type = m_currentInput.type; + is.value = a_strInputValue; + m_inputHistory->append(is); + return conn::brw::EID_NO_ERROR; } void userinput::inputTextReceived(QString a_strInputName, QString a_strDefaultInputValue, int a_i32InputValueType, int a_s32MaxLength, int a_s32Max, int a_s32Min, int a_s32Step) { qDebug() << __PRETTY_FUNCTION__; + m_currentInput.name = a_strInputName; + m_currentInput.type = (conn::brw::INPUT_ELEMENT_TYPE)a_i32InputValueType; + emit onInputText(a_strInputName, a_strDefaultInputValue, (conn::brw::INPUT_ELEMENT_TYPE)a_i32InputValueType, a_s32MaxLength, a_s32Max, a_s32Min, a_s32Step); } @@ -75,3 +84,20 @@ conn::brw::ERROR_IDS userinput::closePromptDialog(QString resultStr, conn::brw:: } return conn::brw::EID_NO_ERROR; } + +conn::brw::ERROR_IDS userinput::getPrevEnteredValues (const QString &a_strInputName, const QString &a_strInputValue, conn::brw::INPUT_ELEMENT_TYPE a_i32InputType, QStringList &a_oInputVariants) +{ + for (int i = 0; i < m_inputHistory->size(); i++){ + struct inputStruct s = m_inputHistory->at(0);; + qDebug() << s.value; + if (s.type == a_i32InputType && + s.name.compare(a_strInputName) == 0) { + a_oInputVariants.append(s.value); + } + } + + return conn::brw::EID_NO_ERROR; +} + +conn::brw::ERROR_IDS userinput::selectOption(const conn::brw::SelectableOptionList &a_oOptionList) +{} diff --git a/browser/userinput.h b/browser/userinput.h index a1aff0a..b5cdbe0 100644 --- a/browser/userinput.h +++ b/browser/userinput.h @@ -50,6 +50,22 @@ public Q_SLOTS: conn::brw::ERROR_IDS closeAlertDialog (void); conn::brw::ERROR_IDS closeConfirmDialog (conn::brw::DIALOG_RESULT); conn::brw::ERROR_IDS closePromptDialog (QString, conn::brw::DIALOG_RESULT); + conn::brw::ERROR_IDS getPrevEnteredValues(const QString&, const QString&, conn::brw::INPUT_ELEMENT_TYPE, QStringList&); + conn::brw::ERROR_IDS selectOption(const conn::brw::SelectableOptionList &); + +private: + struct inputStruct { + QString name; + QString value; + conn::brw::INPUT_ELEMENT_TYPE type; + }; + + struct { + QString name; + conn::brw::INPUT_ELEMENT_TYPE type; + } m_currentInput; + + QList *m_inputHistory; }; #endif // USERINPUT_H diff --git a/common/browserdbus.cpp b/common/browserdbus.cpp index 35bb912..3e53fe1 100644 --- a/common/browserdbus.cpp +++ b/common/browserdbus.cpp @@ -719,3 +719,19 @@ void BrowserDbus::select() { qDebug() << "ERROR " << error.name() << error.message(); } } + +QStringList BrowserDbus::getPrevEnteredValues(QString name, QString value, conn::brw::INPUT_ELEMENT_TYPE type) +{ + qDebug() << __PRETTY_FUNCTION__; + QStringList list; + + QDBusReply reply = actualuserinput->getPrevEnteredValues(name, value, type, list); + if(reply.isValid()) { + conn::brw::ERROR_IDS ret = reply.value(); + qDebug() << "ERROR_IDS " << ret; + } else { + QDBusError error = reply.error(); + qDebug() << "ERROR " << error.name() << error.message(); + } + return list; +} diff --git a/common/browserdbus.h b/common/browserdbus.h index c31a7ba..b746344 100644 --- a/common/browserdbus.h +++ b/common/browserdbus.h @@ -75,6 +75,8 @@ public: Q_INVOKABLE void closeAlertDialog(); Q_INVOKABLE void closeConfirmDialog(conn::brw::DIALOG_RESULT); Q_INVOKABLE void closePromptDialog(QString, conn::brw::DIALOG_RESULT); + Q_INVOKABLE QStringList getPrevEnteredValues(QString name, QString value, conn::brw::INPUT_ELEMENT_TYPE type); + QString title() { return m_title; } void setTitle(QString title) { m_title = title; } -- cgit v1.2.1