|
Krita Source Code Documentation
|
The class managing all the filters. More...
#include <KisImportExportManager.h>
Inheritance diagram for KisImportExportManager:Classes | |
| struct | ConversionResult |
Public Types | |
| enum | Direction { Import = 1 , Export = 2 } |
Public Member Functions | |
| KisImportExportErrorCode | exportDocument (const QString &location, const QString &realLocation, const QByteArray &mimeType, bool showWarnings=true, KisPropertiesConfigurationSP exportConfiguration=0, bool isAdvancedExporting=false) |
| Exports the given file/document to the specified URL/mimetype. | |
| QFuture< KisImportExportErrorCode > | exportDocumentAsync (const QString &location, const QString &realLocation, const QByteArray &mimeType, KisImportExportErrorCode &status, bool showWarnings=true, KisPropertiesConfigurationSP exportConfiguration=0, bool isAdvancedExporting=false) |
| KisImportExportErrorCode | importDocument (const QString &location, const QString &mimeType) |
| KisImportExportManager (KisDocument *document) | |
| ~KisImportExportManager () override | |
Public Attributes | |
| QSharedPointer< KisImportExportFilter > | cachedExportFilter |
| QString | cachedExportFilterMimeType |
| KoUpdaterPtr | updater |
Static API | |
| KisDocument * | m_document |
| Private *const | d |
| static QStringList | m_importMimeTypes |
| A static cache for the availability checks of filters. | |
| static QStringList | m_exportMimeTypes |
| bool | batchMode (void) const |
| void | setUpdater (KoUpdaterPtr updater) |
| static QStringList | supportedMimeTypes (Direction direction) |
| static KisImportExportFilter * | filterForMimeType (const QString &mimetype, Direction direction) |
| filterForMimeType loads the relevant import/export plugin and returns it. The caller is responsible for deleting it! | |
| static void | fillStaticExportConfigurationProperties (KisPropertiesConfigurationSP exportConfiguration, KisImageSP image) |
| static QString | askForAudioFileName (const QString &defaultDir, QWidget *parent) |
| static QString | getUriForAdditionalFile (const QString &defaultUri, QWidget *parent) |
| ConversionResult | convert (Direction direction, const QString &location, const QString &realLocation, const QString &mimeType, bool showWarnings, KisPropertiesConfigurationSP exportConfiguration, bool isAsync, bool isAdvancedExporting=false) |
| void | fillStaticExportConfigurationProperties (KisPropertiesConfigurationSP exportConfiguration) |
| bool | askUserAboutExportConfiguration (QSharedPointer< KisImportExportFilter > filter, KisPropertiesConfigurationSP exportConfiguration, const QByteArray &from, const QByteArray &to, bool batchMode, const bool showWarnings, bool *alsoAsKra, bool isAdvancedExporting=false) |
| KisImportExportErrorCode | doImport (const QString &location, QSharedPointer< KisImportExportFilter > filter) |
| KisImportExportErrorCode | doExport (const QString &location, QSharedPointer< KisImportExportFilter > filter, KisPropertiesConfigurationSP exportConfiguration, const QString alsoAsKraLocation) |
| KisImportExportErrorCode | doExportImpl (const QString &location, QSharedPointer< KisImportExportFilter > filter, KisPropertiesConfigurationSP exportConfiguration) |
| QString | getAlsoAsKraLocation (const QString location) const |
| KisImportExportManager (const KisImportExportManager &rhs) | |
| KisImportExportManager & | operator= (const KisImportExportManager &rhs) |
Additional Inherited Members | |
Private Member Functions inherited from Private | |
| Private (KisCanvas2 *c) | |
Private Attributes inherited from Private | |
| KisCanvas2 * | canvas |
| int | displayedFrame |
| int | intendedFrame |
The class managing all the filters.
This class manages all filters for a Calligra application. Normally you will not have to use it, since KisMainWindow takes care of loading and saving documents.
Definition at line 95 of file KisImportExportManager.cpp.
This enum is used to distinguish the import/export cases
| Enumerator | |
|---|---|
| Import | |
| Export | |
Definition at line 45 of file KisImportExportManager.h.
|
explicit |
Create a filter manager for a document
Definition at line 147 of file KisImportExportManager.cpp.
|
override |
|
private |
|
static |
Definition at line 286 of file KisImportExportManager.cpp.
References KoFileDialog::ImportFiles.
|
private |
Definition at line 522 of file KisImportExportManager.cpp.
References KisDocument::assistants, batchMode(), KoDialog::Cancel, KisPreExportChecker::check(), KisConfigWidget::configuration(), KisPart::currentMainwindow(), KisMimeDatabase::descriptionForMimeType(), WdgImageSize::desiredHeight(), WdgImageSize::desiredResolution(), WdgImageSize::desiredWidth(), KisPreExportChecker::errors(), WdgImageSize::filterType(), KisImage::flatten(), KisLayerUtils::forceAllDelayedNodesUpdate(), KisDocument::gridConfig, KisDocument::guidesConfig, KisGuidesConfig::hasGuides(), KisImage::height(), KisDocument::image, KisPart::instance(), KisGridConfig::isDefault(), KIS_SAFE_ASSERT_RECOVER_NOOP, KisIconUtils::loadIcon(), m_document, KisDocument::nativeFormatMimeType(), KoDialog::Ok, KisLayerUtils::recursiveFindNode(), KisDocument::referenceImagesLayer(), KisNodeFacade::root, KisDocument::savingImage, KisImage::scaleImage(), KoDialog::setButtons(), KisConfigWidget::setConfiguration(), KoDialog::setMainWidget(), KisPopupButton::setPopupWidget(), KisConfigWidget::setView(), KoShapeContainer::shapeCount(), KisExportCheckBase::SUPPORTED, KisMainWindow::viewManager, KisImage::waitForDone(), KisPreExportChecker::warnings(), KisImage::width(), KisConfig::writeEntry(), and KisImage::yRes().
| bool KisImportExportManager::batchMode | ( | void | ) | const |
Get if the filter manager is batch mode (true) or in interactive mode (true)
Definition at line 276 of file KisImportExportManager.cpp.
References KisDocument::fileBatchMode(), and m_document.
|
private |
Fetching a filter from the registry is a really expensive operation, because it blocks all the threads. Cache the filter if possible.
Definition at line 319 of file KisImportExportManager.cpp.
References askUserAboutExportConfiguration(), batchMode(), ImportExportCodes::Cancelled, KoColorSpace::colorDepthId(), KoColorSpace::colorModelId(), KisImage::colorSpace(), KisPart::currentMainwindow(), d, doExport(), doImport(), Export, ImportExportCodes::FileFormatNotSupported, fillStaticExportConfigurationProperties(), filterForMimeType(), getAlsoAsKraLocation(), KisImage::height(), KisDocument::image, Import, KisPart::instance(), ImportExportCodes::InternalError, KisImportExportErrorCode::isOk(), KIS_ASSERT_RECOVER_RETURN_VALUE, KIS_SAFE_ASSERT_RECOVER, KIS_SAFE_ASSERT_RECOVER_NOOP, KisUsageLogger::log(), m_document, KisMimeDatabase::mimeTypeForFile(), KoID::name(), KoColorProfile::name, KisDocument::nativeFormatMimeType(), KisImage::nlayers(), ImportExportCodes::OK, KoColorSpace::profile(), KisConfig::setExportConfiguration(), KisImportExportManager::ConversionResult::setStatus(), KisImportExportManager::ConversionResult::status(), toQShared(), KisImage::width(), and KisImage::xRes().
|
private |
Definition at line 752 of file KisImportExportManager.cpp.
References doExportImpl(), Export, ImportExportCodes::FileFormatIncorrect, filterForMimeType(), KisImportExportErrorCode::isOk(), KIS_SAFE_ASSERT_RECOVER_NOOP, m_document, and KisDocument::nativeFormatMimeType().
|
private |
On Android Qt's AndroidContentFileEngine::open may be not very accurate with setting a proper error code when requesting file descriptor from JNI and getting a refusal. We should handle this condition gracefully.
Definition at line 794 of file KisImportExportManager.cpp.
References ImportExportCodes::ErrorWhileWriting, KisImportExportErrorCode::isOk(), m_document, KisDocument::setErrorMessage(), and target().
|
private |
Definition at line 732 of file KisImportExportManager.cpp.
References ImportExportCodes::FileNotExist, and m_document.
| KisImportExportErrorCode KisImportExportManager::exportDocument | ( | const QString & | location, |
| const QString & | realLocation, | ||
| const QByteArray & | mimeType, | ||
| bool | showWarnings = true, | ||
| KisPropertiesConfigurationSP | exportConfiguration = 0, | ||
| bool | isAdvancedExporting = false ) |
Exports the given file/document to the specified URL/mimetype.
If mimeType is empty, then the closest matching Calligra part is searched and when the method returns mimeType contains this mimetype. Oh, well, export is a C++ keyword ;)
Definition at line 166 of file KisImportExportManager.cpp.
References convert(), Export, ImportExportCodes::InternalError, KisImportExportManager::ConversionResult::isAsync(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, and KisImportExportManager::ConversionResult::status().
| QFuture< KisImportExportErrorCode > KisImportExportManager::exportDocumentAsync | ( | const QString & | location, |
| const QString & | realLocation, | ||
| const QByteArray & | mimeType, | ||
| KisImportExportErrorCode & | status, | ||
| bool | showWarnings = true, | ||
| KisPropertiesConfigurationSP | exportConfiguration = 0, | ||
| bool | isAdvancedExporting = false ) |
Definition at line 174 of file KisImportExportManager.cpp.
References convert(), Export, KisImportExportManager::ConversionResult::futureStatus(), KisImportExportManager::ConversionResult::isAsync(), KisImportExportErrorCode::isOk(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, and KisImportExportManager::ConversionResult::status().
|
private |
Definition at line 517 of file KisImportExportManager.cpp.
References fillStaticExportConfigurationProperties(), KisDocument::image, and m_document.
|
static |
Fill necessary information for the export filter into the properties, e.g. if the image has transparency or has sRGB profile.
Definition at line 483 of file KisImportExportManager.cpp.
References KisPainter::checkDeviceHasTransparency(), KisImportExportFilter::CICPPrimariesTag, KisImportExportFilter::CICPTransferCharacteristicsTag, KoColorSpace::colorDepthId(), KisImportExportFilter::ColorDepthIDTag, KoColorSpace::colorModelId(), KisImportExportFilter::ColorModelIDTag, KisPaintDevice::colorSpace(), KoColorProfile::getColorPrimaries(), KoColorProfile::getTransferCharacteristics(), KoColorSpace::hasHighDynamicRange(), KisImportExportFilter::HDRTag, KoID::id(), KisImportExportFilter::ImageContainsTransparencyTag, KoColorProfile::name, PRIMARIES_ADOBE_RGB_1998, PRIMARIES_UNSPECIFIED, KoColorSpace::profile(), KisImage::projection(), KisImportExportFilter::sRGBTag, TRC_GAMMA_1_8, and TRC_UNSPECIFIED.
|
static |
filterForMimeType loads the relevant import/export plugin and returns it. The caller is responsible for deleting it!
| mimetype | the mimetype we want to import/export. If there's more than one plugin, the one with the highest weight as defined in the json description will be taken |
| direction | import or export |
Definition at line 226 of file KisImportExportManager.cpp.
References KoJsonTrader::Plugin::errorString(), Export, KoJsonTrader::Plugin::fileName(), KoJsonTrader::instance(), KoJsonTrader::Plugin::instance(), KIS_ASSERT_RECOVER_NOOP, KoJsonTrader::Plugin::metaData(), KoJsonTrader::query(), KisImportExportFilter::setMimeType(), and warnUI.
|
private |
Definition at line 864 of file KisImportExportManager.cpp.
References getUriForAdditionalFile().
|
static |
Definition at line 307 of file KisImportExportManager.cpp.
References KIS_SAFE_ASSERT_RECOVER_NOOP, and KoFileDialog::SaveFile.
| KisImportExportErrorCode KisImportExportManager::importDocument | ( | const QString & | location, |
| const QString & | mimeType ) |
Imports the specified document and returns the resultant filename (most likely some file in /tmp). path can be either a URL or a filename. documentMimeType gives importDocument a hint about what type the document may be. It can be left empty.
Definition at line 158 of file KisImportExportManager.cpp.
References convert(), Import, ImportExportCodes::InternalError, KisImportExportManager::ConversionResult::isAsync(), KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, and KisImportExportManager::ConversionResult::status().
|
private |
| void KisImportExportManager::setUpdater | ( | KoUpdaterPtr | updater | ) |
Definition at line 281 of file KisImportExportManager.cpp.
|
static |
Suitable for passing to KoFileDialog::setMimeTypeFilters. The default mime gets set by the "users" of this method, as we do not have enough information here. Optionally, extraNativeMimeTypes are added after the native mimetype.
Definition at line 187 of file KisImportExportManager.cpp.
References Export, Import, KoJsonTrader::instance(), m_exportMimeTypes, m_importMimeTypes, KoJsonTrader::Plugin::metaData(), and KoJsonTrader::query().
| QSharedPointer<KisImportExportFilter> KisImportExportManager::cachedExportFilter |
Definition at line 101 of file KisImportExportManager.cpp.
| QString KisImportExportManager::cachedExportFilterMimeType |
Definition at line 100 of file KisImportExportManager.cpp.
|
private |
Definition at line 146 of file KisImportExportManager.h.
|
private |
Definition at line 139 of file KisImportExportManager.h.
|
staticprivate |
Definition at line 143 of file KisImportExportManager.h.
|
staticprivate |
A static cache for the availability checks of filters.
Definition at line 142 of file KisImportExportManager.h.
| KoUpdaterPtr KisImportExportManager::updater |
Definition at line 98 of file KisImportExportManager.cpp.