void dataBase::fillFromJson(const QString &path) { QProgressBar bar; bar.show(); QFile file(path); if(!file.open(QFile::ReadOnly)) { throw std::runtime_error(("No file "+ path).toStdString()); } bool ok = false; QVariantMap map = QtJson::parse(QString::fromUtf8(file.readAll().data()), ok).toMap(); if(!ok) { throw std::runtime_error(("Cant parse "+ path).toStdString()); } for(QVariantMap::const_iterator it = map.begin(); it != map.end(); ++it) { QList<QVariant> list = it.value().toList(); for(QList<QVariant>::const_iterator list_it = list.begin(); list_it != list.end(); ++list_it) { bar.setValue(bar.value() >= bar.maximum() ? 0 : bar.value()+1); qApp->processEvents(); QList<QVariant> values = list_it->toList(); QString q_text = QString("INSERT INTO %1 ( coeff, hrn ) VALUES ( '%2', '%3' )") .arg(it.key()) .arg(values.at(0).toString()) .arg(values.at(1).toString()); query(q_text); } } QList<QVariant> regions = map["regions"].toList(); for(QList<QVariant>::const_iterator it = regions.begin(); it!= regions.end(); ++it ) { QList<QVariant> towns = it->toList().at(2).toList(); for(QList<QVariant>::const_iterator town_it = towns.begin(); town_it != towns.end(); ++town_it ) { bar.setValue(bar.value() >= bar.maximum() ? 0 : bar.value()+1); qApp->processEvents(); QList<QVariant> town_desc = town_it->toList(); QString q_text = QString("INSERT INTO towns VALUES ( %1, '%2', %3, %4, %5)") .arg(town_desc.at(0).toInt()) .arg(town_desc.at(1).toString()) .arg(town_desc.at(2).toString()) .arg(town_desc.at(3).toString()) .arg(it->toList().at(0).toInt()); query(q_text); } } bar.close(); }
void inc_progress_bar(int, int, void *p) { QProgressBar *bar = (QProgressBar *)p; int value = bar->value(); if (value == bar->maximum()) { bar->reset(); } else { bar->setValue(value +1); } }
/*! Sets the current value to \a value. \bold {Note:} Calling this slot by hand has no effect. Connect this slot to QProgressBar::valueChange(). */ void QxtProgressLabel::setValue(int value) { QProgressBar* bar = qobject_cast<QProgressBar*>(sender()); if (bar) { if (!qxt_d().start.isValid()) restart(); qxt_d().cachedMin = bar->minimum(); qxt_d().cachedMax = bar->maximum(); qxt_d().cachedVal = value; refresh(); } }
void XXPortManager::slotImportJobDone( KJob * ) { if ( !mImportProgressDialog ) { return; } QProgressBar *progressBar = mImportProgressDialog->progressBar(); progressBar->setValue( progressBar->value() + 1 ); // cleanup on last step if ( progressBar->value() == progressBar->maximum() ) { mImportProgressDialog->deleteLater(); mImportProgressDialog = 0; } }
void TelechargerFichier::annulerTelechargement() { QPushButton *bouton; bouton = qobject_cast<QPushButton *>(sender()); bouton->setDisabled(true); QString toolTip = bouton->toolTip(); toolTip = toolTip.replace(QRegExp("Téléchargement n°(.+)"), "\\1"); int ligne = toolTip.toInt() - 1; QNetworkReply *reponse = reponses.value(ligne); reponse->abort(); QProgressBar *progression = progressionsTelechargements.value(ligne); progression->setValue(progression->maximum()); listeTelechargements->item(ligne, 3)->setText("Annulé"); }
void PinDialog::init( PinFlags flags, const QString &title, TokenData::TokenFlags token ) { setMinimumWidth( 350 ); setWindowModality( Qt::ApplicationModal ); QLabel *label = new QLabel( this ); QVBoxLayout *l = new QVBoxLayout( this ); l->addWidget( label ); QString _title = title; QString text; if( token & TokenData::PinFinalTry ) text += "<font color='red'><b>" + tr("PIN will be locked next failed attempt") + "</b></font><br />"; else if( token & TokenData::PinCountLow ) text += "<font color='red'><b>" + tr("PIN has been entered incorrectly one time") + "</b></font><br />"; text += QString( "<b>%1</b><br />" ).arg( title ); if( flags & Pin2Type ) { _title = tr("Signing") + " - " + title; text += tr("Selected action requires sign certificate.") + "<br />" + (flags & PinpadFlag ? tr("For using sign certificate enter PIN2 with pinpad") : tr("For using sign certificate enter PIN2") ); regexp.setPattern( "\\d{5,12}" ); } else { _title = tr("Authendicating") + " - " + title; text += tr("Selected action requires auth certificate.") + "<br />" + (flags & PinpadFlag ? tr("For using auth certificate enter PIN1 with pinpad") : tr("For using auth certificate enter PIN1") ); regexp.setPattern( "\\d{4,12}" ); } setWindowTitle( _title ); label->setText( text ); if( flags & PinpadFlag ) { setWindowFlags( (windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowCloseButtonHint ); QProgressBar *progress = new QProgressBar( this ); progress->setRange( 0, 30 ); progress->setValue( progress->maximum() ); progress->setTextVisible( false ); l->addWidget( progress ); QTimeLine *statusTimer = new QTimeLine( progress->maximum() * 1000, this ); statusTimer->setCurveShape( QTimeLine::LinearCurve ); statusTimer->setFrameRange( progress->maximum(), progress->minimum() ); connect( statusTimer, SIGNAL(frameChanged(int)), progress, SLOT(setValue(int)) ); connect( this, SIGNAL(startTimer()), statusTimer, SLOT(start()) ); } else { m_text = new QLineEdit( this ); m_text->setEchoMode( QLineEdit::Password ); m_text->setFocus(); m_text->setValidator( new QRegExpValidator( regexp, m_text ) ); connect( m_text, SIGNAL(textEdited(QString)), SLOT(textEdited(QString)) ); l->addWidget( m_text ); QDialogButtonBox *buttons = new QDialogButtonBox( QDialogButtonBox::Ok|QDialogButtonBox::Cancel, Qt::Horizontal, this ); ok = buttons->button( QDialogButtonBox::Ok ); ok->setAutoDefault( true ); connect( buttons, SIGNAL(accepted()), SLOT(accept()) ); connect( buttons, SIGNAL(rejected()), SLOT(reject()) ); l->addWidget( buttons ); textEdited( QString() ); } }
void Progress::timerEvent(QTimerEvent * event) { if (event->timerId() != timer.timerId() || noAnimations()) return; //Update the registered progressbars. Items::iterator iter; QProgressBar *pb; bool mkProper = false; animationUpdate = true; for (iter = items.begin(); iter != items.end(); iter++) { QWidget *w = const_cast<QWidget*>(iter.key().data()); if (!w) // not a progressbar - shouldn't be in items, btw... { mkProper = true; continue; } pb = qobject_cast<QProgressBar*>(w); if (!pb) continue; // not a progressbar - shouldn't be in items, btw... if (pb->maximum() != 0 || pb->minimum() != 0 || pb->paintingActive() || !pb->isVisible()) { pb->setAttribute(Qt::WA_OpaquePaintEvent, false); continue; // no paint necessary } pb->setAttribute(Qt::WA_OpaquePaintEvent); ++iter.value(); // dump pb geometry int x,y,l,t, *step = &iter.value()._step; if ( pb->orientation() == Qt::Vertical ) // swapped values pb->rect().getRect(&y,&x,&t,&l); else pb->rect().getRect(&x,&y,&l,&t); if (*step > l/_speed) *step = l/36-(int)(l/_speed); else if (*step == -1) *step = l/36-1; int s = qMin(qMax(l / 10, 16), qMin(t, 20)); int ss = (3*s)/4; int n = l/s; if ( pb->orientation() == Qt::Vertical) { x = pb->rect().bottom(); x -= (l - n*s)/2 + ss; /*s = -s;*/ } else { x += (l - n*s)/2; /*s = qAbs(s);*/ } x += qMax((int)(_speed*qAbs(*step)*n*s/l) - s, 0); if ( pb->orientation() == Qt::Vertical ) pb->repaint(y,x-s,s,3*s); else pb->repaint(x-s,y,3*s,s); } animationUpdate = false; if (mkProper) _release(NULL); }
void Archive::save(Basket *basket, bool withSubBaskets, const QString &destination) { QDir dir; KProgressDialog dialog(0, i18n("Save as Basket Archive"), i18n("Saving as basket archive. Please wait..."), /*Not modal, for password dialogs!*/false); dialog.showCancelButton(false); dialog.setAutoClose(true); dialog.show(); QProgressBar *progress = dialog.progressBar(); progress->setRange(0,/*Preparation:*/1 + /*Finishing:*/1 + /*Basket:*/1 + /*SubBaskets:*/(withSubBaskets ? Global::bnpView->basketCount(Global::bnpView->listViewItemForBasket(basket)) : 0)); progress->setValue(0); // Create the temporary folder: QString tempFolder = Global::savesFolder() + "temp-archive/"; dir.mkdir(tempFolder); // Create the temporary archive file: QString tempDestination = tempFolder + "temp-archive.tar.gz"; KTar tar(tempDestination, "application/x-gzip"); tar.open(QIODevice::WriteOnly); tar.writeDir("baskets", "", ""); progress->setValue(progress->value()+1); // Preparation finished kDebug() << "Preparation finished out of " << progress->maximum(); // Copy the baskets data into the archive: QStringList backgrounds; Archive::saveBasketToArchive(basket, withSubBaskets, &tar, backgrounds, tempFolder, progress); // Create a Small baskets.xml Document: QDomDocument document("basketTree"); QDomElement root = document.createElement("basketTree"); document.appendChild(root); Global::bnpView->saveSubHierarchy(Global::bnpView->listViewItemForBasket(basket), document, root, withSubBaskets); Basket::safelySaveToFile(tempFolder + "baskets.xml", "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + document.toString()); tar.addLocalFile(tempFolder + "baskets.xml", "baskets/baskets.xml"); dir.remove(tempFolder + "baskets.xml"); // Save a Small tags.xml Document: QList<Tag*> tags; listUsedTags(basket, withSubBaskets, tags); Tag::saveTagsTo(tags, tempFolder + "tags.xml"); tar.addLocalFile(tempFolder + "tags.xml", "tags.xml"); dir.remove(tempFolder + "tags.xml"); // Save Tag Emblems (in case they are loaded on a computer that do not have those icons): QString tempIconFile = tempFolder + "icon.png"; for (Tag::List::iterator it = tags.begin(); it != tags.end(); ++it) { State::List states = (*it)->states(); for (State::List::iterator it2 = states.begin(); it2 != states.end(); ++it2) { State *state = (*it2); QPixmap icon = KIconLoader::global()->loadIcon( state->emblem(), KIconLoader::Small, 16, KIconLoader::DefaultState, QStringList(), 0L, true ); if (!icon.isNull()) { icon.save(tempIconFile, "PNG"); QString iconFileName = state->emblem().replace('/', '_'); tar.addLocalFile(tempIconFile, "tag-emblems/" + iconFileName); } } } dir.remove(tempIconFile); // Finish Tar.Gz Exportation: tar.close(); // Computing the File Preview: Basket *previewBasket = basket; // FIXME: Use the first non-empty basket! QPixmap previewPixmap(previewBasket->visibleWidth(), previewBasket->visibleHeight()); QPainter painter(&previewPixmap); // Save old state, and make the look clean ("smile, you are filmed!"): NoteSelection *selection = previewBasket->selectedNotes(); previewBasket->unselectAll(); Note *focusedNote = previewBasket->focusedNote(); previewBasket->setFocusedNote(0); previewBasket->doHoverEffects(0, Note::None); // Take the screenshot: previewBasket->drawContents(&painter, 0, 0, previewPixmap.width(), previewPixmap.height()); // Go back to the old look: previewBasket->selectSelection(selection); previewBasket->setFocusedNote(focusedNote); previewBasket->doHoverEffects(); // End and save our splandid painting: painter.end(); QImage previewImage = previewPixmap.toImage(); const int PREVIEW_SIZE = 256; previewImage = previewImage.scaled(PREVIEW_SIZE, PREVIEW_SIZE, Qt::KeepAspectRatio); previewImage.save(tempFolder + "preview.png", "PNG"); // Finaly Save to the Real Destination file: QFile file(destination); if (file.open(QIODevice::WriteOnly)) { ulong previewSize = QFile(tempFolder + "preview.png").size(); ulong archiveSize = QFile(tempDestination).size(); QTextStream stream(&file); stream.setCodec("ISO-8859-1"); stream << "BasKetNP:archive\n" << "version:0.6.1\n" // << "read-compatible:0.6.1\n" // << "write-compatible:0.6.1\n" << "preview*:" << previewSize << "\n"; stream.flush(); // Copy the Preview File: const unsigned long BUFFER_SIZE = 1024; char *buffer = new char[BUFFER_SIZE]; long sizeRead; QFile previewFile(tempFolder + "preview.png"); if (previewFile.open(QIODevice::ReadOnly)) { while ((sizeRead = previewFile.read(buffer, BUFFER_SIZE)) > 0) file.write(buffer, sizeRead); } stream << "archive*:" << archiveSize << "\n"; stream.flush(); // Copy the Archive File: QFile archiveFile(tempDestination); if (archiveFile.open(QIODevice::ReadOnly)) { while ((sizeRead = archiveFile.read(buffer, BUFFER_SIZE)) > 0) file.write(buffer, sizeRead); } // Clean Up: delete buffer; buffer = 0; file.close(); } progress->setValue(progress->value()+1); // Finishing finished kDebug() << "Finishing finished"; // Clean Up Everything: dir.remove(tempFolder + "preview.png"); dir.remove(tempDestination); dir.rmdir(tempFolder); }