void PublicTalks::beforePublicTalkComboBoxShown(int rownumber) { // themes combobox cPersonComboBox *c = static_cast<cPersonComboBox *>(maintable->cellWidget(rownumber,2)); cPersonComboBox *speakerCombo = static_cast<cPersonComboBox *>(maintable->cellWidget(rownumber,3)); QString currentThemeText = c->currentText(); QTableWidget *table; cpersons cp; person *speaker = cp.getPerson(speakerCombo->currentText()); if (speaker) { // the speaker selected --> will be shown speaker's themes table = this->getSpeakerPublicTalks(0,speaker->id, currentThemeText); } else { // no speaker selected --> all themes will be shown table = this->getPublicTalksbyLang(currentThemeText); } // schoolComboBox *sc = static_cast<schoolComboBox *>(ui->tableSchoolEdit->cellWidget(row,col)); qDebug() << QString::number(table->rowCount()); table->setSortingEnabled(true); table->sortByColumn(0,Qt::AscendingOrder); table->verticalHeader()->hide(); table->setColumnWidth(0,40); table->setColumnWidth(1,200); table->setColumnWidth(2,80); table->setMinimumWidth(340); c->clear(); c->setModel(table->model()); c->setView(table); c->setModelColumn(1); c->setCurrentIndex(c->findText(currentThemeText,Qt::MatchExactly)); }
/** * @brief Updates the resolver pool display. */ void OpenNIC::updateResolverPool(QStringList resolverPool) { /* @brief <status>;<score>;<kind>;<hostAddress>; */ QTableWidget* table = ui->resolverPoolTable; double minScore,maxScore; scoreMinMax(resolverPool, minScore, maxScore); table->setRowCount(resolverPool.count()); for(int row=0; row < resolverPool.count(); row++ ) { QStringList elements = resolverPool.at(row).split(";"); QString ip = elements.at(3); QString kind = elements.at(2); QString score = elements.at(1); QString status = elements.at(0); QString statusIcon; if (status == "R") { status = tr("FAIL"); statusIcon = ":/images/status-red.png"; } else if (status == "G") { status = tr("OK"); statusIcon = ":/images/status-green.png"; } else if (status == "Y") { status = tr("WARN"); statusIcon = ":/images/status-yellow.png"; } table->setItem(row,3,new QTableWidgetItem(ip)); table->setItem(row,2,new QTableWidgetItem(kind)); #if 0 table->setItem(row,1,new QTableWidgetItem(score)); #else QProgressBar* bar = new QProgressBar(); bar->setRange((int)(minScore*1000.0),(int)(maxScore*1000.0)); bar->setValue((int)(score.toDouble()*1000.0)); table->setCellWidget(row,1,bar); #endif table->setItem(row,0,new QTableWidgetItem(QIcon(statusIcon),status)); } table->resizeColumnsToContents(); table->resizeRowsToContents(); table->setSortingEnabled(true); table->sortByColumn(1,Qt::DescendingOrder); }
void PublicTalks::beforeSpeakerShown(QString name, cPersonComboBox *c) { //cPersonComboBox *c = combo; // get speakers for comboBox //cPersonComboBox *combo = static_cast<cPersonComboBox *>(maintable->cellWidget(combo->property("currentrow").toInt(),3)); cPersonComboBox *themeCombo = static_cast<cPersonComboBox *>(maintable->cellWidget(c->property("currentrow").toInt(),2)); qDebug() << "currentRow1:" << c->currentText() << "rownumber:" << c->property("currentrow") << name; if (c) { qDebug() << "combo ok"; } else { qDebug() << "combo false"; } QTableWidget *table = new QTableWidget(0,4); table->setColumnHidden(0,true); table->setColumnWidth(3,0); std::vector<sql_item> speakers; if(themeCombo->currentText() == "") { // ei teemaa valittu speakers = sql.selectSql("SELECT henkilot.*,yleisokokous.pvm " "FROM henkilot " "LEFT JOIN yleisokokous ON henkilot.id = yleisokokous.puhuja_id " "WHERE henkilot.ohjelmatyypit & 512 GROUP BY henkilot.id ORDER BY nimi"); } else { // teema valittu --> haetaan teeman sopivat puhujat speakers = sql.selectSql("SELECT henkilot.*,P_Esitelmat.aihe_id,yleisokokous.pvm " "FROM henkilot " "LEFT JOIN P_Esitelmat ON henkilot.id = P_Esitelmat.puhuja_id " "LEFT JOIN yleisokokous ON henkilot.id = yleisokokous.puhuja_id " " WHERE P_Esitelmat.aihe_id = '" + QString::number(getThemeId(themeCombo->currentText())) + "' AND henkilot.ohjelmatyypit & 512 GROUP BY henkilot.id ORDER BY nimi, etunimi"); } table->setRowCount(speakers.size()+1); int currentRow = 0; for(unsigned int i = 0; i < speakers.size(); i++) { table->setItem(i+1,0,new QTableWidgetItem( speakers[i].getValue("id") )); table->setItem(i+1,1,new QTableWidgetItem( speakers[i].getValue("nimi") + ", " + speakers[i].getValue("etunimi")) ); table->setItem(i+1,2,new QTableWidgetItem( speakers[i].getValue("pvm")) ); table->setItem(i+1,3,new QTableWidgetItem( speakers[i].getValue("etunimi") + " " + speakers[i].getValue("nimi")) ); if(c->currentText() == table->item(i+1,3)->text()) { QFont boldfont(table->item(i+1,1)->font().family(), table->item(i+1,1)->font().pointSize(), QFont::Bold); table->item(i+1,1)->setFont(boldfont); currentRow = i+1; } } table->verticalHeader()->hide(); table->setColumnWidth(1,150); table->setColumnWidth(2,100); table->setMinimumWidth(280); c->clear(); c->setModel(table->model()); c->setView(table); c->setModelColumn(1); c->setCurrentIndex(currentRow); table->setSortingEnabled(true); table->sortByColumn(1,Qt::AscendingOrder); }