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); }
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))); }
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("\" !")); } }