void FactoryManager::registerFactoryForEditors(const QValueList<int> &editorTypes, CustomPropertyFactory *factory) { QValueList<int>::ConstIterator endIt = editorTypes.constEnd(); for(QValueList<int>::ConstIterator it = editorTypes.constBegin(); it != endIt; ++it) registerFactoryForEditor(*it, factory); }
double NaiveBayesianClassifier::getProbability(QString category, const QStringList &text) { long totalWordCount = 0; // TODO: do caching QValueList<QString> categories = m_categories.keys(); for( QValueList<QString>::const_iterator it = categories.constBegin(); it != categories.constEnd(); ++it ) { totalWordCount += getCount(*it); } double catCount = log(getCount(category)); double probability = catCount; probability -= log(totalWordCount); for ( QStringList::ConstIterator iter = text.constBegin(); iter != text.constEnd(); ++iter ) { long wordCount = getWordCount(category, *iter); if( wordCount != 0) { //long wordProbability = wordCount; probability -= log(wordCount); probability += catCount; } else { probability -= log(MIN_CLASS_OCCURRENCE); probability += catCount; } } return probability; }
//----------------------------------------------------------------------------- void KMFilterMgr::appendFilters(const QValueList<KMFilter *> &filters, bool replaceIfNameExists) { mDirtyBufferedFolderTarget = true; beginUpdate(); if(replaceIfNameExists) { QValueListConstIterator<KMFilter *> it1 = filters.constBegin(); for(; it1 != filters.constEnd() ; ++it1) { QValueListConstIterator<KMFilter *> it2 = mFilters.constBegin(); for(; it2 != mFilters.constEnd() ; ++it2) { if((*it1)->name() == (*it2)->name()) { mFilters.remove((*it2)); it2 = mFilters.constBegin(); } } } } mFilters += filters; writeConfig(true); endUpdate(); }
QMap<QString,double> NaiveBayesianClassifier::getProbabilities(const QString &text) { QStringList splitted = this->parse(text); QMap<QString,double> probabilities = QMap<QString,double>(); QValueList<QString> categories = m_categories.keys(); for( QValueList<QString>::const_iterator it = categories.constBegin(); it != categories.constEnd(); ++it ) { double probability = this->getProbability(*it, splitted); kdDebug() << "NaiveBayesianClassifiers::" << *it << " = " << probability << endl; probabilities.insert(*it, probability); } return probabilities; }
// return the icon size that would be used if the panel were proposed_size // if proposed_size==-1, use the current panel size instead int PanelButton::preferredIconSize(int proposed_size) const { // (re)calculates the icon sizes and report true if they have changed. // Get sizes from icontheme. We assume they are sorted. KIconTheme *ith = KGlobal::iconLoader()->theme(); if (!ith) { return -1; // unknown icon size } QValueList<int> sizes = ith->querySizes(KIcon::Panel); int sz = ith->defaultSize(KIcon::Panel); if (proposed_size < 0) { proposed_size = (orientation() == Horizontal) ? height() : width(); } // determine the upper limit on the size. Normally, this is panelSize, // but if conserve space is requested, the max button size is used instead. int upperLimit = proposed_size; if (proposed_size > KickerLib::maxButtonDim() && KickerSettings::conserveSpace()) { upperLimit = KickerLib::maxButtonDim(); } //kdDebug()<<endl<<endl<<flush; QValueListConstIterator<int> i = sizes.constBegin(); while (i != sizes.constEnd()) { if ((*i) + (2 * KickerSettings::iconMargin()) > upperLimit) { break; } sz = *i; // get the largest size under the limit ++i; } //kdDebug()<<"Using icon sizes: "<<sz<<" "<<zoom_sz<<endl<<flush; return sz; }
void DocumentationPlugin::cacheIndex(DocumentationCatalogItem *item) { kdDebug() << "Creating index cache for " << item->text(0) << endl; QString cacheName = locateLocal("data", QString("kdevdocumentation/index/cache_") + item->text(0)); QFile cacheFile(cacheName); if (!cacheFile.open(IO_WriteOnly)) return; QTextStream str(&cacheFile); str.setEncoding(QTextStream::Unicode); str << CACHE_VERSION << endl; QValueList<IndexItemProto*> catalogIndexes = indexes[item]; for (QValueList<IndexItemProto*>::const_iterator it = catalogIndexes.constBegin(); it != catalogIndexes.constEnd(); ++it) { str << (*it)->text() << endl; str << (*it)->description() << endl; str << (*it)->url().url() << endl; } cacheFile.close(); }
void Editor::fill() { setUpdatesEnabled(false); d->itemToSelectLater = 0; qApp->eventLoop()->processEvents(QEventLoop::AllEvents); hideEditor(); KListView::clear(); d->itemDict.clear(); clearWidgetCache(); if(!d->set) { d->topItem = 0; setUpdatesEnabled(true); triggerUpdate(); return; } d->topItem = new EditorDummyItem(this); const QValueList<QCString> groupNames = d->set->groupNames(); // kopropertydbg << "Editor::fill(): group names = " << groupNames.count() << endl; if(groupNames.count() == 1) { // one group (default one), so don't show groups //add flat set of properties const QValueList<QCString>& propertyNames = d->set->propertyNamesForGroup( groupNames.first() ); QValueListConstIterator<QCString> it = propertyNames.constBegin(); for( ; it != propertyNames.constEnd(); ++it) addItem(*it, d->topItem); } else { // create a groupItem for each group EditorGroupItem *prevGroupItem = 0; int sortOrder = 0; for (QValueListConstIterator<QCString> it = groupNames.constBegin(); it!=groupNames.constEnd(); ++it, sortOrder++) { const QValueList<QCString>& propertyNames = d->set->propertyNamesForGroup(*it); EditorGroupItem *groupItem; if (prevGroupItem) groupItem = new EditorGroupItem(d->topItem, prevGroupItem, d->set->groupDescription(*it), d->set->groupIcon(*it), sortOrder ); else groupItem = new EditorGroupItem(d->topItem, d->set->groupDescription(*it), d->set->groupIcon(*it), sortOrder ); QValueList<QCString>::ConstIterator it2 = propertyNames.constBegin(); for( ; it2 != propertyNames.constEnd(); ++it2) addItem(*it2, groupItem); prevGroupItem = groupItem; } } // repaint(); if (firstChild()) { setCurrentItem(firstChild()); setSelected(firstChild(), true); slotClicked(firstChild()); updateGroupLabelsPosition(); } setUpdatesEnabled(true); // aaah, call this instead of update() as explained here http://lists.trolltech.com/qt-interest/2000-06/thread00337-0.html triggerUpdate(); }
bool KexiSimplePrintingCommand::print(const QString& aTitleText) { KexiDB::Connection *conn = m_mainWin->project()->dbConnection(); KexiDB::TableOrQuerySchema tableOrQuery(conn, m_objectId); if (!tableOrQuery.table() && !tableOrQuery.query()) { //! @todo item not found return false; } QString titleText(aTitleText.stripWhiteSpace()); if (titleText.isEmpty()) titleText = tableOrQuery.captionOrName(); KexiSimplePrintingEngine engine(m_settings, this); QString errorMessage; if (!engine.init(*conn, tableOrQuery, titleText, errorMessage)) { if (!errorMessage.isEmpty()) KMessageBox::sorry(m_mainWin, errorMessage, i18n("Printing")); return false; } //setup printing #ifdef Q_WS_WIN QPrinter printer(QPrinter::HighResolution); printer.setOrientation( m_settings.pageLayout.orientation == PG_PORTRAIT ? QPrinter::Portrait : QPrinter::Landscape ); printer.setPageSize( (QPrinter::PageSize)KoPageFormat::printerPageSize( m_settings.pageLayout.format ) ); // "chicken-egg" problem: // we cannot use real from/to values in setMinMax() and setFromTo() // because page count is known after obtaining print settings printer.setFromTo(1,1); #else KPrinter printer; printer.setOrientation( m_settings.pageLayout.orientation == PG_PORTRAIT ? KPrinter::Portrait : KPrinter::Landscape ); printer.setPageSize( (KPrinter::PageSize)KoPageFormat::printerPageSize( m_settings.pageLayout.format ) ); #endif printer.setFullPage(true); QString docName( titleText ); printer.setDocName( docName ); printer.setCreator(KEXI_APP_NAME); if ( !printer.setup( m_mainWin ) ) { return true; } // now we have final settings //! @todo get printer.pageOrder() (for reversed order requires improved engine) QPainter painter; if (!painter.begin(&printer)) { //! @todo msg return false; } engine.calculatePagesCount(painter); uint loops, loopsPerPage; QValueList<int> pagesToPrint; int fromPage = 0; #ifdef Q_WS_WIN int toPage = 0; if (QPrinter::PageRange == printer.printRange()) { fromPage = printer.fromPage(); toPage = printer.toPage(); } if (fromPage==0 || toPage==0) { fromPage = 0; toPage = (int)engine.pagesCount()-1; } else { fromPage--; if (toPage > (int)engine.pagesCount()) toPage = (int)engine.pagesCount(); toPage--; } // win32 only supports one range, build the list for (int i = fromPage; i<=toPage; i++) { pagesToPrint.append(i); } // on win32 the OS does perform buffering (only when collation is off, each copy needs to be repeated) loops = 1; loopsPerPage = printer.collateCopies() ? 1 : printer.numCopies(); #else // on !win32 print QPrinter::numCopies() times (the OS does not perform buffering) pagesToPrint = printer.pageList(); kdDebug() << pagesToPrint << endl; if (pagesToPrint.isEmpty()) { fromPage = 0; for (int i = 0; i<(int)engine.pagesCount(); i++) { pagesToPrint.append(i); } } else fromPage = pagesToPrint.first(); if (printer.collate()==KPrinter::Collate) { //collation: p1, p2,..pn; p1, p2,..pn; ......; p1, p2,..pn loops = printer.numCopies(); loopsPerPage = 1; } else { //no collation: p1, p1, ..., p1; p2, p2, ..., p2; ......; pn, pn,..pn loops = 1; loopsPerPage = printer.numCopies(); } //! @todo also look at printer.pageSet() option : all/odd/even pages #endif // now, total number of printed pages is printer.numCopies()*printer.pageList().count() kdDebug() << "printing..." << endl; bool firstPage = true; for (uint copy = 0;copy < loops; copy++) { kdDebug() << "copy " << (copy+1) << " of " << loops << endl; uint pageNumber = fromPage; QValueList<int>::ConstIterator pagesIt = pagesToPrint.constBegin(); for(;(int)pageNumber == fromPage || !engine.eof(); ++pageNumber) { kdDebug() << "printing..." << endl; if (pagesIt == pagesToPrint.constEnd()) //no more pages to print break; if ((int)pageNumber < *pagesIt) { //skip pages without printing (needed for computation) engine.paintPage(pageNumber, painter, false); continue; } if (*pagesIt < (int)pageNumber) { //sanity ++pagesIt; continue; } for (uint onePageCounter = 0; onePageCounter < loopsPerPage; onePageCounter++) { if (!firstPage) printer.newPage(); else firstPage = false; kdDebug() << "page #" << pageNumber << endl; engine.paintPage(pageNumber, painter); } ++pagesIt; } } kdDebug() << "end of printing." << endl; // stop painting, this will automatically send the print data to the printer if (!painter.end()) return false; if (!engine.done()) return false; return true; }
void TeamMembersDlg::slotEditMember() { QListViewItem *item =membersListView->currentItem(); if (!item) return; KDialogBase editDlg(this, "edit_member", true, i18n("Edit Member"), KDialogBase::Ok | KDialogBase::Cancel); MemberEditDlg memberDlg(&editDlg); memberDlg.selectMember(item->text(NAME_COL)); memberDlg.nicknameEdit->setText(item->text(NICKNAME_COL)); memberDlg.emailEdit->setText(item->text(EMAIL_COL)); QString role = item->text(ROLE_COL); for (int i = 0; i < memberDlg.roleCombo->count(); i++) { if (memberDlg.roleCombo->text(i) == role) { memberDlg.roleCombo->setCurrentItem(i); memberDlg.slotRoleSelected(role); break; } } memberDlg.taskEdit->setText(item->text(TASK_COL)); int idx = 0; int subprojectIdx = 0; QValueList<SubProject> *subprojects = Project::ref()->subprojects(); for (QValueList<SubProject>::ConstIterator it = subprojects->constBegin(); it != subprojects->constEnd(); ++it) { if (item->text(SUBPROJECT_COL) == (*it).name) { subprojectIdx = idx; break; } idx++; } memberDlg.subprojectCombo->setCurrentItem(subprojectIdx); editDlg.setMainWidget(&memberDlg); bool result; do { result = editDlg.exec(); if (result) { QString name = memberDlg.nameCombo->currentText(); QString nickName = memberDlg.nicknameEdit->text(); QString email = memberDlg.emailEdit->text(); QString role = memberDlg.roleCombo->currentText(); QString task = memberDlg.taskEdit->text(); QString subProject = memberDlg.subprojectCombo->currentText(); if (name.isEmpty()) { KMessageBox::error(this, i18n("The member name cannot be empty.")); editDlg.show(); } else if (nickName.isEmpty()) { KMessageBox::error(this, i18n("The nickname cannot be empty as it is used as a unique identifier.")); editDlg.show(); } else if (!checkDuplicates(item, name, nickName, email, role, task, subProject)) { editDlg.show(); } else { item->setText(NAME_COL, name); item->setText(NICKNAME_COL, nickName); item->setText(EMAIL_COL, email); item->setText(ROLE_COL, role); item->setText(TASK_COL, task); if (memberDlg.subprojectCombo->isEnabled()) item->setText(SUBPROJECT_COL, subProject); result = false; } } } while (result); }