Use a menu bar instead of a context menu
@ -4,12 +4,12 @@
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
|
|
||||||
QT += core gui network widgets
|
QT += core gui network widgets svg
|
||||||
|
|
||||||
TARGET = KShare
|
TARGET = KShare
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
|
|
||||||
CONFIG += c++11
|
CONFIG += c++11 thread
|
||||||
|
|
||||||
# The following define makes your compiler emit warnings if you use
|
# The following define makes your compiler emit warnings if you use
|
||||||
# any feature of Qt which as been marked as deprecated (the exact warnings
|
# any feature of Qt which as been marked as deprecated (the exact warnings
|
||||||
@ -39,7 +39,6 @@ SOURCES += main.cpp\
|
|||||||
uploaders/customuploader.cpp \
|
uploaders/customuploader.cpp \
|
||||||
notifications.cpp \
|
notifications.cpp \
|
||||||
hotkeying.cpp \
|
hotkeying.cpp \
|
||||||
cropeditor/drawing/dotitem.cpp \
|
|
||||||
cropeditor/settings/brushpenselection.cpp \
|
cropeditor/settings/brushpenselection.cpp \
|
||||||
cropeditor/drawing/bluritem.cpp \
|
cropeditor/drawing/bluritem.cpp \
|
||||||
cropeditor/drawing/pathitem.cpp \
|
cropeditor/drawing/pathitem.cpp \
|
||||||
@ -84,7 +83,6 @@ HEADERS += mainwindow.hpp \
|
|||||||
notifications.hpp \
|
notifications.hpp \
|
||||||
hotkeying.hpp \
|
hotkeying.hpp \
|
||||||
cropeditor/drawing/drawitem.hpp \
|
cropeditor/drawing/drawitem.hpp \
|
||||||
cropeditor/drawing/dotitem.hpp \
|
|
||||||
cropeditor/settings/brushpenselection.hpp \
|
cropeditor/settings/brushpenselection.hpp \
|
||||||
cropeditor/drawing/bluritem.hpp \
|
cropeditor/drawing/bluritem.hpp \
|
||||||
cropeditor/drawing/pathitem.hpp \
|
cropeditor/drawing/pathitem.hpp \
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <cropeditor/drawing/arrowitem.hpp>
|
#include <cropeditor/drawing/arrowitem.hpp>
|
||||||
#include <cropeditor/drawing/bluritem.hpp>
|
#include <cropeditor/drawing/bluritem.hpp>
|
||||||
#include <cropeditor/drawing/dotitem.hpp>
|
|
||||||
#include <cropeditor/drawing/ellipseitem.hpp>
|
#include <cropeditor/drawing/ellipseitem.hpp>
|
||||||
#include <cropeditor/drawing/eraseritem.hpp>
|
#include <cropeditor/drawing/eraseritem.hpp>
|
||||||
#include <cropeditor/drawing/lineitem.hpp>
|
#include <cropeditor/drawing/lineitem.hpp>
|
||||||
@ -34,18 +33,19 @@ CropScene::CropScene(QObject *parent, QPixmap pixmap)
|
|||||||
static_cast<Qt::BrushStyle>(settings::settings().value("brushStyle", static_cast<int>(Qt::SolidPattern)).toInt()));
|
static_cast<Qt::BrushStyle>(settings::settings().value("brushStyle", static_cast<int>(Qt::SolidPattern)).toInt()));
|
||||||
|
|
||||||
menu = new QMenuBar;
|
menu = new QMenuBar;
|
||||||
addDrawingAction(menu, "Dot", [] { return new DotItem; });
|
addDrawingAction(menu, "Free draw", ":/icons/pencil.svg", [] { return new PathItem; });
|
||||||
addDrawingAction(menu, "Path", [] { return new PathItem; });
|
addDrawingAction(menu, "Blur", ":/icons/blur.png", [] { return new BlurItem; });
|
||||||
addDrawingAction(menu, "Blur", [] { return new BlurItem; });
|
addDrawingAction(menu, "Straight line", ":/icons/line.svg", [] { return new LineItem; });
|
||||||
addDrawingAction(menu, "Straight line", [] { return new LineItem; });
|
addDrawingAction(menu, "Text", ":/icons/text.svg", [] { return new TextItem; });
|
||||||
addDrawingAction(menu, "Text", [] { return new TextItem; });
|
addDrawingAction(menu, "Rectangle", ":/icons/rectangle.svg", [] { return new RectItem; });
|
||||||
addDrawingAction(menu, "Rectangle", [] { return new RectItem; });
|
addDrawingAction(menu, "Ellipse", ":/icons/circle.svg", [] { return new EllipseItem; });
|
||||||
addDrawingAction(menu, "Ellipse", [] { return new EllipseItem; });
|
addDrawingAction(menu, "Arrow", ":/icons/arrow.svg", [] { return new ArrowItem; });
|
||||||
addDrawingAction(menu, "Arrow", [] { return new ArrowItem; });
|
|
||||||
|
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
addDrawingAction(menu, "Eraser", [] { return new EraserItem; });
|
addDrawingAction(menu, "Eraser", ":/icons/erase.svg", [] { return new EraserItem; });
|
||||||
QAction *clear = menu->addAction("Clear all drawing");
|
QAction *clear = menu->addAction("");
|
||||||
|
clear->setToolTip("Clear all drawing");
|
||||||
|
clear->setIcon(QIcon(":/icons/delete.svg"));
|
||||||
connect(clear, &QAction::triggered, [&] {
|
connect(clear, &QAction::triggered, [&] {
|
||||||
auto its = items();
|
auto its = items();
|
||||||
for (auto i : its) {
|
for (auto i : its) {
|
||||||
@ -66,7 +66,8 @@ CropScene::CropScene(QObject *parent, QPixmap pixmap)
|
|||||||
|
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
QAction *settings = new QAction;
|
QAction *settings = new QAction;
|
||||||
settings->setText("Settings");
|
settings->setToolTip("Settings");
|
||||||
|
settings->setIcon(QIcon(":/icons/settings.svg"));
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
display = menu->addAction(drawingName);
|
display = menu->addAction(drawingName);
|
||||||
display->setDisabled(true);
|
display->setDisabled(true);
|
||||||
@ -75,7 +76,25 @@ CropScene::CropScene(QObject *parent, QPixmap pixmap)
|
|||||||
BrushPenSelection(this).exec();
|
BrushPenSelection(this).exec();
|
||||||
show();
|
show();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
QAction *font = menu->addAction("");
|
||||||
|
font->setIcon(QIcon(":/icons/fontsettings.svg"));
|
||||||
|
connect(font, &QAction::triggered, this, &CropScene::fontAsk);
|
||||||
|
|
||||||
menu->addAction(settings);
|
menu->addAction(settings);
|
||||||
|
menu->addSeparator();
|
||||||
|
QAction *confirm = menu->addAction("");
|
||||||
|
confirm->setToolTip("Confirm");
|
||||||
|
confirm->setIcon(QIcon(":/icons/accept.svg"));
|
||||||
|
connect(confirm, &QAction::triggered, [this] { done(true); });
|
||||||
|
menu->addAction(confirm);
|
||||||
|
|
||||||
|
QAction *cancel = menu->addAction("");
|
||||||
|
cancel->setToolTip("Cancel");
|
||||||
|
cancel->setIcon(QIcon(":/icons/cancel.svg"));
|
||||||
|
connect(cancel, &QAction::triggered, [this] { done(false); });
|
||||||
|
menu->addAction(cancel);
|
||||||
|
|
||||||
QPolygonF cursorPoly;
|
QPolygonF cursorPoly;
|
||||||
cursorPoly << QPoint(-10, 0) //
|
cursorPoly << QPoint(-10, 0) //
|
||||||
<< QPoint(10, 0) //
|
<< QPoint(10, 0) //
|
||||||
@ -108,7 +127,6 @@ CropScene::CropScene(QObject *parent, QPixmap pixmap)
|
|||||||
hint->setPos(5, 5);
|
hint->setPos(5, 5);
|
||||||
hint->setZValue(2);
|
hint->setZValue(2);
|
||||||
hint->setVisible(settings::settings().value("crophint", true).toBool());
|
hint->setVisible(settings::settings().value("crophint", true).toBool());
|
||||||
connect(menu->addAction("Set Font"), &QAction::triggered, this, &CropScene::fontAsk);
|
|
||||||
|
|
||||||
QPolygonF poly;
|
QPolygonF poly;
|
||||||
QRect prect = pixmap.rect();
|
QRect prect = pixmap.rect();
|
||||||
@ -156,6 +174,7 @@ void CropScene::setDrawingSelection(QString name, std::function<DrawItem *()> dr
|
|||||||
drawingSelectionMaker = drawAction;
|
drawingSelectionMaker = drawAction;
|
||||||
drawingSelection = drawAction();
|
drawingSelection = drawAction();
|
||||||
drawingName = name;
|
drawingName = name;
|
||||||
|
display->setText(drawingName);
|
||||||
if (drawingSelection)
|
if (drawingSelection)
|
||||||
if (!drawingSelection->init(this)) setDrawingSelection("None", [] { return nullptr; });
|
if (!drawingSelection->init(this)) setDrawingSelection("None", [] { return nullptr; });
|
||||||
}
|
}
|
||||||
@ -163,8 +182,7 @@ void CropScene::setDrawingSelection(QString name, std::function<DrawItem *()> dr
|
|||||||
QGraphicsItem *CropScene::whichItem(QPointF scenePos) {
|
QGraphicsItem *CropScene::whichItem(QPointF scenePos) {
|
||||||
for (auto item : items()) {
|
for (auto item : items()) {
|
||||||
if (item->sceneBoundingRect().contains(scenePos))
|
if (item->sceneBoundingRect().contains(scenePos))
|
||||||
if (item != polyItem && item != rect && item != cursorItem && item->zValue() != -1 && item != proxyMenu)
|
if (item != polyItem && item != rect && item != cursorItem && item->zValue() != -1) return item;
|
||||||
return item;
|
|
||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -281,7 +299,7 @@ void CropScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) {
|
|||||||
void CropScene::mousePressEvent(QGraphicsSceneMouseEvent *e) {
|
void CropScene::mousePressEvent(QGraphicsSceneMouseEvent *e) {
|
||||||
if (e->modifiers() & Qt::AltModifier) {
|
if (e->modifiers() & Qt::AltModifier) {
|
||||||
auto item = whichItem(cursorItem->scenePos());
|
auto item = whichItem(cursorItem->scenePos());
|
||||||
if (item) removeItem(item);
|
if (item && item != proxyMenu) removeItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
QGraphicsScene::mousePressEvent(e);
|
QGraphicsScene::mousePressEvent(e);
|
||||||
@ -307,13 +325,13 @@ void CropScene::wheelEvent(QGraphicsSceneWheelEvent *event) {
|
|||||||
QGraphicsScene::wheelEvent(event);
|
QGraphicsScene::wheelEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CropScene::addDrawingAction(QMenuBar *menu, QString name, std::function<DrawItem *()> item) {
|
void CropScene::addDrawingAction(QMenuBar *menu, QString name, QString icon, std::function<DrawItem *()> item) {
|
||||||
QAction *action = menu->addAction(name);
|
QAction *action = menu->addAction("");
|
||||||
connect(action, &QAction::triggered, [this, &menu, action, item, name](bool) { setDrawingSelection(name, item); });
|
action->setToolTip(name);
|
||||||
|
action->setIcon(QIcon(icon));
|
||||||
|
connect(action, &QAction::triggered, [this, menu, action, item, name](bool) { setDrawingSelection(name, item); });
|
||||||
}
|
}
|
||||||
|
|
||||||
static QPoint contextOffset(5, 5);
|
|
||||||
|
|
||||||
void CropScene::keyReleaseEvent(QKeyEvent *event) {
|
void CropScene::keyReleaseEvent(QKeyEvent *event) {
|
||||||
if (((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !drawingSelection) || event->key() == Qt::Key_Escape)
|
if (((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !drawingSelection) || event->key() == Qt::Key_Escape)
|
||||||
done(event->key() != Qt::Key_Escape);
|
done(event->key() != Qt::Key_Escape);
|
||||||
|
@ -54,11 +54,13 @@ protected:
|
|||||||
void wheelEvent(QGraphicsSceneWheelEvent *event) override; // WHEEEEEEL
|
void wheelEvent(QGraphicsSceneWheelEvent *event) override; // WHEEEEEEL
|
||||||
void keyReleaseEvent(QKeyEvent *e) override;
|
void keyReleaseEvent(QKeyEvent *e) override;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void done(bool notEsc = true);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateMag();
|
void updateMag();
|
||||||
void initMagnifierGrid();
|
void initMagnifierGrid();
|
||||||
void addDrawingAction(QMenuBar *menu, QString name, std::function<DrawItem *()> item);
|
void addDrawingAction(QMenuBar *menu, QString name, QString icon, std::function<DrawItem *()> item);
|
||||||
void done(bool notEsc);
|
|
||||||
bool fullscreen;
|
bool fullscreen;
|
||||||
QPointF cursorPos;
|
QPointF cursorPos;
|
||||||
std::function<DrawItem *()> drawingSelectionMaker;
|
std::function<DrawItem *()> drawingSelectionMaker;
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
#include "dotitem.hpp"
|
|
||||||
|
|
||||||
DotItem::DotItem() {
|
|
||||||
}
|
|
||||||
|
|
||||||
DotItem::~DotItem() {
|
|
||||||
}
|
|
||||||
|
|
||||||
void DotItem::mouseDragEvent(QGraphicsSceneMouseEvent *e, CropScene *scene) {
|
|
||||||
scene->addEllipse(e->pos().x() - 1.5, e->pos().y() - 1.5, 3, 3, scene->pen(), scene->brush())->setPos(scene->cursorPosition());
|
|
||||||
}
|
|
||||||
|
|
||||||
void DotItem::mouseDragEndEvent(QGraphicsSceneMouseEvent *, CropScene *) {
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
#ifndef DOTITEM_HPP
|
|
||||||
#define DOTITEM_HPP
|
|
||||||
|
|
||||||
#include "../cropscene.hpp"
|
|
||||||
#include "drawitem.hpp"
|
|
||||||
|
|
||||||
class DotItem : public DrawItem {
|
|
||||||
public:
|
|
||||||
DotItem();
|
|
||||||
~DotItem();
|
|
||||||
QString name() {
|
|
||||||
return "Dots (drag to add)";
|
|
||||||
}
|
|
||||||
void mouseDragEvent(QGraphicsSceneMouseEvent *e, CropScene *scene);
|
|
||||||
void mouseDragEndEvent(QGraphicsSceneMouseEvent *e, CropScene *scene);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // DOTITEM_HPP
|
|
13
icon.qrc
@ -3,5 +3,18 @@
|
|||||||
<file>icons/icon.png</file>
|
<file>icons/icon.png</file>
|
||||||
<file>icons/icon.svg</file>
|
<file>icons/icon.svg</file>
|
||||||
<file>icons/icon.ico</file>
|
<file>icons/icon.ico</file>
|
||||||
|
<file>icons/pencil.svg</file>
|
||||||
|
<file>icons/rectangle.svg</file>
|
||||||
|
<file>icons/line.svg</file>
|
||||||
|
<file>icons/text.svg</file>
|
||||||
|
<file>icons/delete.svg</file>
|
||||||
|
<file>icons/arrow.svg</file>
|
||||||
|
<file>icons/circle.svg</file>
|
||||||
|
<file>icons/settings.svg</file>
|
||||||
|
<file>icons/fontsettings.svg</file>
|
||||||
|
<file>icons/erase.svg</file>
|
||||||
|
<file>icons/blur.png</file>
|
||||||
|
<file>icons/accept.svg</file>
|
||||||
|
<file>icons/cancel.svg</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
11
icons/NOTICE.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
The following icons are from [iconmonstr](https://iconmonstr.com/):
|
||||||
|
|
||||||
|
* [pencil.svg](https://iconmonstr.com/pencil-9/)
|
||||||
|
* [rectangle.svg](https://iconmonstr.com/square-4/)
|
||||||
|
* [circle.svg](https://iconmonstr.com/circle-2/)
|
||||||
|
* [arrow.svg](https://iconmonstr.com/arrow-19/)
|
||||||
|
* [delete.svg](https://iconmonstr.com/x-mark-12/)
|
||||||
|
* [settings.svg](https://iconmonstr.com/gear-1/)
|
||||||
|
* [erase.svg](https://iconmonstr.com/x-mark-4/)
|
||||||
|
* [accept.svg](https://iconmonstr.com/checkbox-21/)
|
||||||
|
* [cancel.svg](https://iconmonstr.com/x-mark-8/)
|
1
icons/accept.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-1.959 17l-4.5-4.319 1.395-1.435 3.08 2.937 7.021-7.183 1.422 1.409-8.418 8.591z"/></svg>
|
After Width: | Height: | Size: 257 B |
1
icons/arrow.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.068.016l-3.717 3.698 5.263 5.286h-13.614v6h13.614l-5.295 5.317 3.718 3.699 11.963-12.016z"/></svg>
|
After Width: | Height: | Size: 194 B |
BIN
icons/blur.png
Normal file
After Width: | Height: | Size: 76 KiB |
87
icons/blur.svg
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?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="1024"
|
||||||
|
height="1024"
|
||||||
|
viewBox="0 0 270.93333 270.93334"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="TEXT.svg"
|
||||||
|
inkscape:version="0.92.1 r">
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<filter
|
||||||
|
style="color-interpolation-filters:sRGB;"
|
||||||
|
inkscape:label="Blur"
|
||||||
|
id="filter8705">
|
||||||
|
<feGaussianBlur
|
||||||
|
stdDeviation="20 20"
|
||||||
|
result="blur"
|
||||||
|
id="feGaussianBlur8703" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.5"
|
||||||
|
inkscape:cx="883.00002"
|
||||||
|
inkscape:cy="511.99997"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1055"
|
||||||
|
inkscape:window-x="1971"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0" />
|
||||||
|
<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:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-26.06665)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:361.58081055px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:9.03952026"
|
||||||
|
x="5.47505"
|
||||||
|
y="298.96558"
|
||||||
|
id="text4544"
|
||||||
|
transform="scale(1.0496228,0.95272321)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4542"
|
||||||
|
x="5.47505"
|
||||||
|
y="618.87982"
|
||||||
|
style="stroke-width:9.03952026" /></text>
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:33.86666667;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter8705)"
|
||||||
|
id="rect6112"
|
||||||
|
width="237.06667"
|
||||||
|
height="237.06667"
|
||||||
|
x="16.933334"
|
||||||
|
y="42.999985" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
1
icons/cancel.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 3.752l-4.423-3.752-7.771 9.039-7.647-9.008-4.159 4.278c2.285 2.885 5.284 5.903 8.362 8.708l-8.165 9.447 1.343 1.487c1.978-1.335 5.981-4.373 10.205-7.958 4.304 3.67 8.306 6.663 10.229 8.006l1.449-1.278-8.254-9.724c3.287-2.973 6.584-6.354 8.831-9.245z"/></svg>
|
After Width: | Height: | Size: 354 B |
1
icons/circle.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12z"/></svg>
|
After Width: | Height: | Size: 250 B |
1
icons/delete.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M7 5h17v16h-17l-7-7.972 7-8.028zm7 6.586l-2.586-2.586-1.414 1.414 2.586 2.586-2.586 2.586 1.414 1.414 2.586-2.586 2.586 2.586 1.414-1.414-2.586-2.586 2.586-2.586-1.414-1.414-2.586 2.586z"/></svg>
|
After Width: | Height: | Size: 307 B |
1
icons/erase.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm4.151 17.943l-4.143-4.102-4.117 4.159-1.833-1.833 4.104-4.157-4.162-4.119 1.833-1.833 4.155 4.102 4.106-4.16 1.849 1.849-4.1 4.141 4.157 4.104-1.849 1.849z"/></svg>
|
After Width: | Height: | Size: 332 B |
70
icons/fontsettings.svg
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?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="1024"
|
||||||
|
height="1024"
|
||||||
|
viewBox="0 0 270.93333 270.93334"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="0.92.1 r"
|
||||||
|
sodipodi:docname="TEXT.svg">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.35"
|
||||||
|
inkscape:cx="-185.71429"
|
||||||
|
inkscape:cy="668.06025"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1055"
|
||||||
|
inkscape:window-x="1971"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0" />
|
||||||
|
<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:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-26.06665)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:361.58081055px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:9.03952026"
|
||||||
|
x="5.47505"
|
||||||
|
y="298.96558"
|
||||||
|
id="text4544"
|
||||||
|
transform="scale(1.0496228,0.95272321)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="5.47505"
|
||||||
|
y="298.96558"
|
||||||
|
style="stroke-width:9.03952026"
|
||||||
|
id="tspan6108">F</tspan></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
63
icons/line.svg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?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="1024"
|
||||||
|
height="1024"
|
||||||
|
viewBox="0 0 270.93333 270.93334"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="0.92.1 r"
|
||||||
|
sodipodi:docname="line.svg">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.35"
|
||||||
|
inkscape:cx="-185.71429"
|
||||||
|
inkscape:cy="489.32508"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1055"
|
||||||
|
inkscape:window-x="1971"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0" />
|
||||||
|
<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:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-26.06665)">
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:33.86666667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 251.36911,45.621885 19.564228,277.44475 Z"
|
||||||
|
id="path4492"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
1
icons/pencil.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18.363 8.464l1.433 1.431-12.67 12.669-7.125 1.436 1.439-7.127 12.665-12.668 1.431 1.431-12.255 12.224-.726 3.584 3.584-.723 12.224-12.257zm-.056-8.464l-2.815 2.817 5.691 5.692 2.817-2.821-5.693-5.688zm-12.318 18.718l11.313-11.316-.705-.707-11.313 11.314.705.709z"/></svg>
|
After Width: | Height: | Size: 364 B |
1
icons/rectangle.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 2v20h-20v-20h20zm2-2h-24v24h24v-24z"/></svg>
|
After Width: | Height: | Size: 140 B |
1
icons/settings.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 13.616v-3.232c-1.651-.587-2.694-.752-3.219-2.019v-.001c-.527-1.271.1-2.134.847-3.707l-2.285-2.285c-1.561.742-2.433 1.375-3.707.847h-.001c-1.269-.526-1.435-1.576-2.019-3.219h-3.232c-.582 1.635-.749 2.692-2.019 3.219h-.001c-1.271.528-2.132-.098-3.707-.847l-2.285 2.285c.745 1.568 1.375 2.434.847 3.707-.527 1.271-1.584 1.438-3.219 2.02v3.232c1.632.58 2.692.749 3.219 2.019.53 1.282-.114 2.166-.847 3.707l2.285 2.286c1.562-.743 2.434-1.375 3.707-.847h.001c1.27.526 1.436 1.579 2.019 3.219h3.232c.582-1.636.75-2.69 2.027-3.222h.001c1.262-.524 2.12.101 3.698.851l2.285-2.286c-.744-1.563-1.375-2.433-.848-3.706.527-1.271 1.588-1.44 3.221-2.021zm-12 2.384c-2.209 0-4-1.791-4-4s1.791-4 4-4 4 1.791 4 4-1.791 4-4 4z"/></svg>
|
After Width: | Height: | Size: 811 B |
70
icons/text.svg
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?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="1024"
|
||||||
|
height="1024"
|
||||||
|
viewBox="0 0 270.93333 270.93334"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="0.92.1 r"
|
||||||
|
sodipodi:docname="TEXT.svg">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.35"
|
||||||
|
inkscape:cx="-185.71429"
|
||||||
|
inkscape:cy="489.32508"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1055"
|
||||||
|
inkscape:window-x="1971"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0" />
|
||||||
|
<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:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,-26.06665)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:339.72497559px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:8.49312496"
|
||||||
|
x="13.554875"
|
||||||
|
y="292.58246"
|
||||||
|
id="text4544"
|
||||||
|
transform="scale(1.0446886,0.95722304)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4542"
|
||||||
|
x="13.554875"
|
||||||
|
y="292.58246"
|
||||||
|
style="stroke-width:8.49312496">A</tspan></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.1 KiB |