GetProjectCodesJob::GetProjectCodesJob(QObject* parent)
    : HttpJob(parent)
{
    QSettings s;
    s.beginGroup(QLatin1String("httpconfig"));
    setDownloadUrl(s.value(QLatin1String("projectCodeDownloadUrl")).toUrl());
}
PlatformArduino::PlatformArduino() : Platform(QString("Arduino"))
{
    setReferenceUrl(QUrl(QString("http://arduino.cc/en/Reference/")));
    setIdeName("Arduino IDE");
    setDownloadUrl(QUrl("http://arduino.cc/en/Main/Software"));
    setMinVersion("1.5.2");
    setCanProgram(true);
    setExtensions(QStringList() << ".ino" << ".pde");

    QMap<QString, QString> boards;
    // https://github.com/arduino/Arduino/blob/ide-1.5.x/hardware/arduino/avr/boards.txt
    boards.insert("Arduino UNO", "arduino:avr:uno");
    boards.insert("Arduino Yún", "arduino:avr:yun");
    boards.insert("Arduino Mega/2560", "arduino:avr:mega");
    boards.insert("Arduino Duemilanove/Diecemila", "arduino:avr:diecimila");
    boards.insert("Arduino Nano", "arduino:avr:nano");
    boards.insert("Arduino Mega ADK", "arduino:avr:megaADK");
    boards.insert("Arduino Leonardo", "arduino:avr:leonardo");
    boards.insert("Arduino Micro", "arduino:avr:micro");
    boards.insert("Arduino Esplora", "arduino:avr:Esplora");
    boards.insert("Arduino Mini", "arduino:avr:mini");
    boards.insert("Arduino Ethernet", "arduino:avr:ethernet");
    boards.insert("Arduino Fio", "arduino:avr:fio");
    boards.insert("Arduino BT", "arduino:avr:bt");
    boards.insert("Lilypad Arduino USB", "arduino:avr:LilyPadUSB");
    boards.insert("LilyPad Arduino ", "arduino:avr:lilypad");
    boards.insert("Arduino Pro/Pro Mini", "arduino:avr:pro");
    boards.insert("Arduino NG or older", "arduino:avr:atmegang");
    boards.insert("Arduino Robot Control", "arduino:avr:robotControl");
    boards.insert("Arduino Robot Motor", "arduino:avr:robotMotor");
    // https://github.com/arduino/Arduino/blob/ide-1.5.x/hardware/arduino/sam/boards.txt
    boards.insert("Arduino Due (Programming Port)", "arduino:sam:arduino_due_x_dbg");
    boards.insert("Arduino Due (Native USB Port)", "arduino:sam:arduino_due_x");
    setBoards(boards);

    setDefaultBoardName("Arduino UNO");
}
PlatformPicaxe::PlatformPicaxe() : Platform(QString("PICAXE"))
{
    setReferenceUrl(QUrl("http://www.picaxe.com/BASIC-Commands"));
    setCanProgram(true);
    setIdeName("PICAXE Compilers");
    setDownloadUrl(QUrl("http://www.picaxe.com/Software/Drivers/PICAXE-Compilers/"));
    setMinVersion("2.0");
    setExtensions(QStringList() << ".bas" << ".BAS");

    QMap<QString, QString> boards;
    boards.insert("PICAXE-08", "picaxe08");
    boards.insert("PICAXE-08M", "picaxe08m");
    boards.insert("PICAXE-08M2", "picaxe08m2");
    boards.insert("PICAXE-08M2LE", "picaxe08m2le");
    boards.insert("PICAXE-14M", "picaxe14m");
    boards.insert("PICAXE-14M2", "picaxe14m2");
    boards.insert("PICAXE-18", "picaxe18");
    boards.insert("PICAXE-18A", "picaxe18a");
    boards.insert("PICAXE-18M", "picaxe18m");
    boards.insert("PICAXE-18M2", "picaxe18m2");
    boards.insert("PICAXE-18X", "picaxe18x");
    boards.insert("PICAXE-20", "picaxe20");
    boards.insert("PICAXE-20M2", "picaxe20m2");
    boards.insert("PICAXE-20X2", "picaxe20x2");
    boards.insert("PICAXE-28", "picaxe28");
    boards.insert("PICAXE-28A", "picaxe28a");
    boards.insert("PICAXE-28X", "picaxe28x");
    boards.insert("PICAXE-28X1", "picaxe28x1");
    boards.insert("PICAXE-28X2", "picaxe28x2");
    boards.insert("PICAXE-40X", "picaxe28x");
    boards.insert("PICAXE-40X1", "picaxe28x1");
    boards.insert("PICAXE-40X2", "picaxe28x2");
    setBoards(boards);

    setDefaultBoardName("PICAXE-08M");
}