예제 #1
0
void StartingSequenceMaker::make_2minDU_NoRace()
{
	initShort(1);
	addShort(1);
	addShort(1);
	addShort(1);
	addLong(60);
	addMedium(30);
	addMedium(25);
	addPip(1);
	addPip(1);
	addPip(1);
	addPip(1);
	addPip(1);
	addLong(30);
}
예제 #2
0
void StartingSequenceMaker::make_2minDU_XminRace( int raceTime_min )
{
	initShort(1);
	addShort(1);
	addShort(1);
	addShort(1);
	addLong(60);
	addMedium(30);
	addMedium(25);
	addPip(1);
	addPip(1);
	addPip(1);
	addPip(1);
	addPip(1);
	addLong(raceTime_min * SEC_PER_MIN);
	addRaceEnd(60);
}
예제 #3
0
파일: mainwindow.cpp 프로젝트: Nos-/htw
/**
 * @brief MainWindow::fillDemoData befüllt Datenbank mit Demo-Daten, falls sie leer ist.
 * @param more wenn true, dann wird Datenbank auch befüllt, wenn bereits Daten in DB sind.
 */
void MainWindow::fillDemoData(bool more){
    QString addNo = "";
    if (more){
        qsrand( QDateTime::currentDateTime().toTime_t() );
        addNo = " ("+QString::number(qrand()%100)+")";
    }

    if (more || (lendlib->getMList().empty() && lendlib->getPList().empty())){
        int m1 = addMedium(book,"Die Bibel"+addNo,"");
        int m2 = addMedium(book,"Eragon"+addNo,"Christopher Paolini");
        addMedium(book,"Harry Potter"+addNo, "J. K. Rowling");
        int m4 = addMedium(cd,"Take That: Best of"+addNo, "Take That");
        int m5 = addMedium(dvd,"Harry Potter"+addNo, "Chris Columbus");
        int m6 =  addMedium(other,"Programmierung I Skript"+addNo,"");

        int p1 = addPerson("Hans"+addNo);
        int p2 = addPerson("Klaus"+addNo);
        int p3 = addPerson("Gabi"+addNo);
        addPerson("Brunhilde"+addNo);

        lendMedium(m1, p1);
        lendMedium(m2, p2);
        lendMedium(m4, p1);
        lendMedium(m5, p1);
        lendMedium(m6, p3);
    }
}
예제 #4
0
void K3b::DataMultisessionImportDialog::updateMedia()
{
    d->sessionView->clear();
    d->sessions.clear();

    QList<K3b::Device::Device*> devices = k3bcore->deviceManager()->allDevices();

    bool haveMedium = false;
    for( QList<K3b::Device::Device *>::const_iterator it = devices.constBegin();
         it != devices.constEnd(); ++it ) {
        K3b::Medium medium = k3bappcore->mediaCache()->medium( *it );

        if ( medium.diskInfo().mediaType() & K3b::Device::MEDIA_WRITABLE &&
             medium.diskInfo().diskState() == K3b::Device::STATE_INCOMPLETE ) {
            addMedium( medium );
            haveMedium = true;
        }
        else if ( !medium.diskInfo().empty() &&
                  medium.diskInfo().mediaType() & ( K3b::Device::MEDIA_DVD_PLUS_RW|K3b::Device::MEDIA_DVD_RW_OVWR ) ) {
            addMedium( medium );
            haveMedium = true;
        }
    }

    if ( !haveMedium ) {
        QTreeWidgetItem* noMediaItem = new QTreeWidgetItem( d->sessionView );
        QFont fnt( noMediaItem->font(0) );
        fnt.setItalic( true );
        noMediaItem->setText( 0, i18n( "Please insert an appendable medium" ) );
        noMediaItem->setFont( 0, fnt );
    }
    else if( QTreeWidgetItem* firstMedium = d->sessionView->topLevelItem(0) ) {
        if( firstMedium->childCount() > 0 )
            d->sessionView->setCurrentItem( firstMedium->child( firstMedium->childCount()-1 ) );
        else
            d->sessionView->setCurrentItem( firstMedium );
    }

    d->sessionView->setEnabled( haveMedium );
}
예제 #5
0
파일: mainwindow.cpp 프로젝트: Nos-/htw
/**
 * @brief MainWindow::addMediumButton reagiert, wenn der Button zum Hinzufügen eines Mediums gedrückt wurde.
 */
void MainWindow::addMediumButton(){
    /// Setzt in jedem Fall ein Titel voraus.
    if(ui->addMediaTitle->text().isEmpty()){
        QMessageBox msgBox;
        msgBox.setText("Bitte einen Titel eingeben.");
        msgBox.exec();
    } else {
        MType type;
        QString bType = ui->addMediaType->currentText();
        if (!bType.compare("Buch")){
            type = book;
        } else if (!bType.compare("CD")){
            type = cd;
        } else if (!bType.compare("DVD")){
            type = dvd;
        } else {
            type = other;
        }
        /// je nach Typ, wird ein anderes Medium erstellt
        addMedium(type, ui->addMediaTitle->text(), ui->addMediaDetail->text());
        ui->addMediaTitle->setText("");
        ui->addMediaDetail->setText("");
    }
}
예제 #6
0
파일: mainwindow.cpp 프로젝트: Nos-/htw
/**
 * @brief MainWindow::fillLibFromFile füllt die Datenbank mit den Daten aus den entsprechenden .csv Dateien
 * (lendlibLend.csv für die Beziehung, lendlibMedia.csv für die Medien und lendlibPerson.csv für Personen)
 */
