#include "prosjektwidget.h" #include "ui_prosjektwidget.h" ProsjektWidget::ProsjektWidget(QWidget *parent) : QWidget(parent), ui(new Ui::ProsjektWidget) { ui->setupUi(this); } ProsjektWidget::~ProsjektWidget() { delete ui; } void ProsjektWidget::oppdaterProsjektListe(ProsjektKartotek &kartotek, ProsjektBindinger &bindinger, KundeKartotek &kundeKart) { ui->prosjektTre->clear(); ui->prosjektTre->setColumnCount(1); connect(ui->prosjektTre, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(gjenstandKlikk(QTreeWidgetItem*,int))); QList prosjektListe; QIcon prosjektIkon(":/res/clipboard.svg"); QIcon prosjektFerdigIkon(":/res/check.svg"); QIcon kundeIkon(":/res/user.svg"); for (int i = 0; i < kartotek.size(); ++i) { bool aktiv = kartotek.at(i).value("active").toBool(); if (aktiv) { bool ferdig = kartotek.at(i).value("ferdig").toBool(); QTreeWidgetItem *prosjektGjenstand = new QTreeWidgetItem(QTreeWidgetItem::Type); prosjektGjenstand->setText(0, kartotek.at(i).value("prosjektnavn").toString()); if (ferdig) prosjektGjenstand->setIcon(0,prosjektFerdigIkon); else prosjektGjenstand->setIcon(0, prosjektIkon); int ordrenummer = kartotek.at(i).value("ordrenummer").toInt(); QList kundeGjenstander; if (bindinger.contains(ordrenummer)) { QList kunder = bindinger.value(ordrenummer); for (int x = 0; x < kunder.size(); ++x) { QString kundeFornavn, kundeEtternavn, kundeFirmanavn; for (int z = 0; z < kundeKart.size(); ++z) { if (kundeKart.at(z).value("id").toInt() == kunder.at(x)) { kundeFornavn = kundeKart.at(z).value("fornavn").toString(); kundeEtternavn = kundeKart.at(z).value("etternavn").toString(); if (!kundeKart.at(z).value("firmanavn").toString().isEmpty()) { kundeFirmanavn = QString(tr("(%1)").arg(kundeKart.at(z).value("firmanavn").toString())); } } } QTreeWidgetItem *kunde = new QTreeWidgetItem(QTreeWidgetItem::UserType); kunde->setText(0, tr("%1 %2 %3").arg(kundeFornavn, kundeEtternavn, kundeFirmanavn)); kunde->setIcon(0, kundeIkon); kunde->setData(0, Qt::UserRole, kunder.at(x)); kundeGjenstander.append(kunde); } prosjektGjenstand->addChildren(kundeGjenstander); } prosjektGjenstand->setData(0, Qt::UserRole, i); prosjektListe.append(prosjektGjenstand); } } ui->prosjektTre->addTopLevelItems(prosjektListe); } void ProsjektWidget::settGjeldendeProsjekt(ProsjektFil prosjekt) { valgtProsjekt = prosjekt; } void ProsjektWidget::on_pushNy_clicked() { emit opprettProsjekt(); } void ProsjektWidget::gjenstandKlikk(QTreeWidgetItem *gjenstand, int kolonne) { if (gjenstand->type() == QTreeWidgetItem::Type) { emit hentProsjektFil(gjenstand->data(kolonne, Qt::UserRole).toInt()); kartotekPosisjon = gjenstand->data(kolonne, Qt::UserRole).toInt(); ui->labelProsjektNavn->setText(valgtProsjekt.value("prosjektnavn").toString()); ui->labelOrdrenrValue->setText(valgtProsjekt.value("ordrenummer").toString()); ui->ordreText->setHtml(valgtProsjekt.value("prosjektbeskrivelse").toString()); quint64 prosjektStart = valgtProsjekt.value("prosjektstart").toULongLong(); quint64 prosjektSlutt = valgtProsjekt.value("prosjektslutt").toULongLong(); QDateTime tProsjektStart(QDateTime::fromMSecsSinceEpoch(prosjektStart)); QDateTime tProsjektSlutt(QDateTime::fromMSecsSinceEpoch(prosjektSlutt)); ui->labelBegynnerValue->setText(tProsjektStart.toString("dd.MM.yyyy hh:mm")); ui->labelSlutterValue->setText(tProsjektSlutt.toString("dd.MM.yyyy hh:mm")); prosjektUI(); } else { QTreeWidgetItem *forelder = gjenstand->parent(); kartotekPosisjon = forelder->data(kolonne, Qt::UserRole).toInt(); kundeID = gjenstand->data(kolonne, Qt::UserRole).toInt(); ui->labelProsjektNavn->setText("Ingen prosjekt valgt"); ui->labelOrdrenrValue->setText("-"); ui->labelBegynnerValue->setText("-"); ui->labelSlutterValue->setText("-"); ui->ordreText->clear(); kundeUI(); } } void ProsjektWidget::prosjektUI() { ui->pushFjernKunde->setEnabled(false); ui->pushRediger->setEnabled(true); ui->pushSlett->setEnabled(true); ui->pushMerkFerdig->setEnabled(true); } void ProsjektWidget::kundeUI() { ui->pushFjernKunde->setEnabled(true); ui->pushRediger->setEnabled(false); ui->pushSlett->setEnabled(false); ui->pushMerkFerdig->setEnabled(false); } void ProsjektWidget::on_pushRediger_clicked() { emit redigerProsjekt(kartotekPosisjon); } void ProsjektWidget::on_pushSlett_clicked() { emit slettProsjekt(kartotekPosisjon); } void ProsjektWidget::on_pushMerkFerdig_clicked() { emit settAktiv(kartotekPosisjon); } void ProsjektWidget::on_pushFjernKunde_clicked() { emit fjernKunde(kartotekPosisjon, kundeID); }