示例#1
0
void OSCQueryDevice::slot_createDevice()
{
  const auto& cur_settings = settings();
  const auto& stgs
      = cur_settings.deviceSpecificSettings.value<OSCQuerySpecificSettings>();

  try
  {
    std::unique_ptr<ossia::net::protocol_base> ossia_settings
        = std::make_unique<ossia::oscquery::oscquery_mirror_protocol>(
            stgs.host.toStdString());

    auto& p = static_cast<ossia::oscquery::oscquery_mirror_protocol&>(
        *ossia_settings);
    m_mirror = &p;

    if (stgs.rate)
    {
      ossia_settings = std::make_unique<ossia::net::rate_limiting_protocol>(
          std::chrono::milliseconds{*stgs.rate}, std::move(ossia_settings));
    }

    // run the commands in the Qt event loop
    // FIXME they should be disabled upon manual disconnection

    m_dev = std::make_unique<ossia::net::generic_device>(
        std::move(ossia_settings), settings().name.toStdString());

    deviceChanged(nullptr, m_dev.get());

    p.set_command_callback([=] { sig_command(); });
    p.set_disconnect_callback([=] { sig_disconnect(); });
    p.set_fail_callback([=] { sig_disconnect(); });

    setLogging_impl(Device::get_cur_logging(isLogging()));

    enableCallbacks();
    m_connected = true;
  }
  catch (std::exception& e)
  {
    qDebug() << "Could not connect: " << e.what();
    m_connected = false;
    if (!m_dev)
      m_mirror = nullptr;
  }
  catch (...)
  {
    // TODO save the reason of the non-connection.
    m_connected = false;
    if (!m_dev)
      m_mirror = nullptr;
  }

  connectionChanged(m_connected);
}
示例#2
0
void gesamtbild::spielfensteraufbau()
{
	qWarning() << "spielfensteraufbau";
	QGridLayout *gridlayout = new QGridLayout(this);		//Fuer Hauptfenster

	gameview->setParent(this);
// 	gameview->resize(700,700);
	gameview->move(0,0);
	gameview->setFocus();
	gridlayout->addWidget(gameview,0,0,1,1);

// 	{
// 	QImage *img = new QImage(":img/sonstige/mapfarbdef.png");
// 	gameview->schiffbar = img->pixel(0,0);
// 	gameview->anlegestelle = img->pixel(0,1);
// 	gameview->strand_weich = img->pixel(0,2);
// 	gameview->strand_hart = img->pixel(0,3);
// 	gameview->nschiffbar = img->pixel(0,4);
// 	delete img;
// 	}
// 	QImage testimg = QImage(":img/testimg/gros.gif");


	qWarning() << "SFA1";
	menupanel = new SeaTabPanel();
// 	menupanel->create();
	qWarning() << "created";
// 	menupanel->setParent(this);
	gridlayout->addWidget(menupanel,0,1,1,1);

	qWarning()<< "gameview->setFocus(); (gb->spiel)";


// // 	qWarning() << "Vor Ladungszeugs";

// 	for(int i = 0; i < const_warenanzahl; i++)
//  	{
// 		menupanel->ware[i]->setText(QString("%1").arg(GAMEDATA->activeShip()->cargo().ware[i]));
//  	}

// // 	fuellung->setText(QString("Belegt: %1 von %2").arg(GAMEDATA->active_ship->cargo.gesamtladung, GAMEDATA->active_ship->ladekapazitaet));
// 	{
//  	menupanel->taler->setText(QString("%1").arg(GAMEDATA->activeShip()->cargo().taler).prepend(tr("Money: ")));
// 	QString flstring = QString("%1").arg(GAMEDATA->activeShip()->cargo().fuellung);
// 	flstring.append(QString("/%1 belegt").arg(GAMEDATA->activeShip()->cargo().kapazitaet));
// 	menupanel->fuellung->setText(flstring);
// 	}
// 	menupanel->setGameData(GAMEDATA);
	menupanel->show();

	gridlayout->setColumnStretch(0,7);
	gridlayout->setColumnStretch(1,2);

	connect(gameview,SIGNAL(destroyed()),this,SLOT(close()));

	connect(gameview, SIGNAL(sig_trade()), this, SLOT(handel()));
// 	connect(gameview,SIGNAL(handel()),gameview,SLOT(hide()));

	connect(gameview, SIGNAL(sig_anlegbar(bool)), menupanel->anlegen,SLOT(setEnabled(bool)));

	connect(gameview, SIGNAL(SIGgeschwindigkeit(int)), menupanel->geschwindigkeitsanzeige,SLOT(setValue(int)));

	connect(gameview, SIGNAL(sig_time()),this,SLOT(zeitanzeige()));

	connect(gameview, SIGNAL(sig_save()),this,SLOT(speicherndialog()));

	connect(gameview, SIGNAL(sig_menu()), this, SLOT(spielmenu()));

	connect(menupanel->anlegen, SIGNAL(clicked()), this, SLOT(landmenu()));
	connect(menupanel->schuss, SIGNAL(clicked()), gameview, SLOT(schuss()));
	connect(menupanel->anlegen, SIGNAL(clicked()), gameview, SLOT(landgang()));
// 	connect(anlegen, SIGNAL(clicked()), anlegen, SLOT(hide()));
// 	connect(menupanel->anlegen, SIGNAL(clicked()), menupanel->ablegen, SLOT(show()));

// 	connect(menupanel->ablegen, SIGNAL(clicked()), this, SLOT(seemenu()));
// 	connect(menupanel->ablegen, SIGNAL(clicked()), gameview, SLOT(ablegen()));
// 	connect(ablegen, SIGNAL(clicked()), anlegen, SLOT(show()));
// 	connect(ablegen, SIGNAL(clicked()), ablegen, SLOT(hide()));

	connect(menupanel->geschwindigkeitsregler,SIGNAL(valueChanged(int)), gameview, SLOT(segelsetzen(int)));
	
	TERMINAL->resize(width(), height()/2);
	TERMINAL->setParent(this);
	TERMINAL->setWindowFlags(Qt::Popup);
	TERMINAL->hide();
	connect(gameview, SIGNAL(sig_konsole()), TERMINAL, SLOT(show()));
// 	connect(TERMINAL, SIGNAL(sig_loadMap(QString)), gameview, SLOT(karteladen(QString)));
	connect(TERMINAL, SIGNAL(sig_command(QString)), this, SLOT(execCommand(QString)));
}
示例#3
0
void konsole::execCommand()
{
bool executed = false;
QString inputstring = input->text();
if(!inputstring.isEmpty())
{
	lastcommands << inputstring;
// lc_iterator.toBack();
	row = lastcommands.size();
}
output->appendPlainText(QString(inputstring).prepend("> "));

if(inputstring.startsWith("load "))
{
	executed = true;
	QString filestring = QString(inputstring).remove("load ");
	if(QFile(filestring).exists())
	{
// 	karteladen(QString(inputstring).remove("load "));
		qWarning() << "Load: " << filestring;
		output->appendPlainText(QString("Load: ").append(filestring));
		if(filestring.endsWith(".ohm"))
		{
			emit sig_command(inputstring.simplified());
			return;
		}
		else if(filestring.endsWith(".ohs"))		//Savegame
		{
			return;
		}
		else if(filestring.endsWith(".oht"))		//Script
		{
			return;
		}
		else
		{
			QFile rfile(filestring);
			rfile.open(QIODevice::ReadOnly|QIODevice::Text);
			output->appendPlainText(rfile.readAll());
			rfile.close();
		}
	}
	else
	{
	output->appendPlainText(tr("Fehler: Datei nicht gefunden: \"").append(filestring).append("\" !"));
	}
}

else if(inputstring.startsWith("echo "))
{
	output->appendPlainText(inputstring.remove("echo "));
	return;
}

else if(QString(inputstring).simplified().contains(" sidemenu"))
{
	emit sig_command(inputstring);
	return;
}

else if(inputstring.isEmpty() || QString(inputstring).remove(" ").isEmpty() ||  QString(inputstring).simplified().isEmpty())
{
	return;
}

else if(inputstring == "test a")
{
	emit sig_command(inputstring);
	return;
}

else if(inputstring == "print Shipposition")
{
GAMEDATA->activeShip()->printPosition();
return;
}

else if(inputstring.startsWith("print Citygoods"))
{
bool printed = false;
QList<CityClass> citylist = *GAMEDATA->cityList();
QString cityname = QString(inputstring).remove("print Citygoods ");
qWarning() << "Cityname:" << cityname << "Inputstring:" << inputstring ;

if(!cityname.isEmpty())
{
	for(QList<CityClass>::iterator it = citylist.begin();
	it != citylist.end();
	++it)
	{
	qWarning() << "It->cityname():" << it->cityname();
		if(it->cityname() == cityname)
		{
			it->printGoods();
			printed = true;
		}
	}
}
if(!printed)
{
OHDebug(QString(cityname).prepend("City \"").append("\" not found!"));
}
return;
}

else if(inputstring == QString("gametime"))
{
// output->appendPlainText(QString("%1.%2.%3, %4:%5").arg(QChar(GAMEDATA->gametime().retDay()), QChar(GAMEDATA->gametime().retMonth()), QChar(GAMEDATA->gametime().retYear()), QChar(GAMEDATA->gametime().retHour()), QChar(int(GAMEDATA->gametime().retMinute()))));
output->appendPlainText(QString("%1.%2.%3, %4:%5").arg(QString("%1").arg(GAMEDATA->gametime().day()), QString("%1").arg(GAMEDATA->gametime().month()), QString("%1").arg(GAMEDATA->gametime().year()), QString("%1").arg(GAMEDATA->gametime().hour()), QString("%1").arg(GAMEDATA->gametime().minute())));

qWarning() << QString("%1.%2.%3, %4:%5").arg(QString("%1").arg(GAMEDATA->gametime().day()), QString("%1").arg(GAMEDATA->gametime().month()), QString("%1").arg(GAMEDATA->gametime().year()), QString("%1").arg(GAMEDATA->gametime().hour()), QString("%1").arg(GAMEDATA->gametime().minute()));
return;
}

if(!executed)
{
	output->appendPlainText(tr("Error: unknown Command \"").append(inputstring).append("\" !"));
}
}