void ImageTokenizer::finish() { if (!m_parserStopped && m_doc->imageElement()) { CachedImage* cachedImage = m_doc->cachedImage(); RefPtr<SharedBuffer> data = m_doc->frame()->loader()->documentLoader()->mainResourceData(); // If this is a multipart image, make a copy of the current part, since the resource data // will be overwritten by the next part. if (m_doc->frame()->loader()->documentLoader()->isLoadingMultipartContent()) data = data->copy(); cachedImage->data(data.release(), true); cachedImage->finish(); cachedImage->setResponse(m_doc->frame()->loader()->documentLoader()->response()); IntSize size = cachedImage->imageSize(pageZoomFactor(m_doc)); if (size.width()) { // Compute the title, we use the decoded filename of the resource, falling // back on the (decoded) hostname if there is no path. String fileName = decodeURLEscapeSequences(m_doc->url().lastPathComponent()); if (fileName.isEmpty()) fileName = m_doc->url().host(); m_doc->setTitle(imageTitle(fileName, size)); } m_doc->imageChanged(); } m_doc->finishedParsing(); }
void ImageEventListener::handleEvent(ScriptExecutionContext*, Event* event) { if (event->type() == eventNames().resizeEvent) m_doc->windowSizeChanged(); else if (event->type() == eventNames().clickEvent) { MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); m_doc->imageClicked(mouseEvent->x(), mouseEvent->y()); } }
bool ImageTokenizer::writeRawData(const char* data, int len) { CachedImage* cachedImage = m_doc->cachedImage(); cachedImage->data(m_doc->frame()->loader()->documentLoader()->mainResourceData(), false); m_doc->imageChanged(); return false; }
void ImageEventListener::handleEvent(Event* event, bool isWindowEvent) { if (event->type() == eventNames().resizeEvent) m_doc->windowSizeChanged(); else if (event->type() == eventNames().clickEvent) { MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); m_doc->imageClicked(mouseEvent->x(), mouseEvent->y()); } }
void ImageEventListener::handleEvent(ExecutionContext*, Event* event) { if (event->type() == EventTypeNames::resize) { m_doc->windowSizeChanged(ImageDocument::ScaleOnlyUnzoomedDocument); } else if (event->type() == EventTypeNames::click && event->isMouseEvent()) { MouseEvent* mouseEvent = toMouseEvent(event); m_doc->imageClicked(mouseEvent->x(), mouseEvent->y()); } }
void ImageTokenizer::finish() { if (!m_parserStopped && m_doc->imageElement()) { CachedImage* cachedImage = m_doc->cachedImage(); RefPtr<SharedBuffer> data = m_doc->frame()->loader()->documentLoader()->mainResourceData(); // If this is a multipart image, make a copy of the current part, since the resource data // will be overwritten by the next part. if (m_doc->frame()->loader()->documentLoader()->isLoadingMultipartContent()) data = data->copy(); cachedImage->data(data.release(), true); cachedImage->finish(); cachedImage->setResponse(m_doc->frame()->loader()->documentLoader()->response()); IntSize size = cachedImage->imageSize(m_doc->frame()->pageZoomFactor()); if (size.width()) m_doc->setTitle(imageTitle(cachedImage->response().suggestedFilename(), size)); m_doc->imageChanged(); } m_doc->finishedParsing(); }
bool ImageTokenizer::writeRawData(const char*, int) { Frame* frame = m_doc->frame(); Settings* settings = frame->settings(); if (!frame->loader()->client()->allowImages(!settings || settings->areImagesEnabled())) return false; CachedImage* cachedImage = m_doc->cachedImage(); cachedImage->data(frame->loader()->documentLoader()->mainResourceData(), false); m_doc->imageChanged(); return false; }
void ImageDocumentElement::willMoveToNewOwnerDocument() { if (m_imageDocument) { m_imageDocument->disconnectImageElement(); m_imageDocument = 0; } HTMLImageElement::willMoveToNewOwnerDocument(); }
void ImageDocumentElement::didMoveToNewDocument(Document* oldDocument) { if (m_imageDocument) { m_imageDocument->disconnectImageElement(); m_imageDocument = nullptr; } HTMLImageElement::didMoveToNewDocument(oldDocument); }
//----------------------------------------------------------------------------- int ModeConvertImage::process() { // check input and template files exists if (QFile::exists(this->mInputFilename)) { // check dodocument name QString docNameWS = this->mDocumentName; docNameWS.remove(QRegExp("\\s")); if (!docNameWS.isEmpty()) { // check preset exists if (Preset::presetsList().contains(this->mPresetName)) { Preset::setSelectedName(this->mPresetName); // load image from input file QImage imageLoaded; if (imageLoaded.load(this->mInputFilename)) { QImage imageConverted = imageLoaded.convertToFormat(QImage::Format_ARGB32); ImageDocument imageDocument; QStringList keys = imageDocument.dataContainer()->keys(); // process all keys (1 in image document) QStringListIterator iterator(keys); while (iterator.hasNext()) { QString key = iterator.next(); imageDocument.dataContainer()->setImage(key, &imageConverted); imageDocument.setDocumentName(docNameWS); imageDocument.dataContainer()->setInfo("converted filename", QVariant(this->mOuputFilename)); // save to output file QFile file(this->mOuputFilename); if (file.open(QFile::WriteOnly)) { Preset preset; preset.load(this->mPresetName); // optional template file if(!this->mTemplateFilename.isEmpty() && QFile::exists(this->mTemplateFilename)) { preset.templates()->setImage(this->mTemplateFilename); } QString result = imageDocument.convert(&preset); file.write(result.toUtf8()); file.close(); if (imageDocument.outputFilename() != this->mOuputFilename) { imageDocument.setOutputFilename(this->mOuputFilename); } } } return 0; } } } } return 1; }