void MainWindow::fillLibFromFile(){
    QFile lendFile("lendlibLend.csv");
    QFile mFile("lendlibMedia.csv");
    QFile pFile("lendlibPerson.csv");
    QList<int> idList;
    /// Lese alle Medien aus
    if (mFile.open(QIODevice::ReadOnly|QFile::Truncate)) {
        int lineNumber = 1;
        mFile.readLine();
        while (!mFile.atEnd()) {
            QByteArray line = mFile.readLine().replace(QByteArray("\n"),QByteArray(""));
            lineNumber++;
            QList<QByteArray> lineElements = line.split('\t');
            /// - Prüfe, ob Format richtig ist (4 Spalten)
            if (lineElements.length() == 4){
                int newID = lineElements[0].toInt();
                /// - Prüfe, ob ID in .csv korrekt ist
                if(idList.contains(newID)){
                    errString = "Fehler beim Lesen der Datei 'lendlibMedia.csv' in Zeile "+ QString::number(lineNumber)+" (ID bereits vorhanden).";
                    readErr = true;
                    return;
                }
                idList.append(newID);
                MType mType;
                switch (lineElements[1].toInt()){
                case 0:
                    mType = book;
                    break;
                case 1:
                    mType = cd;
                    break;
                case 2:
                    mType = dvd;
                    break;
                default:
                    mType = other;
                }
                /// - Füge Medium hinzu
                addMedium(mType,QString::fromStdString(lineElements[2].toStdString()),QString::fromStdString(lineElements[3].toStdString()),newID);
            } else {
                errString = "Fehler beim Lesen der Datei 'lendlibMedia.csv' in Zeile "+ QString::number(lineNumber)+" (Zeile enthält nicht 3 Elemente).";
                readErr = true;
                return;
            }
        }
    }
    /// Lese alle Personen aus
    if (pFile.open(QIODevice::ReadOnly|QFile::Truncate)) {
        int lineNumber = 1;
        pFile.readLine();
        while (!pFile.atEnd()) {
            QByteArray line = pFile.readLine().replace(QByteArray("\n"),QByteArray(""));
            lineNumber++;
            QList<QByteArray> lineElements = line.split('\t');
            /// - Prüfe, ob Format richtig ist (2 Spalten)
            if (lineElements.length() == 2){
                int newID = lineElements[0].toInt();
                /// - Prüfe, ob ID in .csv korrekt ist
                if(idList.contains(newID)){
                    errString = "Fehler beim Lesen der Datei 'lendlibPerson.csv' in Zeile "+ QString::number(lineNumber)+" (ID bereits vorhanden).";
                    readErr = true;
                    return;
                }
                idList.append(newID);
                /// - Füge Person hinzu
                addPerson(QString::fromStdString(lineElements[1].toStdString()),newID);
            } else {
                errString = "Fehler beim Lesen der Datei 'lendlibPerson.csv' in Zeile "+ QString::number(lineNumber)+" (Zeile enthält nicht 2 Elemente).";
                readErr = true;
                return;
            }
        }
    }
    /// Lese alle Ausleih-Relationen aus
    if (lendFile.open(QIODevice::ReadOnly|QFile::Truncate)) {
        int lineNumber = 1;
        lendFile.readLine();
        while (!lendFile.atEnd()) {
            QByteArray line = lendFile.readLine().replace(QByteArray("\n"),QByteArray(""));
            lineNumber++;
            QList<QByteArray> lineElements = line.split('\t');
            /// - Prüfe, ob Format richtig ist (2 Spalten)
            if (lineElements.length() == 2){
                int mediumID = lineElements[0].toInt();
                int personID = lineElements[1].toInt();
                /// - Prüfe, ob die Medium-ID einem Medium entspricht
                if(!lendlib->isMediumEntry(mediumID)){
                    errString = "Fehler beim Lesen der Datei 'lendlibLend.csv' in Zeile "+ QString::number(lineNumber)+" (ID ist kein Medium).";
                    readErr = true;
                    return;
                }
                /// - Prüfe, ob die Personen-ID einer Person entspricht
                if(!lendlib->isPersonEntry(personID)){
                    cerr << lineElements[0].toStdString() << " "<< mediumID << "\n";
                    cerr << lineElements[1].toStdString() << " "<< personID << "\n";
                    errString = "Fehler beim Lesen der Datei 'lendlibLend.csv' in Zeile "+ QString::number(lineNumber)+" (ID ist keine Person).";
                    readErr = true;
                    return;
                }
                /// - Füge Ausleih-Relation hinzu
                lendMedium(mediumID, personID);
            } else {
                errString = "Fehler beim Lesen der Datei 'lendlibLend.csv' in Zeile "+ QString::number(lineNumber)+" (Zeile enthält nicht 2 Elemente).";
                readErr = true;
                return;
            }
        }
    }
}