CControllerWizard::CControllerWizard(CQmlMainView* a_pMainView, QObject* a_pParent) : QObject(a_pParent) , m_pMainWizard(nullptr) { PRINT; if (a_pMainView) { m_pMainWizard = a_pMainView->findChild<CQmlWizardMainView*>("ON_wizardMainView"); if (!m_pMainWizard) { qFatal("Could not find wizard qml item"); qApp->exit(-1); } connect(m_pMainWizard, SIGNAL(signalFinished()), this, SIGNAL(signalFinished()), Qt::UniqueConnection); } }
void KTTSDLib::stop() { kdDebug(100200) << "***** KTTSDLib::stop(" << m_curJobNum << ")" << endl; m_talker->KTTSD_stopText(m_curJobNum); removeAllJobsFromList(); emit signalFinished(); }
void MetadataTask::run() { if(d->cancel) { return; } if (d->direction == MetadataSynchronizer::WriteFromDatabaseToFile) { MetadataHub fileHub; // read in from database fileHub.load(d->item); // write out to file DMetadata if(d->tagsOnly) { fileHub.writeTags(d->item.filePath()); } else { fileHub.write(d->item.filePath(), MetadataHub::WRITE_ALL, true); } } else // MetadataSynchronizer::ReadFromFileToDatabase { CollectionScanner scanner; scanner.scanFile(d->item, CollectionScanner::Rescan); } emit signalFinished(QImage()); emit signalDone(); }
void ImageQualityTask::run() { if (!d->cancel) { // Get item preview to perform quality analysis. No need to load whole image, this will be slower. // TODO : check if 1024 pixels size is enough to get suitable Quality results. DImg dimg = PreviewLoadThread::loadFastSynchronously(d->path, 1024); if (!dimg.isNull() && !d->cancel) { // TODO : run here Quality analysis backend and store Pick Label result to DB. // Backend Input : d->quality as Quality analysis settings, // dimg as reduced size image data to parse, // d->path as file path to patch DB properties. // Result : Backend must scan Quality of image depending of settings and compute a Quality estimation accordingly. // Finaly, using file path, DB Pick Label properties must be assigned through ImageInfo interface. // Warning : All code here will run in a separated thread and must be re-entrant/thread-safe. Only pure computation // must be processed. GUI calls are prohibited. ImageInfo and DImg can be used safety in thread. PickLabel pick; d->imgqsort = new ImgQSort(dimg, d->quality, &pick); d->imgqsort->startAnalyse(); ImageInfo info = ImageInfo::fromLocalFile(d->path); info.setPickLabel(pick); delete d->imgqsort; //delete image data after setting label d->imgqsort = 0; } // Dispatch progress to Progress Manager QImage qimg = dimg.smoothScale(22, 22, Qt::KeepAspectRatio).copyQImage(); emit signalFinished(qimg); emit signalDone(); } }
void KTTSDLib::slotTextFinished(const uint job) { kdDebug(100200) << "---- KTTSDLib::slotTextFinished(" << job << ")" << endl; // check if List is empty. If yes, send signalFinished(). if ( jobList.empty() ){ kdDebug(100200) << " All jobs processed." << endl; emit signalFinished(); } else { sayText(); } }
void Scenario::start(ScenarioApi &api) { d->m_thread = std::move(boost::thread([this, &api]() { // Initialize and enter the scenario coroutine d->m_coroutine = std::move(ScenarioCoroutinePull([this, &api](ScenarioCoroutinePush &ca) { d->m_coroutineCaller = &ca; run(api, d->m_options); d->m_coroutineCaller = nullptr; d->m_io.stop(); })); // Start ASIO event loop to allow forwarding of coroutine events d->m_io.run(); // Emit finished signal signalFinished(); })); }
QHttp1::QHttp1(QWidget *parent) : QWidget(parent) { ui.setupUi(this); QUrl url("http://119.29.5.61:8003/framework/api/SimulateInterface.asmx"); m_pHttp = new HttpOperator; QString content = QString("<?xml version=\"1.0\" encoding=\"utf-8\"?>" "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">" "<soap12:Body>" "<Login xmlns=\"http://tempuri.org/\">" "<loginname>%1</loginname>" "<password>%2</password>" "</Login>" "</soap12:Body>" "</soap12:Envelope>" ).arg("demo").arg("demo"); m_pHttp->post(url, content.toLocal8Bit().data()); connect(m_pHttp, SIGNAL(signalFinished()), this, SLOT(slotLoginResule())); }
void MaintenanceThread::generateThumbs(const QStringList& paths) { JobCollection* const collection = new JobCollection(); for(int i=0; i < paths.size(); i++) { ThumbsTask* const t = new ThumbsTask(); t->setItem(paths.at(i)); connect(t, SIGNAL(signalFinished(QImage)), this, SIGNAL(signalAdvance(QImage))); connect(this, SIGNAL(signalCanceled()), t, SLOT(slotCancel()), Qt::QueuedConnection); collection->addJob(t); } appendJob(collection); }
void MaintenanceThread::sortByImageQuality(const QStringList& paths, const ImageQualitySettings& quality) { JobCollection* const collection = new JobCollection(); for(int i=0; i < paths.size(); i++) { ImageQualityTask* const t = new ImageQualityTask(); t->setItem(paths.at(i), quality); connect(t, SIGNAL(signalFinished(QImage)), this, SIGNAL(signalAdvance(QImage))); connect(this, SIGNAL(signalCanceled()), t, SLOT(slotCancel()), Qt::QueuedConnection); collection->addJob(t); } appendJob(collection); }
void MaintenanceThread::syncMetadata(const ImageInfoList& items, MetadataSynchronizer::SyncDirection dir, bool tagsOnly) { JobCollection* const collection = new JobCollection(); for(int i=0; i < items.size(); i++) { MetadataTask* const t = new MetadataTask(); t->setTagsOnly(tagsOnly); t->setItem(items.at(i), dir); connect(t, SIGNAL(signalFinished(QImage)), this, SIGNAL(signalAdvance(QImage))); connect(this, SIGNAL(signalCanceled()), t, SLOT(slotCancel()), Qt::QueuedConnection); collection->addJob(t); } appendJob(collection); }
void SM_CreateFolderDialog::slotFinished(int result) { emit signalFinished(result); }
void QueueMgrWindow::setupConnections() { // -- Assigned tools list connections ----------------------------------- connect(d->assignedList, SIGNAL(signalToolSelected(BatchToolSet)), d->toolSettings, SLOT(slotToolSelected(BatchToolSet))); connect(d->assignedList, SIGNAL(signalAssignedToolsChanged(AssignedBatchTools)), d->queuePool, SLOT(slotAssignedToolsChanged(AssignedBatchTools))); connect(d->toolSettings, SIGNAL(signalSettingsChanged(BatchToolSet)), d->assignedList, SLOT(slotSettingsChanged(BatchToolSet))); connect(d->assignedList, SIGNAL(signalAssignedToolsChanged(AssignedBatchTools)), this, SLOT(slotAssignedToolsChanged(AssignedBatchTools))); connect(d->toolsView, SIGNAL(signalAssignTools(QMap<int,QString>)), d->assignedList, SLOT(slotAssignTools(QMap<int,QString>))); // -- Queued Items list connections ------------------------------------- connect(d->queuePool, SIGNAL(signalQueueSelected(int,QueueSettings,AssignedBatchTools)), d->queueSettingsView, SLOT(slotQueueSelected(int,QueueSettings,AssignedBatchTools))); connect(d->queuePool, SIGNAL(signalQueueSelected(int,QueueSettings,AssignedBatchTools)), d->assignedList, SLOT(slotQueueSelected(int,QueueSettings,AssignedBatchTools))); connect(d->queueSettingsView, SIGNAL(signalSettingsChanged(QueueSettings)), d->queuePool, SLOT(slotSettingsChanged(QueueSettings))); connect(d->queueSettingsView, SIGNAL(signalSettingsChanged(QueueSettings)), this, SLOT(slotQueueContentsChanged())); connect(d->queuePool, SIGNAL(signalQueueSelected(int,QueueSettings,AssignedBatchTools)), this, SLOT(slotQueueContentsChanged())); connect(d->queuePool, SIGNAL(signalQueuePoolChanged()), this, SLOT(slotQueueContentsChanged())); connect(d->queuePool, SIGNAL(signalQueueContentsChanged()), this, SLOT(slotQueueContentsChanged())); connect(d->queuePool, SIGNAL(signalItemSelectionChanged()), this, SLOT(slotItemSelectionChanged())); // -- Multithreaded interface connections ------------------------------- connect(d->thread, SIGNAL(signalStarting(Digikam::ActionData)), this, SLOT(slotAction(Digikam::ActionData))); connect(d->thread, SIGNAL(signalFinished(Digikam::ActionData)), this, SLOT(slotAction(Digikam::ActionData))); connect(d->thread, SIGNAL(signalQueueProcessed()), this, SLOT(slotQueueProcessed())); // -- GUI connections --------------------------------------------------- connect(d->toolsView, SIGNAL(signalHistoryEntryClicked(int,qlonglong)), this, SLOT(slotHistoryEntryClicked(int,qlonglong))); connect(d->toolsView, SIGNAL(signalAssignQueueSettings(QString)), this, SLOT(slotAssignQueueSettings(QString))); }
void CalPainter::paint(int month) { if (!device()) { return; } int width = device()->width(); int height = device()->height(); CalSettings* settings = CalSettings::instance(); CalParams& params = CalSettings::instance()->params; // -------------------------------------------------- // FIXME: magic number 42 int days[42]; int startDayOffset = KGlobal::locale()->weekStartDay(); for (int i = 0; i < 42; ++i) { days[i] = -1; } QDate d; KGlobal::locale()->calendar()->setDate(d, params.year, month, 1); int s = d.dayOfWeek(); if (s + 7 - startDayOffset >= 7) { s = s - 7; } for (int i = s; i < (s + KGlobal::locale()->calendar()->daysInMonth(d)); ++i) { days[i + (7 - startDayOffset)] = i - s + 1; } // ----------------------------------------------- QRect rCal(0, 0, 0, 0); QRect rImage(0, 0, 0, 0); QRect rCalHeader(0, 0, 0, 0); int cellSizeX; int cellSizeY; switch (params.imgPos) { case (CalParams::Top): { rImage.setWidth(width); rImage.setHeight((int)(height * params.ratio / (params.ratio + 100))); int remainingHeight = height - rImage.height(); cellSizeX = (width - 20) / 7; cellSizeY = remainingHeight / 8; rCal.setWidth(cellSizeX * 7); rCal.setHeight(cellSizeY * 7); rCalHeader.setWidth(rCal.width()); rCalHeader.setHeight(cellSizeY); rCalHeader.moveTop(rImage.bottom()); rCalHeader.moveLeft(width / 2 - rCalHeader.width() / 2); rCal.moveTopLeft(rCalHeader.bottomLeft()); break; } case (CalParams::Left): { rImage.setHeight(height); rImage.setWidth((int)(width * params.ratio / (params.ratio + 100))); int remainingWidth = width - rImage.width(); cellSizeX = (remainingWidth - 20) / 8; cellSizeY = height / 8; rCal.setWidth(cellSizeX * 7); rCal.setHeight(cellSizeY * 7); rCalHeader.setWidth(rCal.width()); rCalHeader.setHeight(cellSizeY); rCalHeader.moveLeft(rImage.right() + cellSizeX); rCal.moveTopLeft(rCalHeader.bottomLeft()); break; } case (CalParams::Right): { rImage.setHeight(height); rImage.setWidth((int)(width * params.ratio / (params.ratio + 100))); int remainingWidth = width - rImage.width(); cellSizeX = (remainingWidth - 20) / 8; cellSizeY = height / 8; rCal.setWidth(cellSizeX * 7); rCal.setHeight(cellSizeY * 7); rCalHeader.setWidth(rCal.width()); rCalHeader.setHeight(cellSizeY); rCal.moveTop(rCalHeader.bottom()); rImage.moveLeft(width - rImage.width()); break; } default: return; } int fontPixels = cellSizeX / 3; params.baseFont.setPixelSize(fontPixels); // --------------------------------------------------------------- fillRect(0, 0, width, height, Qt::white); setFont(params.baseFont); // --------------------------------------------------------------- save(); QFont f(params.baseFont); f.setBold(true); f.setPixelSize(f.pixelSize() + 5); setFont(f); drawText(rCalHeader, Qt::AlignLeft | Qt::AlignVCenter, QString::number(params.year)); drawText(rCalHeader, Qt::AlignRight | Qt::AlignVCenter, KGlobal::locale()->calendar()->monthName(month, params.year)); restore(); // --------------------------------------------------------------- int sx, sy; QRect r, rsmall, rSpecial; r.setWidth(cellSizeX); r.setHeight(cellSizeY); int index = 0; save(); setPen(Qt::red); sy = rCal.top(); for (int i = 0; i < 7; ++i) { int dayname = i + startDayOffset; if (dayname > 7) { dayname = dayname - 7; } sx = cellSizeX * i + rCal.left(); r.moveTopLeft(QPoint(sx, sy)); rsmall = r; rsmall.setWidth(r.width() - 2); rsmall.setHeight(r.height() - 2); drawText(rsmall, Qt::AlignRight | Qt::AlignBottom, KGlobal::locale()->calendar()->weekDayName(dayname, KCalendarSystem::ShortDayName)); } restore(); for (int j = 0; j < 6; ++j) { sy = cellSizeY * (j + 1) + rCal.top(); for (int i = 0; i < 7; ++i) { sx = cellSizeX * i + rCal.left(); r.moveTopLeft(QPoint(sx, sy)); rsmall = r; rsmall.setWidth(r.width() - 2); rsmall.setHeight(r.height() - 2); if (days[index] != -1) { if (settings->isSpecial(month, days[index])) { save(); setPen(settings->getDayColor(month, days[index])); drawText(rsmall, Qt::AlignRight | Qt::AlignBottom, QString::number(days[index])); QString descr = settings->getDayDescr(month, days[index]); kDebug() << "Painting special info: '" << descr << "' for date " << days[index] << "/" << month; rSpecial = rsmall; rSpecial.translate(2, 0); QFont f(params.baseFont); f.setPixelSize(f.pixelSize() / 3); setFont(f); drawText(rSpecial, Qt::AlignLeft | Qt::AlignTop, descr); restore(); } else { drawText(rsmall, Qt::AlignRight | Qt::AlignBottom, QString::number(days[index])); } } index++; } } // --------------------------------------------------------------- if (params.drawLines) { sx = rCal.left(); for (int j = 0; j < 8; ++j) { sy = cellSizeY * j + rCal.top(); drawLine(sx, sy, rCal.right(), sy); } sy = rCal.top(); for (int i = 0; i < 8; ++i) { sx = cellSizeX * i + rCal.left(); drawLine(sx, sy, sx, rCal.bottom()); } } // Check if RAW file. QFileInfo fi(imagePath_.path()); QString rawFilesExt(KDcrawIface::KDcraw::rawFiles()); if (rawFilesExt.toUpper().contains(fi.suffix().toUpper())) { KDcrawIface::KDcraw::loadDcrawPreview(image_, imagePath_.path()); } else { image_.load(imagePath_.path()); } if (image_.isNull()) { fillRect(rImage, Qt::blue); } else { if ( orientation_ != KPMetadata::ORIENTATION_UNSPECIFIED ) { QMatrix matrix = RotationMatrix::toMatrix(orientation_); image_ = image_.transformed( matrix ); } emit signalProgress(0); image_ = image_.scaled(rImage.width(), rImage.height(), Qt::KeepAspectRatio, Qt::SmoothTransformation); emit signalTotal(image_.height()); int h = image_.height(); int x = rImage.bottomLeft().x() + (rImage.width() - image_.width()) / 2; int y = (rImage.height() - h) / 2; int blockSize = 10; int block = 0; while (block < h && !cancelled_) { if (block + blockSize > h) { blockSize = h - block; } drawImage(x, y + block, image_, 0, block, image_.width(), blockSize); block += blockSize; emit signalProgress(block); } emit signalFinished(); } }