/*! \reimp */ QAccessible::State QAccessibleListBox::state(int child) const { State state = Q3AccessibleScrollView::state(child); Q3ListBoxItem *item; if (!child || !(item = listBox()->item(child - 1))) return state; if (item->isSelectable()) { if (listBox()->selectionMode() == Q3ListBox::Multi) state |= MultiSelectable; else if (listBox()->selectionMode() == Q3ListBox::Extended) state |= ExtSelectable; else if (listBox()->selectionMode() == Q3ListBox::Single) state |= Selectable; if (item->isSelected()) state |= Selected; } if (listBox()->focusPolicy() != Qt::NoFocus) { state |= Focusable; if (item->isCurrent()) state |= Focused; } if (!listBox()->itemVisible(item)) state |= Invisible; return state; }
void ImportWindow::sRemove() { Q3ListBoxItem * item = _reports->firstItem(); Q3ListBoxItem * next = 0; while(item) { next = item->next(); if(item->isSelected()) delete item; item = next; } }
void ImportWindow::sImport() { _log->append(tr("Import Started...")); Q3ListBoxItem * item = _reports->firstItem(); Q3ListBoxItem * next = 0; while(item) { next = item->next(); if(item->isSelected()) { QString xml_file = ((ListBoxReportItem*)item)->report(); QString report_name = QString::null; QString report_desc = QString::null; QString report_src = QString::null; int report_grade = ((ListBoxReportItem*)item)->grade(); if(!xml_file.isEmpty()) { QFile file(xml_file); if(file.open(QIODevice::ReadOnly)) { QDomDocument doc; QString errMsg; int errLine, errCol; if(doc.setContent(&file, &errMsg, &errLine, &errCol)) { QDomElement root = doc.documentElement(); if(root.tagName() == "report") { for(QDomNode n = root.firstChild(); !n.isNull(); n = n.nextSibling()) { if(n.nodeName() == "name") report_name = n.firstChild().nodeValue(); else if(n.nodeName() == "description") report_desc = n.firstChild().nodeValue(); } report_src = doc.toString(); if(!report_name.isEmpty()) { QSqlQuery qry; QSqlQuery query; qry.prepare("SELECT report_id " " FROM report " " WHERE ((report_name=:rptname) " " AND (report_grade=:rptgrade));"); qry.bindValue(":rptname", report_name); qry.bindValue(":rptgrade", report_grade); qry.exec(); if(qry.first()) { // update query.prepare("UPDATE report " " SET report_descrip=:rptdescr, " " report_source=:rptsrc " " where report_id=:rptid " " and report_name=:rptname;"); query.bindValue(":rptdescr", report_desc); query.bindValue(":rptsrc", report_src); query.bindValue(":rptid", qry.value(0)); query.bindValue(":rptname", report_name); } else { // insert query.prepare("INSERT INTO report " " (report_name, report_descrip, report_source, report_grade) " "VALUES (:rptname, :rptdescr, :rptsrc, :rptgrade);"); query.bindValue(":rptname", report_name); query.bindValue(":rptdescr", report_desc); query.bindValue(":rptsrc", report_src); query.bindValue(":rptgrade", report_grade); } if(!query.exec()) { QSqlError err = query.lastError(); _log->append(tr("<font color=red>The following error was encountered while trying to import %1 into the database:\n" "\t%2\n\t%3\n</font>") .arg(xml_file) .arg(err.driverText()) .arg(err.databaseText())); } else _log->append(tr("Import successful of %1").arg(xml_file)); } else _log->append(tr("<font color=orange>The document %1 does not have a report name defined\n</font>") .arg(xml_file)); } else _log->append(tr("<font color=red>XML Document %1 does not have root node of report\n</font>") .arg(xml_file)); } else _log->append(tr("<font color=red>Error parsing file %1: %2 on line %3 column %4\n</font>") .arg(xml_file).arg(errMsg).arg(errLine).arg(errCol)); } else _log->append(tr("<font color=red>Could not open the specified file: %1\n</font>") .arg(xml_file)); } else _log->append("<font color=red>Encountered and empty entry: No file name was given.\n</font>"); } item = next; } _log->append(tr("Import complete!\n\n\n")); }