void Widget::onAppStateChanged(Qt::ApplicationState state)
{
    if(state == Qt::ApplicationActive)
    {
        checkNetworkState();
    }
}
Esempio n. 2
0
bool startWorker(THREAD_TYPE * coreWorker, DATA_LOADED **** todoList, int8_t *** status, uint ** IDToPosition, uint * nbElemTotal, bool * quit, void * mainTab, bool threaded)
{
	//If we have to wait for some network request to end, we send the task in a different thread
	if(checkNetworkState(CONNEXION_TEST_IN_PROGRESS) && !threaded)
	{
		struct START_WORKER_DELAYED * argument = malloc(sizeof(struct START_WORKER_DELAYED));
		
		if(argument == NULL)
			return false;
		
		argument->coreWorker = coreWorker;
		argument->todoList = todoList;
		argument->status = status;
		argument->IDToPosition = IDToPosition;
		argument->nbElemTotal = nbElemTotal;
		argument->quit = quit;
		argument->mainTab = mainTab;
		
		createNewThread(_startWorkerDeamon, argument);
		
		return true;
	}

	/*On attend d'avoir confirmé que on peut bien accéder à Internet*/
    while(checkNetworkState(CONNEXION_TEST_IN_PROGRESS)) {		usleep(5000);		}
	
    if(!checkNetworkState(CONNEXION_DOWN))
	{
		bool startWatcher = false;
		
		if(!MDLPHandle(**todoList, status, *IDToPosition, *nbElemTotal))	//We need to login, f**k
		{
			startWatcher = dataRequireLoginWithNotif(**todoList, *status, *IDToPosition, *nbElemTotal, mainTab);
		}
		
		MDL_MWORKER_ARG * argument = malloc(sizeof(MDL_MWORKER_ARG));
		if(argument != NULL)
		{
			argument->todoList = todoList;
			argument->status = status;
			argument->nbElemTotal = nbElemTotal;
			argument->quit = quit;
			argument->mainTab = mainTab;
			argument->IDToPosition = IDToPosition;
			
			if(startWatcher)
			{
				MDL_MWORKER_ARG * watcherArg = malloc(sizeof(MDL_MWORKER_ARG));
				if(watcherArg != NULL)
				{
					memcpy(watcherArg, argument, sizeof(MDL_MWORKER_ARG));
					createNewThread(watcherForLoginRequest, watcherArg);
				}
			}
			
			*coreWorker = createNewThreadRetValue(mainDLProcessing, argument);
			MDLSetThreadID(coreWorker);
			
			return true;
		}
	}
	return false;
}
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)),
            this, SLOT(onAppStateChanged(Qt::ApplicationState)));
    QGridLayout *layout = new QGridLayout(this);
    layout->setColumnStretch(1, 1);

    m_networkState = new QLabel();
    layout->addWidget(m_networkState, 0, 0, 1, 2);
    m_connectButton = new QPushButton("Connect");
    connect(m_connectButton, SIGNAL(clicked()),
            this, SLOT(onConnectButton()));
    layout->addWidget(m_connectButton, 0, 2);
    checkNetworkState();

    layout->addWidget(new QLabel("Toast:"), 1, 0);
    m_toastEdit = new QLineEdit("Qt toast");
    layout->addWidget(m_toastEdit, 1, 1);
    m_toastButton = new QPushButton("makeToast");
    layout->addWidget(m_toastButton, 1, 2);
    connect(m_toastButton, SIGNAL(clicked()), this
            , SLOT(onToastButton()));

    layout->addWidget(new QLabel("通知:"), 2, 0);
    m_notificationEdit = new QLineEdit("Qt notification");
    layout->addWidget(m_notificationEdit, 2, 1);
    m_notifyButton = new QPushButton("Send");
    connect(m_notifyButton, SIGNAL(clicked()), this,
            SLOT(onNotifyButton()));
    layout->addWidget(m_notifyButton, 2, 2);

    layout->addWidget(new QLabel("广播:"), 3, 0);
    m_broadcastEdit = new QLineEdit("an.qt.extendsQt.test");
    layout->addWidget(m_broadcastEdit, 3, 1);
    m_broadcastButton = new QPushButton("Send");
    connect(m_broadcastButton, SIGNAL(clicked()),
            this, SLOT(onBroadcastButton()));
    layout->addWidget(m_broadcastButton, 3, 2);

    layout->addWidget(new QLabel("Activity:"), 4, 0);
    m_activityEdit = new QLineEdit("android.settings.SETTINGS");
    layout->addWidget(m_activityEdit, 4, 1);
    m_activityButton = new QPushButton("Start");
    connect(m_activityButton, SIGNAL(clicked()),
                      this, SLOT(onActivityButton()));
    layout->addWidget(m_activityButton, 4, 2);

    layout->addWidget(new QLabel("Location:"), 5, 0);
    m_locationState = new QLabel;
    layout->addWidget(m_locationState, 5, 1);
    QPushButton * btn = new QPushButton("Get");
    connect(btn, SIGNAL(clicked()),
            this, SLOT(onGetLocation()));
    layout->addWidget(btn, 5, 2);

    layout->addWidget(new QLabel("CaptureImage:"), 6, 0);
    m_captureState = new QLabel;
    layout->addWidget(m_captureState, 6, 1);
    btn = new QPushButton("camera");
    connect(btn, SIGNAL(clicked()), this, SLOT(onCaptureImage()));
    layout->addWidget(btn, 6, 2);

    layout->setRowStretch(7, 1);
}