当前位置: 首页>>代码示例>>C++>>正文


C++ Person::addActivity方法代码示例

本文整理汇总了C++中Person::addActivity方法的典型用法代码示例。如果您正苦于以下问题:C++ Person::addActivity方法的具体用法?C++ Person::addActivity怎么用?C++ Person::addActivity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Person的用法示例。


在下文中一共展示了Person::addActivity方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: itemChanged

void FahrtagWindow::itemChanged(QListWidgetItem *item , AActivity::Category kat, bool isExtern)
{
    /* item: Das Item das Verändert wurde */
    /* kat: Die Kategorie, auf die gebucht wird */
    /* is Extern: Gibt an ob die Person extern ist */
    // Laden der Informationen zur geänderten Person
    QString text = item->text();
    QStringList liste = text.split(QRegExp("\\s*;\\s*"));
    QString name = liste.at(0);
    QString bem = "";
    QTime start = QTime(0,0);
    QTime ende = QTime(0,0);
    QString aufgabe = AActivity::getStringFromCategory(kat);
    if (liste.length() > 1) {
        bem = liste.at(1);
    }
    if (bem.toUpper().contains("EXTERN")) isExtern = true;

    Person *person;

    if (isExtern) {
        person = new Person(name);
        person->setAusbildungTf(true);
        person->setAusbildungZf(true);
        person->setAusbildungRangierer(true);
        person->addActivity(fahrtag, kat);
        fahrtag->addPerson(person, bem, start, ende, aufgabe);

        if (listeMitNamen->contains(item)) {
            fahrtag->removePerson(listeMitNamen->value(item));
            listeMitNamen->remove(item);
            ui->tablePersonen->removeRow(ui->tablePersonen->row(listToTable->value(item)));
            namen->remove(name);
        }
        return;
    } else if (!fahrtag->getPersonal()->personExists(name)) {
        QMessageBox::information(this, "Person nicht gefunden", "Die eingegebene Person konnte nicht gefunden werden!");
        return;
    }

    person = fahrtag->getPersonal()->getPerson(name);

    // Die Person ist in Ordnung und kann jetzt übernommen werden
    name = person->getName();

    if (listeMitNamen->contains(item)) {
        if (listeMitNamen->value(item) == name) {
            // Der Name hat sich nicht verändert, lediglich die Bemerkungen updaten
            fahrtag->updatePersonBemerkung(person, bem);
            return;
        } else {
            // Der Name wurde verändert -> alte Person löschen und dann verfahren, als ob person nicht vorhanden wäre
            QString nameAlt = listeMitNamen->value(item);
            AActivity::Infos *info = fahrtag->getIndividual(person);
            start = info->beginn;
            ende = info->ende;
            aufgabe = info->aufgabe;
            fahrtag->removePerson(nameAlt); // Alte Person von Fahrtag lösen

            listeMitNamen->remove(item);
            ui->tablePersonen->removeRow(ui->tablePersonen->row(listToTable->value(item)));
            listToTable->remove(item);
        }
    }

    if (fahrtag->addPerson(person, bem, start, ende, aufgabe) == ManagerPersonal::FalscheQualifikation) {
        QMessageBox::warning(this, "Fehlene Qualifikation", "Die Aufgabe kann/darf nicht von der angegebenen Person übernommen werden, da dies eine Aufgabe ist, welche eine Ausbildung voraussetzt.");
        return;
    }
    person->addActivity(fahrtag, kat);

    listeMitNamen->insert(item, name);
    // Zeile für die Person in die Tabelle einfügen
    ui->tablePersonen->insertRow(0);
    QTableWidgetItem *zelleName = new QTableWidgetItem(name);
    zelleName->setFlags(Qt::NoItemFlags);
    ui->tablePersonen->setItem(0,0,zelleName);

    if (start != QTime(0, 0)) {
        ui->tablePersonen->setItem(0, 1, new QTableWidgetItem(start.toString("hh:mm")));
    }
    if (ende != QTime(0,0)) {
        ui->tablePersonen->setItem(0, 2, new QTableWidgetItem(ende.toString("hh:mm")));
    }

    QTableWidgetItem *zelleAufgabe = new QTableWidgetItem(AActivity::getStringFromCategory(kat));
    zelleAufgabe->setFlags(Qt::NoItemFlags);
    ui->tablePersonen->setItem(0,3,zelleAufgabe);
    listToTable->insert(item, zelleName);
    namen->insert(name);
}
开发者ID:philjosch,项目名称:Einsatzplaner,代码行数:91,代码来源:fahrtagwindow.cpp


注:本文中的Person::addActivity方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。