mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-02-15 11:10:40 +01:00
Dimensions plugin update
This commit is contained in:
parent
4c410374db
commit
3b2d3877f7
@ -3206,7 +3206,7 @@ void PDFWidgetAnnotation::draw(AnnotationDrawParameters& parameters) const
|
||||
{
|
||||
switch (m_highlightMode)
|
||||
{
|
||||
case LinkHighlightMode::Invert:
|
||||
case HighlightMode::Invert:
|
||||
{
|
||||
// Invert all
|
||||
painter->setCompositionMode(QPainter::CompositionMode_Difference);
|
||||
@ -3214,7 +3214,7 @@ void PDFWidgetAnnotation::draw(AnnotationDrawParameters& parameters) const
|
||||
break;
|
||||
}
|
||||
|
||||
case LinkHighlightMode::Outline:
|
||||
case HighlightMode::Outline:
|
||||
{
|
||||
// Invert the border
|
||||
painter->setCompositionMode(QPainter::CompositionMode_Difference);
|
||||
@ -3226,7 +3226,7 @@ void PDFWidgetAnnotation::draw(AnnotationDrawParameters& parameters) const
|
||||
break;
|
||||
}
|
||||
|
||||
case LinkHighlightMode::Push:
|
||||
case HighlightMode::Push:
|
||||
{
|
||||
// Draw border
|
||||
painter->setCompositionMode(getCompositionMode());
|
||||
|
@ -304,12 +304,12 @@ bool PDFDrawWidgetBase<BaseWidget>::processEvent(Event* event)
|
||||
// If event is accepted, then update cursor/tooltip and return
|
||||
if (event->isAccepted())
|
||||
{
|
||||
setToolTip(tooltip);
|
||||
updateCursor();
|
||||
this->setToolTip(tooltip);
|
||||
this->updateCursor();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
setToolTip(tooltip);
|
||||
this->setToolTip(tooltip);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ template<typename T, size_t FlatSize>
|
||||
class PDFFlatArray
|
||||
{
|
||||
public:
|
||||
explicit PDFFlatArray() :
|
||||
PDFFlatArray() :
|
||||
m_flatBlock(),
|
||||
m_flatBlockItemCount(0),
|
||||
m_variableBlock()
|
||||
@ -50,7 +50,7 @@ public:
|
||||
}
|
||||
|
||||
template<typename... Arguments, typename std::enable_if<sizeof...(Arguments) <= FlatSize, int>::type = 0>
|
||||
explicit inline PDFFlatArray(Arguments... arguments) :
|
||||
inline PDFFlatArray(Arguments... arguments) :
|
||||
m_flatBlock({ arguments... }),
|
||||
m_flatBlockItemCount(sizeof...(Arguments)),
|
||||
m_variableBlock()
|
||||
|
@ -619,7 +619,7 @@ public:
|
||||
const PDFAction* getAction(PDFAnnotationAdditionalActions::Action actionType, const PDFFormWidget* widget);
|
||||
|
||||
/// Returns default form apperance flags
|
||||
static constexpr FormAppearanceFlags getDefaultApperanceFlags() { return HighlightFields | HighlightRequiredFields; }
|
||||
static constexpr FormAppearanceFlags getDefaultApperanceFlags() { return FormAppearanceFlags(HighlightFields | HighlightRequiredFields); }
|
||||
|
||||
struct MouseEventInfo
|
||||
{
|
||||
|
@ -21,19 +21,26 @@ namespace pdf
|
||||
{
|
||||
|
||||
PDFPlugin::PDFPlugin(QObject* parent) :
|
||||
QObject(parent)
|
||||
QObject(parent),
|
||||
m_widget(nullptr),
|
||||
m_document(nullptr)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void PDFPlugin::setWidget(PDFWidget* widget)
|
||||
{
|
||||
Q_UNUSED(widget)
|
||||
m_widget = widget;
|
||||
}
|
||||
|
||||
void PDFPlugin::setDocument(const PDFModifiedDocument& document)
|
||||
{
|
||||
Q_UNUSED(document)
|
||||
m_document = document;
|
||||
}
|
||||
|
||||
std::vector<QAction*> PDFPlugin::getActions() const
|
||||
{
|
||||
return std::vector<QAction*>();
|
||||
}
|
||||
|
||||
PDFPluginInfo PDFPluginInfo::loadFromJson(const QJsonObject* json)
|
||||
|
@ -23,6 +23,10 @@
|
||||
#include <QObject>
|
||||
#include <QJsonObject>
|
||||
|
||||
#include <vector>
|
||||
|
||||
class QAction;
|
||||
|
||||
namespace pdf
|
||||
{
|
||||
class PDFWidget;
|
||||
@ -48,6 +52,11 @@ public:
|
||||
|
||||
virtual void setWidget(PDFWidget* widget);
|
||||
virtual void setDocument(const PDFModifiedDocument& document);
|
||||
virtual std::vector<QAction*> getActions() const;
|
||||
|
||||
protected:
|
||||
PDFWidget* m_widget;
|
||||
PDFDocument* m_document;
|
||||
};
|
||||
|
||||
} // namespace pdf
|
||||
|
@ -99,7 +99,7 @@ public:
|
||||
static QMatrix createPagePointToDevicePointMatrix(const PDFPage* page, const QRectF& rectangle);
|
||||
|
||||
/// Returns default renderer features
|
||||
static constexpr Features getDefaultFeatures() { return Antialiasing | TextAntialiasing | ClipToCropBox | DisplayAnnotations; }
|
||||
static constexpr Features getDefaultFeatures() { return Features(Antialiasing | TextAntialiasing | ClipToCropBox | DisplayAnnotations); }
|
||||
|
||||
private:
|
||||
const PDFDocument* m_document;
|
||||
|
@ -650,7 +650,7 @@ private:
|
||||
template<typename T>
|
||||
QDataStream& operator>>(QDataStream& stream, std::vector<T>& vector)
|
||||
{
|
||||
std::vector<T>::size_type size = 0;
|
||||
typename std::vector<T>::size_type size = 0;
|
||||
stream >> size;
|
||||
vector.resize(size);
|
||||
for (T& item : vector)
|
||||
@ -674,7 +674,7 @@ QDataStream& operator<<(QDataStream& stream, const std::vector<T>& vector)
|
||||
template<typename T, size_t Size>
|
||||
QDataStream& operator>>(QDataStream& stream, std::array<T, Size>& array)
|
||||
{
|
||||
std::array<T, Size>::size_type size = 0;
|
||||
typename std::array<T, Size>::size_type size = 0;
|
||||
stream >> size;
|
||||
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
@ -713,7 +713,7 @@ QDataStream& operator<<(QDataStream& stream, const std::array<T, Size>& array)
|
||||
template<typename T>
|
||||
QDataStream& operator>>(QDataStream& stream, std::set<T>& set)
|
||||
{
|
||||
std::set<T>::size_type size = 0;
|
||||
typename std::set<T>::size_type size = 0;
|
||||
stream >> size;
|
||||
for (size_t i = 0; i < size; ++i)
|
||||
{
|
||||
|
@ -354,6 +354,16 @@ void PDFViewerMainWindow::loadPlugins()
|
||||
for (const auto& plugin : m_loadedPlugins)
|
||||
{
|
||||
plugin.second->setWidget(m_pdfWidget);
|
||||
std::vector<QAction*> actions = plugin.second->getActions();
|
||||
|
||||
if (!actions.empty())
|
||||
{
|
||||
QMenu* menu = ui->menuTools->addMenu(plugin.first.name);
|
||||
for (QAction* action : actions)
|
||||
{
|
||||
menu->addAction(action);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1075,12 +1085,12 @@ void PDFViewerMainWindow::onDocumentReadingFinished()
|
||||
setDocument(document);
|
||||
|
||||
pdf::PDFDocumentRequirements requirements = pdf::PDFDocumentRequirements::parse(&m_pdfDocument->getStorage(), m_pdfDocument->getCatalog()->getRequirements());
|
||||
constexpr pdf::PDFDocumentRequirements::Requirements requirementFlags = pdf::PDFDocumentRequirements::OCInteract |
|
||||
pdf::PDFDocumentRequirements::OCAutoStates |
|
||||
pdf::PDFDocumentRequirements::Navigation |
|
||||
pdf::PDFDocumentRequirements::Attachment |
|
||||
pdf::PDFDocumentRequirements::DigSigValidation |
|
||||
pdf::PDFDocumentRequirements::Encryption;
|
||||
constexpr pdf::PDFDocumentRequirements::Requirements requirementFlags = pdf::PDFDocumentRequirements::Requirements(pdf::PDFDocumentRequirements::OCInteract |
|
||||
pdf::PDFDocumentRequirements::OCAutoStates |
|
||||
pdf::PDFDocumentRequirements::Navigation |
|
||||
pdf::PDFDocumentRequirements::Attachment |
|
||||
pdf::PDFDocumentRequirements::DigSigValidation |
|
||||
pdf::PDFDocumentRequirements::Encryption);
|
||||
pdf::PDFDocumentRequirements::ValidationResult requirementResult = requirements.validate(requirementFlags);
|
||||
if (requirementResult.isError())
|
||||
{
|
||||
|
@ -18,6 +18,8 @@
|
||||
TEMPLATE = lib
|
||||
DEFINES += DIMENSIONPLUGIN_LIBRARY
|
||||
|
||||
QT += gui widgets
|
||||
|
||||
LIBS += -L$$OUT_PWD/../..
|
||||
|
||||
LIBS += -lPDFForQtLib
|
||||
@ -31,12 +33,17 @@ DESTDIR = $$OUT_PWD/../../pdfplugins
|
||||
CONFIG += c++11
|
||||
|
||||
SOURCES += \
|
||||
dimensionsplugin.cpp
|
||||
dimensionsplugin.cpp \
|
||||
dimensiontool.cpp
|
||||
|
||||
HEADERS += \
|
||||
dimensionsplugin.h
|
||||
dimensionsplugin.h \
|
||||
dimensiontool.h
|
||||
|
||||
CONFIG += force_debug_info
|
||||
|
||||
DISTFILES += \
|
||||
DimensionsPlugin.json
|
||||
|
||||
RESOURCES += \
|
||||
icons.qrc
|
||||
|
128
PdfForQtViewerPlugins/DimensionsPlugin/area.svg
Normal file
128
PdfForQtViewerPlugins/DimensionsPlugin/area.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 109 KiB |
@ -1,12 +1,84 @@
|
||||
// Copyright (C) 2020 Jakub Melka
|
||||
//
|
||||
// This file is part of PdfForQt.
|
||||
//
|
||||
// PdfForQt is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// PdfForQt is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with PDFForQt. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
#include "dimensionsplugin.h"
|
||||
#include "pdfdrawwidget.h"
|
||||
|
||||
namespace pdfplugin
|
||||
{
|
||||
|
||||
DimensionsPlugin::DimensionsPlugin() :
|
||||
pdf::PDFPlugin(nullptr)
|
||||
pdf::PDFPlugin(nullptr),
|
||||
m_dimensionTools()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void DimensionsPlugin::setWidget(pdf::PDFWidget* widget)
|
||||
{
|
||||
Q_ASSERT(!m_widget);
|
||||
|
||||
BaseClass::setWidget(widget);
|
||||
|
||||
QAction* horizontalDimensionAction = new QAction(QIcon(":/pdfplugins/dimensiontool/linear-horizontal.svg"), tr("Horizontal Dimension"), this);
|
||||
QAction* verticalDimensionAction = new QAction(QIcon(":/pdfplugins/dimensiontool/linear-vertical.svg"), tr("Vertical Dimension"), this);
|
||||
QAction* linearDimensionAction = new QAction(QIcon(":/pdfplugins/dimensiontool/linear.svg"), tr("Linear Dimension"), this);
|
||||
QAction* perimeterDimensionAction = new QAction(QIcon(":/pdfplugins/dimensiontool/perimeter.svg"), tr("Perimeter"), this);
|
||||
QAction* areaDimensionAction = new QAction(QIcon(":/pdfplugins/dimensiontool/area.svg"), tr("Area"), this);
|
||||
|
||||
horizontalDimensionAction->setObjectName("dimensiontool_LinearHorizontalAction");
|
||||
verticalDimensionAction->setObjectName("dimensiontool_LinearVerticalAction");
|
||||
linearDimensionAction->setObjectName("dimensiontool_LinearAction");
|
||||
perimeterDimensionAction->setObjectName("dimensiontool_PerimeterAction");
|
||||
areaDimensionAction->setObjectName("dimensiontool_AreaAction");
|
||||
|
||||
m_dimensionTools[DimensionTool::LinearHorizontal] = new DimensionTool(DimensionTool::LinearHorizontal, widget->getDrawWidgetProxy(), horizontalDimensionAction, this);
|
||||
m_dimensionTools[DimensionTool::LinearVertical] = new DimensionTool(DimensionTool::LinearVertical, widget->getDrawWidgetProxy(), verticalDimensionAction, this);
|
||||
m_dimensionTools[DimensionTool::Linear] = new DimensionTool(DimensionTool::Linear, widget->getDrawWidgetProxy(), linearDimensionAction, this);
|
||||
m_dimensionTools[DimensionTool::Perimeter] = new DimensionTool(DimensionTool::Perimeter, widget->getDrawWidgetProxy(), perimeterDimensionAction, this);
|
||||
m_dimensionTools[DimensionTool::Area] = new DimensionTool(DimensionTool::Area, widget->getDrawWidgetProxy(), areaDimensionAction, this);
|
||||
}
|
||||
|
||||
void DimensionsPlugin::setDocument(const pdf::PDFModifiedDocument& document)
|
||||
{
|
||||
BaseClass::setDocument(document);
|
||||
|
||||
for (DimensionTool* tool : m_dimensionTools)
|
||||
{
|
||||
if (tool)
|
||||
{
|
||||
tool->setDocument(document);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<QAction*> DimensionsPlugin::getActions() const
|
||||
{
|
||||
std::vector<QAction*> result;
|
||||
|
||||
for (DimensionTool* tool : m_dimensionTools)
|
||||
{
|
||||
if (tool)
|
||||
{
|
||||
result.push_back(tool->getAction());
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,25 @@
|
||||
// Copyright (C) 2020 Jakub Melka
|
||||
//
|
||||
// This file is part of PdfForQt.
|
||||
//
|
||||
// PdfForQt is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// PdfForQt is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with PDFForQt. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef DIMENSIONSPLUGIN_H
|
||||
#define DIMENSIONSPLUGIN_H
|
||||
|
||||
#include "pdfplugin.h"
|
||||
#include "dimensiontool.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
@ -13,8 +31,18 @@ class DimensionsPlugin : public pdf::PDFPlugin
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID "PdfForQt.DimensionsPlugin" FILE "DimensionsPlugin.json")
|
||||
|
||||
private:
|
||||
using BaseClass = pdf::PDFPlugin;
|
||||
|
||||
public:
|
||||
DimensionsPlugin();
|
||||
|
||||
virtual void setWidget(pdf::PDFWidget* widget) override;
|
||||
virtual void setDocument(const pdf::PDFModifiedDocument& document) override;
|
||||
virtual std::vector<QAction*> getActions() const override;
|
||||
|
||||
private:
|
||||
std::array<DimensionTool*, DimensionTool::LastStyle> m_dimensionTools;
|
||||
};
|
||||
|
||||
} // namespace pdfplugin
|
||||
|
26
PdfForQtViewerPlugins/DimensionsPlugin/dimensiontool.cpp
Normal file
26
PdfForQtViewerPlugins/DimensionsPlugin/dimensiontool.cpp
Normal file
@ -0,0 +1,26 @@
|
||||
// Copyright (C) 2020 Jakub Melka
|
||||
//
|
||||
// This file is part of PdfForQt.
|
||||
//
|
||||
// PdfForQt is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// PdfForQt is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with PDFForQt. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
#include "dimensiontool.h"
|
||||
|
||||
|
||||
DimensionTool::DimensionTool(DimensionTool::Style style, pdf::PDFDrawWidgetProxy* proxy, QAction* action, QObject* parent) :
|
||||
BaseClass(proxy, action, parent),
|
||||
m_style(style)
|
||||
{
|
||||
|
||||
}
|
52
PdfForQtViewerPlugins/DimensionsPlugin/dimensiontool.h
Normal file
52
PdfForQtViewerPlugins/DimensionsPlugin/dimensiontool.h
Normal file
@ -0,0 +1,52 @@
|
||||
// Copyright (C) 2020 Jakub Melka
|
||||
//
|
||||
// This file is part of PdfForQt.
|
||||
//
|
||||
// PdfForQt is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// PdfForQt is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with PDFForQt. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef DIMENSIONTOOL_H
|
||||
#define DIMENSIONTOOL_H
|
||||
|
||||
#include "pdfwidgettool.h"
|
||||
|
||||
#include <QAction>
|
||||
#include <QPolygonF>
|
||||
|
||||
class DimensionTool : public pdf::PDFWidgetTool
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
using BaseClass = pdf::PDFWidgetTool;
|
||||
|
||||
public:
|
||||
|
||||
enum Style
|
||||
{
|
||||
LinearHorizontal,
|
||||
LinearVertical,
|
||||
Linear,
|
||||
Perimeter,
|
||||
Area,
|
||||
LastStyle
|
||||
};
|
||||
|
||||
|
||||
explicit DimensionTool(Style style, pdf::PDFDrawWidgetProxy* proxy, QAction* action, QObject* parent);
|
||||
|
||||
private:
|
||||
Style m_style;
|
||||
};
|
||||
|
||||
#endif // DIMENSIONTOOL_H
|
9
PdfForQtViewerPlugins/DimensionsPlugin/icons.qrc
Normal file
9
PdfForQtViewerPlugins/DimensionsPlugin/icons.qrc
Normal file
@ -0,0 +1,9 @@
|
||||
<RCC>
|
||||
<qresource prefix="/pdfplugins/dimensiontool">
|
||||
<file>area.svg</file>
|
||||
<file>linear.svg</file>
|
||||
<file>linear-horizontal.svg</file>
|
||||
<file>linear-vertical.svg</file>
|
||||
<file>perimeter.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
114
PdfForQtViewerPlugins/DimensionsPlugin/linear-horizontal.svg
Normal file
114
PdfForQtViewerPlugins/DimensionsPlugin/linear-horizontal.svg
Normal file
@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="30mm"
|
||||
height="30mm"
|
||||
viewBox="0 0 30 30"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="linear-horizontal.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect831"
|
||||
is_visible="true" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="189.75621"
|
||||
inkscape:cy="148.69816"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2035"
|
||||
inkscape:window-x="-13"
|
||||
inkscape:window-y="-13"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Melka</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Vrstva 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-267)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 11.646391,283.58184 v 0 0"
|
||||
id="path837"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 3.115571,287.49615 23.723115,-0.341"
|
||||
id="path866"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.52839077;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 3.0543087,290.85595 -0.065754,-6.96932"
|
||||
id="path868"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.528391;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 26.871563,290.55759 -0.06575,-6.96932"
|
||||
id="path868-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
aria-label="x"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
id="text895">
|
||||
<path
|
||||
d="m 17.631392,284.2886 h -1.30638 l -1.747353,-2.36471 -1.758376,2.36471 h -1.207162 l 2.403299,-3.07026 -2.38125,-3.08681 h 1.30638 l 1.736328,2.32613 1.741841,-2.32613 h 1.212673 l -2.419835,3.03168 z"
|
||||
style="stroke-width:0.26458332"
|
||||
id="path897"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
118
PdfForQtViewerPlugins/DimensionsPlugin/linear-vertical.svg
Normal file
118
PdfForQtViewerPlugins/DimensionsPlugin/linear-vertical.svg
Normal file
@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="30mm"
|
||||
height="30mm"
|
||||
viewBox="0 0 30 30"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="linear-vertical.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect831"
|
||||
is_visible="true" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="179.1496"
|
||||
inkscape:cy="238.50072"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2035"
|
||||
inkscape:window-x="-13"
|
||||
inkscape:window-y="-13"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Melka</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Vrstva 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-267)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 11.646391,283.58184 v 0 0"
|
||||
id="path837"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g905"
|
||||
transform="rotate(90,16.252974,283.7)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path866"
|
||||
d="m 3.115571,287.49615 23.723115,-0.341"
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path868"
|
||||
d="m 3.0543087,290.85595 -0.065754,-6.96932"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.52839077;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path868-1"
|
||||
d="m 26.871563,290.55759 -0.06575,-6.96932"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.528391;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
id="text895"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="x">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path897"
|
||||
style="stroke-width:0.26458332"
|
||||
d="m 17.631392,284.2886 h -1.30638 l -1.747353,-2.36471 -1.758376,2.36471 h -1.207162 l 2.403299,-3.07026 -2.38125,-3.08681 h 1.30638 l 1.736328,2.32613 1.741841,-2.32613 h 1.212673 l -2.419835,3.03168 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.5 KiB |
118
PdfForQtViewerPlugins/DimensionsPlugin/linear.svg
Normal file
118
PdfForQtViewerPlugins/DimensionsPlugin/linear.svg
Normal file
@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="30mm"
|
||||
height="30mm"
|
||||
viewBox="0 0 30 30"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="linear.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect831"
|
||||
is_visible="true" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.979899"
|
||||
inkscape:cx="179.1496"
|
||||
inkscape:cy="238.50072"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2035"
|
||||
inkscape:window-x="-13"
|
||||
inkscape:window-y="-13"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Melka</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Vrstva 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-267)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 11.646391,283.58184 v 0 0"
|
||||
id="path837"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g905"
|
||||
transform="rotate(-45,9.290825,283.65821)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path866"
|
||||
d="m 3.115571,287.49615 23.723115,-0.341"
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path868"
|
||||
d="m 3.0543087,290.85595 -0.065754,-6.96932"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.52839077;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path868-1"
|
||||
d="m 26.871563,290.55759 -0.06575,-6.96932"
|
||||
style="fill:none;stroke:#000000;stroke-width:1.528391;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
id="text895"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
aria-label="x">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path897"
|
||||
style="stroke-width:0.26458332"
|
||||
d="m 17.631392,284.2886 h -1.30638 l -1.747353,-2.36471 -1.758376,2.36471 h -1.207162 l 2.403299,-3.07026 -2.38125,-3.08681 h 1.30638 l 1.736328,2.32613 1.741841,-2.32613 h 1.212673 l -2.419835,3.03168 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.4 KiB |
109
PdfForQtViewerPlugins/DimensionsPlugin/perimeter.svg
Normal file
109
PdfForQtViewerPlugins/DimensionsPlugin/perimeter.svg
Normal file
@ -0,0 +1,109 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="30mm"
|
||||
height="30mm"
|
||||
viewBox="0 0 30 30"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="perimeter.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect831"
|
||||
is_visible="true" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="157.79444"
|
||||
inkscape:cy="47.635251"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2035"
|
||||
inkscape:window-x="-13"
|
||||
inkscape:window-y="-13"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Melka</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Vrstva 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-267)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 11.646391,283.58184 v 0 0"
|
||||
id="path837"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
id="rect4611"
|
||||
width="21.591888"
|
||||
height="18.048363"
|
||||
x="4.4790177"
|
||||
y="273.08356"
|
||||
rx="3.0000045"
|
||||
ry="3.0000045" />
|
||||
<g
|
||||
aria-label="o"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
||||
id="text4615"
|
||||
transform="translate(0.52916667)">
|
||||
<path
|
||||
d="m 17.786142,281.98022 q 0,1.50482 -0.771701,2.37574 -0.771701,0.87092 -2.067057,0.87092 -1.306381,0 -2.078082,-0.87092 -0.766189,-0.87092 -0.766189,-2.37574 0,-1.50482 0.766189,-2.37574 0.771701,-0.87643 2.078082,-0.87643 1.295356,0 2.067057,0.87643 0.771701,0.87092 0.771701,2.37574 z m -1.069357,0 q 0,-1.19614 -0.468533,-1.77491 -0.468533,-0.58429 -1.300868,-0.58429 -0.84336,0 -1.311893,0.58429 -0.463021,0.57877 -0.463021,1.77491 0,1.15755 0.468533,1.75838 0.468533,0.59531 1.306381,0.59531 0.826823,0 1.295356,-0.5898 0.474045,-0.59532 0.474045,-1.76389 z"
|
||||
style="stroke-width:0.26458332"
|
||||
id="path4617"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.2 KiB |
@ -283,4 +283,6 @@ private:
|
||||
|
||||
} // namespace pdftool
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(pdftool::PDFToolAbstractApplication::Options)
|
||||
|
||||
#endif // PDFTOOLABSTRACTAPPLICATION_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user