Exemple #1
0
void DBusyDlg::setBusyThread(DBusyThread* const thread)
{
    d->thread = thread;

    if (d->thread)
    {
        connect(d->thread, SIGNAL(signalComplete()),
                this, SLOT(slotComplete()));

        qCDebug(DIGIKAM_GENERAL_LOG) << "Thread is started";
        d->thread->start();
    }
}
Exemple #2
0
void MaintenanceTool::slotDone()
{
    QTime t = QTime::fromMSecsSinceStartOfDay(d->duration.elapsed());

    if (d->notification)
    {
        // Pop-up a message to bring user when all is done.
        DNotificationWrapper(id(),
                             i18n("Process is done.\nDuration: %1", t.toString()),
                             qApp->activeWindow(), label());
    }

    emit signalComplete();

    setComplete();
}
void SaveImgThread::run()
{
    // Perform saving ---------------------------------------------------------------

    QImage prev     = d->img.scaled(1280, 1024, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    QImage thumb    = d->img.scaled(160, 120,   Qt::KeepAspectRatio, Qt::SmoothTransformation);
    QByteArray prof = KPWriteImage::getICCProfilFromFile(RawDecodingSettings::SRGB);

    KPMetadata meta;
    meta.setImageProgramId(QString("Kipi-plugins"), QString(kipiplugins_version));
    meta.setImageDimensions(d->img.size());

    if (d->format != QString("JPEG"))
        meta.setImagePreview(prev);

    meta.setExifThumbnail(thumb);
    meta.setExifTagString("Exif.Image.DocumentName", QString("Scanned Image")); // not i18n
    meta.setExifTagString("Exif.Image.Make",  d->make);
    meta.setXmpTagString("Xmp.tiff.Make",     d->make);
    meta.setExifTagString("Exif.Image.Model", d->model);
    meta.setXmpTagString("Xmp.tiff.Model",    d->model);
    meta.setImageDateTime(QDateTime::currentDateTime());
    meta.setImageOrientation(KPMetadata::ORIENTATION_NORMAL);
    meta.setImageColorWorkSpace(KPMetadata::WORKSPACE_SRGB);

    KPWriteImage wImageIface;

    if (d->frmt != KSaneIface::KSaneWidget::FormatRGB_16_C)
    {
        QByteArray data((const char*)d->img.bits(), d->img.numBytes());
        wImageIface.setImageData(data, d->img.width(), d->img.height(), false, true, prof, meta);
    }
    else
    {
        // 16 bits color depth image.
        wImageIface.setImageData(d->ksaneData, d->width, d->height, true, false, prof, meta);
    }

    bool    ret = false;
    QString path;

    if(d->newUrl.isLocalFile())
        path = d->newUrl.toLocalFile();
    else
        path = d->newUrl.path();

    if (d->format == QString("JPEG"))
    {
        ret = wImageIface.write2JPEG(path);
    }
    else if (d->format == QString("PNG"))
    {
        ret = wImageIface.write2PNG(path);
    }
    else if (d->format == QString("TIFF"))
    {
        ret = wImageIface.write2TIFF(path);
    }
    else
    {
        ret = d->img.save(path, d->format.toAscii().data());
    }

    emit signalComplete(d->newUrl, ret);
}
Exemple #4
0
void BatchSyncMetadata::complete()
{
    emit signalProgressBarMode(StatusProgressBar::TextMode, QString());
    emit signalComplete();
}
Exemple #5
0
void SaveImgThread::run()
{
    emit signalProgress(d->newUrl, 10);

    bool sixteenBit = (d->frmt == KSaneWidget::FormatRGB_16_C);
    DImg img((uint)d->width, (uint)d->height, sixteenBit, false);
    int progress;

    if (!sixteenBit)
    {
        uchar* src = (uchar*)d->ksaneData.data();
        uchar* dst = img.bits();

        for (int w = 0; w < d->width; ++w)
        {
            dst[0]  = src[2];    // Blue
            dst[1]  = src[1];    // Green
            dst[2]  = src[0];    // Red
            dst[3]  = 0x00;      // Alpha

            dst    += 4;
            src    += 3;

            progress = 10 + (int)(((double)w * 50.0) / d->width);

            if (progress % 5 == 0)
            {
                emit signalProgress(d->newUrl, progress);
            }
        }
    }
    else
    {
        unsigned short* src = (unsigned short*)d->ksaneData.data();
        unsigned short* dst = (unsigned short*)img.bits();

        for (int w = 0; w < d->width; ++w)
        {
            dst[0]  = src[2];    // Blue
            dst[1]  = src[1];    // Green
            dst[2]  = src[0];    // Red
            dst[3]  = 0x0000;    // Alpha

            dst    += 4;
            src    += 3;

            progress = 10 + (int)(((double)w * 50.0) / d->width);

            if (progress % 5 == 0)
            {
               emit signalProgress(d->newUrl, progress);
            }
        }
    }

    emit signalProgress(d->newUrl, 60);

    bool success = img.save(d->newUrl.toLocalFile(), d->format);

    emit signalProgress(d->newUrl, 80);

    if (!success)
    {
        emit signalComplete(d->newUrl, success);
        return;
    }
 
    DMetadata meta(d->newUrl.toLocalFile());
    meta.setExifTagString("Exif.Image.DocumentName", QLatin1String("Scanned Image")); // not i18n
    meta.setExifTagString("Exif.Image.Make",  d->make);
    meta.setXmpTagString("Xmp.tiff.Make",     d->make);
    meta.setExifTagString("Exif.Image.Model", d->model);
    meta.setXmpTagString("Xmp.tiff.Model",    d->model);
    meta.setImageOrientation(DMetadata::ORIENTATION_NORMAL);
    meta.setImageColorWorkSpace(DMetadata::WORKSPACE_SRGB);

    emit signalProgress(d->newUrl, 90);

    meta.applyChanges();

    emit signalProgress(d->newUrl, 100);
    emit signalComplete(d->newUrl, success);
}