diff --git a/components/Global.cpp b/components/Global.cpp --- a/components/Global.cpp +++ b/components/Global.cpp @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -52,10 +53,11 @@ int Global::documentType(const QUrl& document) { int result = DocumentType::Unknown; + const QUrlQuery query(document); // First, check if the URL gives us specific information on this topic (such as asking for a new file) - if(document.hasQueryItem("mimetype")) { - QString mime = document.queryItemValue("mimetype"); + if(query.hasQueryItem("mimetype")) { + QString mime = query.queryItemValue("mimetype"); if(mime == WORDS_MIME_TYPE) { result = DocumentType::TextDocument; } diff --git a/components/impl/TextDocumentImpl.cpp b/components/impl/TextDocumentImpl.cpp --- a/components/impl/TextDocumentImpl.cpp +++ b/components/impl/TextDocumentImpl.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include "ComponentsKoCanvasController.h" #include @@ -189,35 +190,37 @@ bool retval = false; if (url.scheme() == QStringLiteral("newfile")) { + QUrlQuery query(url); + d->document->initEmpty(); KWPageStyle style = d->document->pageManager()->defaultPageStyle(); Q_ASSERT(style.isValid()); KoColumns columns; - columns.count = url.queryItemValue("columncount").toInt(); - columns.gapWidth = url.queryItemValue("columngap").toDouble(); + columns.count = query.queryItemValue("columncount").toInt(); + columns.gapWidth = query.queryItemValue("columngap").toDouble(); style.setColumns(columns); KoPageLayout layout = style.pageLayout(); - layout.format = KoPageFormat::formatFromString(url.queryItemValue("pageformat")); - layout.orientation = (KoPageFormat::Orientation)url.queryItemValue("pageorientation").toInt(); - layout.height = MM_TO_POINT(url.queryItemValue("height").toDouble()); - layout.width = MM_TO_POINT(url.queryItemValue("width").toDouble()); - if (url.queryItemValue("facingpages").toInt() == 1) { - layout.bindingSide = MM_TO_POINT(url.queryItemValue("leftmargin").toDouble()); - layout.pageEdge = MM_TO_POINT(url.queryItemValue("rightmargin").toDouble()); + layout.format = KoPageFormat::formatFromString(query.queryItemValue("pageformat")); + layout.orientation = (KoPageFormat::Orientation)query.queryItemValue("pageorientation").toInt(); + layout.height = MM_TO_POINT(query.queryItemValue("height").toDouble()); + layout.width = MM_TO_POINT(query.queryItemValue("width").toDouble()); + if (query.queryItemValue("facingpages").toInt() == 1) { + layout.bindingSide = MM_TO_POINT(query.queryItemValue("leftmargin").toDouble()); + layout.pageEdge = MM_TO_POINT(query.queryItemValue("rightmargin").toDouble()); layout.leftMargin = layout.rightMargin = -1; } else { layout.bindingSide = layout.pageEdge = -1; - layout.leftMargin = MM_TO_POINT(url.queryItemValue("leftmargin").toDouble()); - layout.rightMargin = MM_TO_POINT(url.queryItemValue("rightmargin").toDouble()); + layout.leftMargin = MM_TO_POINT(query.queryItemValue("leftmargin").toDouble()); + layout.rightMargin = MM_TO_POINT(query.queryItemValue("rightmargin").toDouble()); } - layout.topMargin = MM_TO_POINT(url.queryItemValue("topmargin").toDouble()); - layout.bottomMargin = MM_TO_POINT(url.queryItemValue("bottommargin").toDouble()); + layout.topMargin = MM_TO_POINT(query.queryItemValue("topmargin").toDouble()); + layout.bottomMargin = MM_TO_POINT(query.queryItemValue("bottommargin").toDouble()); style.setPageLayout(layout); - d->document->setUnit(KoUnit::fromSymbol(url.queryItemValue("unit"))); + d->document->setUnit(KoUnit::fromSymbol(query.queryItemValue("unit"))); d->document->relayout(); retval = true; } diff --git a/sheets/dialogs/LinkDialog.cpp b/sheets/dialogs/LinkDialog.cpp --- a/sheets/dialogs/LinkDialog.cpp +++ b/sheets/dialogs/LinkDialog.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -272,7 +273,7 @@ QUrl url(link); if (url.isValid()) { d->mailLink->setText(url.toString(QUrl::RemoveScheme | QUrl::RemoveQuery)); - d->mailSubject->setText(url.queryItemValue("subject")); + d->mailSubject->setText(QUrlQuery(url).queryItemValue("subject")); } else { d->mailLink->setText(link.mid(7)); }