Example #1
0
void MainWindow::create_actions(){
    quit_action = new QAction("Выход", this);
    quit_action->setStatusTip("Выход из программы");
    connect(quit_action, SIGNAL(activated()), this, SLOT(send_exit()));

    settings_action = new QAction("Настройки", this);
    quit_action->setStatusTip("Открыть окно настроек");
    connect(settings_action, SIGNAL(activated()), this, SLOT(send_settings()));
}
Example #2
0
void handle_settings()
{
	if (state != StateConnected)
	{
		send_error(ErrorDisconnect, message.sequence);
		return;
	}

	if (message.data_size < 2)
	{
		send_error(ErrorParser, message.sequence);
		return;
	}
	
	const uint8_t type = message.data[0];
	const uint8_t key = message.data[1];

	if (message.data_size == 2) // no value = request to read back setting
	{
		send_ack(message.sequence);
		send_settings(type, key, message.sequence);
		return;
	}
	
	switch (type)
	{
		case SettingsByte:
			if (message.data_size != 3)
			{
				send_error(ErrorParser, message.sequence);
				return;
			}
			settings_set_byte(key, message.data[2]);
			break;
		case SettingsWord:
			if (message.data_size != 4)
			{
				send_error(ErrorParser, message.sequence);
				return;
			}
			settings_set_word(key, (uint16_t)(message.data[2] << 8) | (uint16_t)message.data[3]);
			break;
		case SettingsArray:
			settings_set_array(key, message.data_size - 2, &message.data[2]);
			break;
		default:
			send_error(ErrorUnhandled, message.sequence);
			return;
	}

	send_ack(message.sequence);
}