00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <QMenuBar>
00031 #include <QTextEdit>
00032 #include <QAction>
00033
00034 #include "nfctagswindow.h"
00035 #include "nfctagsdiscovery.h"
00036
00037
00038
00039
00040
00041
00042 NfcTagsWindow::NfcTagsWindow(QWidget *parent) :
00043 QMainWindow(parent),mDiscovery(false)
00044 {
00045 addMenu();
00046 initializeWindow();
00047
00048 mNfcTagsDiscovery = new NfcTagsDiscovery();
00049
00050
00051 connect(mNfcTagsDiscovery,SIGNAL(showMessage(QString)),this, SLOT(showMessage(QString)));
00052 connect(mNfcTagsDiscovery,SIGNAL(changeMenu(int)),this, SLOT(changeMenu(int)));
00053 connect(mNfcTagsDiscovery,SIGNAL(clearText()),this, SLOT(clearText()));
00054 }
00055
00056
00057
00058
00059 void NfcTagsWindow::addMenu()
00060 {
00061
00062 mStartTagDiscovery = new QAction("Start Tag Discovery",this);
00063 connect(mStartTagDiscovery, SIGNAL(triggered()), this, SLOT(startTagDiscovery()));
00064 menuBar()->addAction(mStartTagDiscovery);
00065
00066
00067 mStopTagDiscovery = new QAction("Stop Tag Discovery",this);
00068 connect(mStopTagDiscovery, SIGNAL(triggered()), this, SLOT(stopTagDiscovery()));
00069 menuBar()->addAction(mStopTagDiscovery);
00070
00071 mStopTagDiscovery->setVisible(false);
00072
00073 mStartNdefDiscovery = new QAction("Start Ndef Discovery",this);
00074 connect(mStartNdefDiscovery, SIGNAL(triggered()), this, SLOT(startNdefDiscovery()));
00075 menuBar()->addAction(mStartNdefDiscovery);
00076
00077
00078 mStopNdefDiscovery = new QAction("Stop Ndef Discovery",this);
00079 connect(mStopNdefDiscovery, SIGNAL(triggered()), this, SLOT(stopNdefDiscovery()));
00080 menuBar()->addAction(mStopNdefDiscovery);
00081 mStopNdefDiscovery->setVisible(false);
00082 }
00083
00084
00085 void NfcTagsWindow::closeEvent(QCloseEvent *event)
00086 {
00087 if(mDiscovery){
00088
00089 mNfcTagsDiscovery->stopTagDiscovery();
00090 }
00091 }
00092
00093
00094
00095
00096
00097 void NfcTagsWindow::initializeWindow()
00098 {
00099 mDisplayInfo = new QTextEdit();
00100 mDisplayInfo->setText("Detected nfc tags information is \n"
00101 "displayed here.");
00102 mDisplayInfo->setWordWrapMode(QTextOption::WordWrap);
00103
00104 mDisplayInfo->setReadOnly(true);
00105 setCentralWidget(mDisplayInfo);
00106 }
00107
00108
00109 void NfcTagsWindow::startTagDiscovery()
00110 {
00111 mDiscovery = true;
00112 mNfcTagsDiscovery->startTagDiscovery();
00113 }
00114
00115
00116 void NfcTagsWindow::stopTagDiscovery()
00117 {
00118 mDiscovery = false;
00119 mNfcTagsDiscovery->stopTagDiscovery();
00120 }
00121
00122
00123 void NfcTagsWindow::startNdefDiscovery()
00124 {
00125 mDiscovery = true;
00126 mNfcTagsDiscovery->startNdefDiscovery();
00127 }
00128
00129
00130 void NfcTagsWindow::stopNdefDiscovery()
00131 {
00132 mDiscovery = false;
00133 mNfcTagsDiscovery->stopNdefDiscovery();
00134 }
00135
00136 void NfcTagsWindow::changeMenu(int option)
00137 {
00138 switch(option)
00139 {
00140 case 0:
00141 mStartTagDiscovery->setVisible(false);
00142 mStopTagDiscovery->setVisible(true);
00143 mStartNdefDiscovery->setVisible(false);
00144 mStopNdefDiscovery->setVisible(false);
00145 break;
00146
00147 case 1:
00148 mStartTagDiscovery->setVisible(false);
00149 mStopTagDiscovery->setVisible(false);
00150 mStartNdefDiscovery->setVisible(false);
00151 mStopNdefDiscovery->setVisible(true);
00152 break;
00153
00154 case 2:
00155 mStartTagDiscovery->setVisible(false);
00156 mStopTagDiscovery->setVisible(false);
00157 mStartNdefDiscovery->setVisible(false);
00158 mStopNdefDiscovery->setVisible(true);
00159 break;
00160
00161 case 3:
00162 case 4:
00163 mStartTagDiscovery->setVisible(true);
00164 mStopTagDiscovery->setVisible(false);
00165 mStartNdefDiscovery->setVisible(true);
00166 mStopNdefDiscovery->setVisible(false);
00167 break;
00168 };
00169
00170 }
00171
00172
00173
00174 void NfcTagsWindow::clearText()
00175 {
00176 mText.clear();
00177 mDisplayInfo->setText(mText);
00178 }
00179
00180
00181 void NfcTagsWindow::showMessage(QString aDisplayMsg)
00182 {
00183 mText.append(aDisplayMsg);
00184
00185 mDisplayInfo->setText(mText);
00186 }