void EngineShoutcast::infoDialog(QString text, QString detailedInfo) { ErrorDialogProperties* props = ErrorDialogHandler::instance()->newDialogProperties(); props->setType(DLG_INFO); props->setTitle(tr("Live broadcasting")); props->setText(text); props->setDetails(detailedInfo); props->setKey(text + detailedInfo); props->setDefaultButton(QMessageBox::Close); props->setModal(false); ErrorDialogHandler::instance()->requestErrorDialog(props); }
void EngineShoutcast::errorDialog(QString text, QString detailedError) { qWarning() << "Shoutcast error: " << detailedError; ErrorDialogProperties* props = ErrorDialogHandler::instance()->newDialogProperties(); props->setType(DLG_WARNING); props->setTitle(tr("Live broadcasting")); props->setText(text); props->setDetails(detailedError); props->setKey(detailedError); // To prevent multiple windows for the same error props->setDefaultButton(QMessageBox::Close); props->setModal(false); ErrorDialogHandler::instance()->requestErrorDialog(props); }
void MidiController::createOutputHandlers() { if (m_preset.outputMappings.isEmpty()) { return; } QHashIterator<ConfigKey, MidiOutputMapping> outIt(m_preset.outputMappings); QStringList failures; while (outIt.hasNext()) { outIt.next(); const MidiOutputMapping& mapping = outIt.value(); QString group = mapping.control.group; QString key = mapping.control.item; unsigned char status = mapping.output.status; unsigned char control = mapping.output.control; unsigned char on = mapping.output.on; unsigned char off = mapping.output.off; double min = mapping.output.min; double max = mapping.output.max; controllerDebug(QString( "Creating output handler for %1,%2 between %3 and %4 to MIDI out: 0x%5 0x%6, on: 0x%7 off: 0x%8") .arg(group, key, QString::number(min), QString::number(max), QString::number(status, 16).toUpper(), QString::number(control, 16).toUpper().rightJustified(2,'0'), QString::number(on, 16).toUpper().rightJustified(2,'0'), QString::number(off, 16).toUpper().rightJustified(2,'0'))); MidiOutputHandler* moh = new MidiOutputHandler(this, mapping); if (!moh->validate()) { QString errorLog = QString("MIDI output message 0x%1 0x%2 has invalid MixxxControl %3, %4") .arg(QString::number(status, 16).toUpper(), QString::number(control, 16).toUpper().rightJustified(2,'0')) .arg(group, key).toUtf8(); qWarning() << errorLog; int deckNum = 0; if (ControllerDebug::enabled()) { failures.append(errorLog); } else if (PlayerManager::isDeckGroup(group, &deckNum)) { int numDecks = PlayerManager::numDecks(); if (deckNum <= numDecks) { failures.append(errorLog); } } delete moh; continue; } m_outputs.append(moh); } if (!failures.isEmpty()) { ErrorDialogProperties* props = ErrorDialogHandler::instance()->newDialogProperties(); props->setType(DLG_WARNING); props->setTitle(tr("MixxxControl(s) not found")); props->setText(tr("One or more MixxxControls specified in the " "outputs section of the loaded preset were invalid.")); props->setInfoText(tr("Some LEDs or other feedback may not work correctly.")); QString detailsText = tr("* Check to see that the MixxxControl " "names are spelled correctly in the mapping " "file (.xml)\n"); detailsText += tr("* Make sure the MixxxControls in question actually exist." " Visit this wiki page for a complete list: "); detailsText += "http://mixxx.org/wiki/doku.php/mixxxcontrols\n\n"; detailsText += failures.join("\n"); props->setDetails(detailsText); ErrorDialogHandler::instance()->requestErrorDialog(props); } }