From ce58b02c3bfb3c3ae059e01d54392fe73133779c Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Wed, 23 Oct 2013 22:36:35 -0400 Subject: [PATCH] Added more action/menu framework. Added icons resources. --- app/CMakeLists.txt | 1 + app/Icons.h | 46 ++ app/MainWindow.cpp | 68 ++ app/MainWindow.h | 13 + app/icons.qrc | 54 ++ .../16x16/actions/glabels-align-bottom.png | Bin 0 -> 204 bytes .../16x16/actions/glabels-align-hcenter.png | Bin 0 -> 212 bytes .../16x16/actions/glabels-align-left.png | Bin 0 -> 207 bytes .../16x16/actions/glabels-align-right.png | Bin 0 -> 219 bytes app/icons/16x16/actions/glabels-align-top.png | Bin 0 -> 209 bytes .../16x16/actions/glabels-align-vcenter.png | Bin 0 -> 230 bytes app/icons/16x16/actions/glabels-arrow.png | Bin 0 -> 234 bytes app/icons/16x16/actions/glabels-barcode.png | Bin 0 -> 293 bytes app/icons/16x16/actions/glabels-box.png | Bin 0 -> 199 bytes .../16x16/actions/glabels-bucket-fill.png | Bin 0 -> 521 bytes .../16x16/actions/glabels-center-horiz.png | Bin 0 -> 202 bytes .../16x16/actions/glabels-center-vert.png | Bin 0 -> 206 bytes app/icons/16x16/actions/glabels-ellipse.png | Bin 0 -> 376 bytes .../16x16/actions/glabels-flip-horiz.png | Bin 0 -> 183 bytes app/icons/16x16/actions/glabels-flip-vert.png | Bin 0 -> 194 bytes app/icons/16x16/actions/glabels-image.png | Bin 0 -> 485 bytes app/icons/16x16/actions/glabels-line.png | Bin 0 -> 252 bytes app/icons/16x16/actions/glabels-merge.png | Bin 0 -> 459 bytes .../actions/glabels-object-properties.png | Bin 0 -> 395 bytes .../16x16/actions/glabels-order-bottom.png | Bin 0 -> 200 bytes app/icons/16x16/actions/glabels-order-top.png | Bin 0 -> 194 bytes app/icons/16x16/actions/glabels-pencil.png | Bin 0 -> 489 bytes .../16x16/actions/glabels-rotate-left.png | Bin 0 -> 243 bytes .../16x16/actions/glabels-rotate-right.png | Bin 0 -> 241 bytes app/icons/16x16/actions/glabels-text.png | Bin 0 -> 160 bytes app/icons/16x16/apps/glabels.png | Bin 0 -> 669 bytes .../actions/glabels-align-text-bottom.png | Bin 0 -> 481 bytes .../actions/glabels-align-text-middle.png | Bin 0 -> 639 bytes .../24x24/actions/glabels-align-text-top.png | Bin 0 -> 398 bytes app/icons/24x24/actions/glabels-arrow.png | Bin 0 -> 367 bytes app/icons/24x24/actions/glabels-barcode.png | Bin 0 -> 241 bytes app/icons/24x24/actions/glabels-box.png | Bin 0 -> 320 bytes .../24x24/actions/glabels-bucket-fill.png | Bin 0 -> 589 bytes app/icons/24x24/actions/glabels-ellipse.png | Bin 0 -> 744 bytes .../24x24/actions/glabels-hchain-broken.png | Bin 0 -> 325 bytes app/icons/24x24/actions/glabels-hchain.png | Bin 0 -> 302 bytes app/icons/24x24/actions/glabels-image.png | Bin 0 -> 704 bytes app/icons/24x24/actions/glabels-line.png | Bin 0 -> 325 bytes app/icons/24x24/actions/glabels-merge.png | Bin 0 -> 758 bytes .../actions/glabels-object-properties.png | Bin 0 -> 484 bytes app/icons/24x24/actions/glabels-pencil.png | Bin 0 -> 618 bytes app/icons/24x24/actions/glabels-text.png | Bin 0 -> 285 bytes .../24x24/actions/glabels-vchain-broken.png | Bin 0 -> 333 bytes app/icons/24x24/actions/glabels-vchain.png | Bin 0 -> 326 bytes app/icons/24x24/apps/glabels.png | Bin 0 -> 997 bytes app/icons/32x32/apps/glabels.png | Bin 0 -> 1411 bytes app/icons/48x48/apps/glabels.png | Bin 0 -> 2524 bytes app/icons/scalable/apps/glabels.svg | 755 ++++++++++++++++++ 53 files changed, 937 insertions(+) create mode 100644 app/Icons.h create mode 100644 app/icons.qrc create mode 100644 app/icons/16x16/actions/glabels-align-bottom.png create mode 100644 app/icons/16x16/actions/glabels-align-hcenter.png create mode 100644 app/icons/16x16/actions/glabels-align-left.png create mode 100644 app/icons/16x16/actions/glabels-align-right.png create mode 100644 app/icons/16x16/actions/glabels-align-top.png create mode 100644 app/icons/16x16/actions/glabels-align-vcenter.png create mode 100644 app/icons/16x16/actions/glabels-arrow.png create mode 100644 app/icons/16x16/actions/glabels-barcode.png create mode 100644 app/icons/16x16/actions/glabels-box.png create mode 100644 app/icons/16x16/actions/glabels-bucket-fill.png create mode 100644 app/icons/16x16/actions/glabels-center-horiz.png create mode 100644 app/icons/16x16/actions/glabels-center-vert.png create mode 100644 app/icons/16x16/actions/glabels-ellipse.png create mode 100644 app/icons/16x16/actions/glabels-flip-horiz.png create mode 100644 app/icons/16x16/actions/glabels-flip-vert.png create mode 100644 app/icons/16x16/actions/glabels-image.png create mode 100644 app/icons/16x16/actions/glabels-line.png create mode 100644 app/icons/16x16/actions/glabels-merge.png create mode 100644 app/icons/16x16/actions/glabels-object-properties.png create mode 100644 app/icons/16x16/actions/glabels-order-bottom.png create mode 100644 app/icons/16x16/actions/glabels-order-top.png create mode 100644 app/icons/16x16/actions/glabels-pencil.png create mode 100644 app/icons/16x16/actions/glabels-rotate-left.png create mode 100644 app/icons/16x16/actions/glabels-rotate-right.png create mode 100644 app/icons/16x16/actions/glabels-text.png create mode 100644 app/icons/16x16/apps/glabels.png create mode 100644 app/icons/24x24/actions/glabels-align-text-bottom.png create mode 100644 app/icons/24x24/actions/glabels-align-text-middle.png create mode 100644 app/icons/24x24/actions/glabels-align-text-top.png create mode 100644 app/icons/24x24/actions/glabels-arrow.png create mode 100644 app/icons/24x24/actions/glabels-barcode.png create mode 100644 app/icons/24x24/actions/glabels-box.png create mode 100644 app/icons/24x24/actions/glabels-bucket-fill.png create mode 100644 app/icons/24x24/actions/glabels-ellipse.png create mode 100644 app/icons/24x24/actions/glabels-hchain-broken.png create mode 100644 app/icons/24x24/actions/glabels-hchain.png create mode 100644 app/icons/24x24/actions/glabels-image.png create mode 100644 app/icons/24x24/actions/glabels-line.png create mode 100644 app/icons/24x24/actions/glabels-merge.png create mode 100644 app/icons/24x24/actions/glabels-object-properties.png create mode 100644 app/icons/24x24/actions/glabels-pencil.png create mode 100644 app/icons/24x24/actions/glabels-text.png create mode 100644 app/icons/24x24/actions/glabels-vchain-broken.png create mode 100644 app/icons/24x24/actions/glabels-vchain.png create mode 100644 app/icons/24x24/apps/glabels.png create mode 100644 app/icons/32x32/apps/glabels.png create mode 100644 app/icons/48x48/apps/glabels.png create mode 100644 app/icons/scalable/apps/glabels.svg diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 726f178..776ebdf 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -22,6 +22,7 @@ set (glabels_qobject_headers ) set (glabels_resource_files + icons.qrc images.qrc ) diff --git a/app/Icons.h b/app/Icons.h new file mode 100644 index 0000000..a14d0fe --- /dev/null +++ b/app/Icons.h @@ -0,0 +1,46 @@ +/* Icons.h + * + * Copyright (C) 2013 Jim Evins + * + * This file is part of gLabels-qt. + * + * gLabels-qt is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * gLabels-qt 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with gLabels-qt. If not, see . + */ + +#ifndef glabels_Icons_h +#define glabels_Icons_h + +#include + + +namespace gLabels +{ + + namespace Icons + { + + class Arrow : public QIcon + { + public: + Arrow() + { + addFile( ":icons/16x16/actions/glabels-arrow.png" ); + addFile( ":icons/24x24/actions/glabels-arrow.png" ); + } + }; + + } +} + +#endif // glabels_Icons_h diff --git a/app/MainWindow.cpp b/app/MainWindow.cpp index eb90554..9e73eaa 100644 --- a/app/MainWindow.cpp +++ b/app/MainWindow.cpp @@ -25,6 +25,8 @@ #include +#include "Icons.h" + namespace gLabels { @@ -157,6 +159,26 @@ namespace gLabels /* View actions */ + viewMainToolbarAction = new QAction( tr("Main Toolbar"), this ); + viewMainToolbarAction->setCheckable( true ); + viewMainToolbarAction->setStatusTip( tr("Change visibility of main toolbar in current window") ); + connect( viewMainToolbarAction, SIGNAL(triggered()), this, SLOT(viewMainToolbar()) ); + + viewDrawingToolbarAction = new QAction( tr("Drawing Toolbar"), this ); + viewDrawingToolbarAction->setCheckable( true ); + viewDrawingToolbarAction->setStatusTip( tr("Change visibility of drawing toolbar in current window") ); + connect( viewDrawingToolbarAction, SIGNAL(triggered()), this, SLOT(viewDrawingToolbar()) ); + + viewGridAction = new QAction( tr("Grid"), this ); + viewGridAction->setCheckable( true ); + viewGridAction->setStatusTip( tr("Change visibility of the grid in current window") ); + connect( viewGridAction, SIGNAL(triggered()), this, SLOT(viewGrid()) ); + + viewMarkupAction = new QAction( tr("Markup"), this ); + viewMarkupAction->setCheckable( true ); + viewMarkupAction->setStatusTip( tr("Change visibility of markup lines in current window") ); + connect( viewMarkupAction, SIGNAL(triggered()), this, SLOT(viewMarkup()) ); + viewZoomInAction = new QAction( tr("Zoom &In"), this ); viewZoomInAction->setIcon( QIcon::fromTheme( "zoom-in" ) ); viewZoomInAction->setShortcut( QKeySequence::ZoomIn ); @@ -180,6 +202,13 @@ namespace gLabels connect( viewZoomToFitAction, SIGNAL(triggered()), this, SLOT(viewZoomToFit()) ); + /* Object actions */ + objectsArrowModeAction = new QAction( tr("Select Mode"), this ); + objectsArrowModeAction->setIcon( Icons::Arrow() ); + objectsArrowModeAction->setStatusTip( tr("Select, move and modify objects") ); + connect( objectsArrowModeAction, SIGNAL(triggered()), this, SLOT(objectsArrowMode()) ); + + /* Help actions */ helpAboutAction = new QAction( tr("&About..."), this ); helpAboutAction->setIcon( QIcon::fromTheme( "help-about" ) ); @@ -219,11 +248,20 @@ namespace gLabels editMenu->addAction( editPreferencesAction ); viewMenu = menuBar()->addMenu( tr("&View") ); + viewMenu->addAction( viewMainToolbarAction ); + viewMenu->addAction( viewDrawingToolbarAction ); + viewMenu->addSeparator(); + viewMenu->addAction( viewGridAction ); + viewMenu->addAction( viewMarkupAction ); + viewMenu->addSeparator(); viewMenu->addAction( viewZoomInAction ); viewMenu->addAction( viewZoomOutAction ); viewMenu->addAction( viewZoom1to1Action ); viewMenu->addAction( viewZoomToFitAction ); + objectsMenu = menuBar()->addMenu( tr("&Objects") ); + objectsMenu->addAction( objectsArrowModeAction ); + helpMenu = menuBar()->addMenu( tr("&Help") ); helpMenu->addAction( helpAboutAction ); } @@ -337,6 +375,30 @@ namespace gLabels } + void MainWindow::viewMainToolbar() + { + std::cout << "ACTION: edit->Main Toolbar" << std::endl; + } + + + void MainWindow::viewDrawingToolbar() + { + std::cout << "ACTION: edit->Drawing Toolbar" << std::endl; + } + + + void MainWindow::viewGrid() + { + std::cout << "ACTION: edit->Grid" << std::endl; + } + + + void MainWindow::viewMarkup() + { + std::cout << "ACTION: edit->Markup" << std::endl; + } + + void MainWindow::viewZoomIn() { std::cout << "ACTION: edit->Zoom in" << std::endl; @@ -361,6 +423,12 @@ namespace gLabels } + void MainWindow::objectsArrowMode() + { + std::cout << "ACTION: objects->Select Mode" << std::endl; + } + + void MainWindow::helpAbout() { QMessageBox aboutBox( QMessageBox::NoIcon, diff --git a/app/MainWindow.h b/app/MainWindow.h index c4fc2ff..c51e266 100644 --- a/app/MainWindow.h +++ b/app/MainWindow.h @@ -64,11 +64,17 @@ namespace gLabels void editUnSelectAll(); void editPreferences(); + void viewMainToolbar(); + void viewDrawingToolbar(); + void viewGrid(); + void viewMarkup(); void viewZoomIn(); void viewZoomOut(); void viewZoom1to1(); void viewZoomToFit(); + void objectsArrowMode(); + void helpAbout(); @@ -79,6 +85,7 @@ namespace gLabels QMenu *fileMenu; QMenu *editMenu; QMenu *viewMenu; + QMenu *objectsMenu; QMenu *helpMenu; QAction *fileNewAction; @@ -101,11 +108,17 @@ namespace gLabels QAction *editUnSelectAllAction; QAction *editPreferencesAction; + QAction *viewMainToolbarAction; + QAction *viewDrawingToolbarAction; + QAction *viewGridAction; + QAction *viewMarkupAction; QAction *viewZoomInAction; QAction *viewZoomOutAction; QAction *viewZoom1to1Action; QAction *viewZoomToFitAction; + QAction *objectsArrowModeAction; + QAction *helpAboutAction; }; diff --git a/app/icons.qrc b/app/icons.qrc new file mode 100644 index 0000000..fbdc52d --- /dev/null +++ b/app/icons.qrc @@ -0,0 +1,54 @@ + + + + + icons/16x16/actions/glabels-align-bottom.png + icons/16x16/actions/glabels-align-hcenter.png + icons/16x16/actions/glabels-align-left.png + icons/16x16/actions/glabels-align-right.png + icons/16x16/actions/glabels-align-top.png + icons/16x16/actions/glabels-align-vcenter.png + icons/16x16/actions/glabels-arrow.png + icons/16x16/actions/glabels-barcode.png + icons/16x16/actions/glabels-box.png + icons/16x16/actions/glabels-bucket-fill.png + icons/16x16/actions/glabels-center-horiz.png + icons/16x16/actions/glabels-center-vert.png + icons/16x16/actions/glabels-ellipse.png + icons/16x16/actions/glabels-flip-horiz.png + icons/16x16/actions/glabels-flip-vert.png + icons/16x16/actions/glabels-image.png + icons/16x16/actions/glabels-line.png + icons/16x16/actions/glabels-merge.png + icons/16x16/actions/glabels-object-properties.png + icons/16x16/actions/glabels-order-bottom.png + icons/16x16/actions/glabels-order-top.png + icons/16x16/actions/glabels-pencil.png + icons/16x16/actions/glabels-rotate-left.png + icons/16x16/actions/glabels-rotate-right.png + icons/16x16/actions/glabels-text.png + icons/16x16/apps/glabels.png + icons/24x24/actions/glabels-align-text-bottom.png + icons/24x24/actions/glabels-align-text-middle.png + icons/24x24/actions/glabels-align-text-top.png + icons/24x24/actions/glabels-arrow.png + icons/24x24/actions/glabels-barcode.png + icons/24x24/actions/glabels-box.png + icons/24x24/actions/glabels-bucket-fill.png + icons/24x24/actions/glabels-ellipse.png + icons/24x24/actions/glabels-hchain-broken.png + icons/24x24/actions/glabels-hchain.png + icons/24x24/actions/glabels-image.png + icons/24x24/actions/glabels-line.png + icons/24x24/actions/glabels-merge.png + icons/24x24/actions/glabels-object-properties.png + icons/24x24/actions/glabels-pencil.png + icons/24x24/actions/glabels-text.png + icons/24x24/actions/glabels-vchain-broken.png + icons/24x24/actions/glabels-vchain.png + icons/24x24/apps/glabels.png + icons/32x32/apps/glabels.png + icons/48x48/apps/glabels.png + icons/scalable/apps/glabels.svg + + diff --git a/app/icons/16x16/actions/glabels-align-bottom.png b/app/icons/16x16/actions/glabels-align-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..da901bc46076cb5c45d952d9b41d6c8963e5a978 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%P(xbors2B1)+r;B5V#p&dP1p)?-CjR#CiBhXs zCVtlbe1OS+n>cZUz*jzMUWXf6MgBi3Jve{*Kc4!yUz6W5B{8;n&-A$ZHGQw_;rU<7 ru5ce|G;a{}HxbfylNJw9HWp%MIB-BjEXDf@$gK>Xu6{1-oD!M<>&kweOO%OK%_(ipTcA*)r;B5V#p&dP1p)?(KK`G)s+~3V z+j;N$mL)&jcJ;e=%75dTh<>c%7nhQA&%JI!?*)&ebK@O1TaS?83{1OSa7 BN8$hg literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-align-left.png b/app/icons/16x16/actions/glabels-align-left.png new file mode 100644 index 0000000000000000000000000000000000000000..1cdcf9bcde458dd9931b3266f9061446893b4b4c GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%OC+EBUK9w-#!>Eak-aXL9+fq;S2%l`r2>Xoh@ zX5`*=VE*)f5v7|t@{eepGkFk~;9%6CbHHh#V~<2*gvo!KK&#(Eye~yMdVVnXOw4OM v;jxC1r~caQg<2doE!SB~ygPe%wlFbx8i>hyPP@AaXb*#@tDnm{r-UW|Y2-q+ literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-align-right.png b/app/icons/16x16/actions/glabels-align-right.png new file mode 100644 index 0000000000000000000000000000000000000000..2b4872b00481a825a44732685eeeb88bf4fab543 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%P7^LFE5GoVn0r;B5V#p&dP1p)>_6aM$R->+w5 zV{;R8GW!#m-+m~a)28K6x>SLFK+;c;1e;h2pYlh)2JKe%q>Fz(yF}iep5Zau;g5ft z-77YwjThUk1q_28c-OCar1MDn<>&kweOO%P-@^8fFSwNvUPZ!4!i_^&o3j_?DUj7$(wR|79 zM5kzS)5d>mwkQACe2>p{TgJc2wnaam2Ojyi=S%vJ&zI!Sr7ya|&79A`Jx8#jW6h7m zg(h~99@iB1O;lo*cqz{Pf8_+pf5Eno6POw9-VpxJX4I1ow28sf)z4*}Q$iB}A`wd5 literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-align-vcenter.png b/app/icons/16x16/actions/glabels-align-vcenter.png new file mode 100644 index 0000000000000000000000000000000000000000..a51293f093d7aedd13555a23308890e5354793f1 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%Pjvg*M5P@qt;r;B5V#p&b(iHrjs?(ggkvm!st zj5GOf!wdw@^@|kSGGDO$Q9qb^Blg4drS>ikHOkDI_mY%MFZ^4xJ^9Dxdwl287lrBk zQ4hBlE|NHKh%v3;;-AkSW;ApL-sRR&$>y+Wxy!(GvE8_K!-QD{E9Qx7urZ_s$zE5s S^40@d&*16m=d#Wzp$Pz{6iwRz literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-arrow.png b/app/icons/16x16/actions/glabels-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae5f36825ef0b889fba6eb3181a58b8daadd61d GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKlara1^Xc^y$ALoSo-U3d6?3kh+sJt+K&0&=vtn(O zZqB8ht;~@Y4II-R2}vH(HR`OLvmjW+!@|9hv7KXr!9xi~ zqfPw`oXUEt2bgWQWlUqbE4?Mk=$wNszj07V?`xhncCw-I4eIYAlAEJns^`A^;9te~ Y>6l`$$@Ek6flgrXboFyt=akR{0E4Vf-2eap literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-barcode.png b/app/icons/16x16/actions/glabels-barcode.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0e2890a2f8d5ce4df3c722d6f6932cd8eb08b2 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKlZ!!#``~*nOQ6suPZ!6KiaARsZ4_iu6mb0?C)#%I zMiXm5)6Ddet+6U;(+XH4ni}WUG(Q%YCR(5p86nr78o}6bQMkT8B@C jJc}-23l^TR=9u{|&ajn*LFJ!;u4nLc^>bP0l+XkKEMIX! literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-box.png b/app/icons/16x16/actions/glabels-box.png new file mode 100644 index 0000000000000000000000000000000000000000..c141c9d50dea78b38a8de17bf53ea4e0ca84eb40 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%OIhmXzbKTs&d)5S5w;&gI?M8*M*r86ZZB>o93 z{3p)L%q+br&Q0Z`P?}ucqwT#DOS+yXgQt5Onx!3DiQSx*;m1eUk zfH;nGw-P#dc5qs2nM@`!pU(x5AP5AI!C(+pbGT`UqO~TU&yz?bFin$Ar$am*r(Un) z`#wLfuL1mZkw?FfOeP=va=DD_x>T!Gf*|0V<6zr1hGC4H_s5?fm7$b62wUj)`**(Y zi|e{F91f-1?TT&N5{tz|DfL?^^~<*Q7C+8DUIOeybSz+@wZ^h6(&;p#(TLe>My*y0 z-|hmp9>|+qj^x$VPPBz(Hk(Zsi$#{pC7$Q4lMUeZ*?mZ*Qm+9i6bgSMs~oKq59IrY zqnm9yyFg*(o9n^LxUu+?%gIX*4G-kY+r)h9F>S+FWjH727bd_xXgR59Ho$m*00000 LNkvXXu0mjfN@wU* literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-center-horiz.png b/app/icons/16x16/actions/glabels-center-horiz.png new file mode 100644 index 0000000000000000000000000000000000000000..fce3e9098dea5aa3c8167f8ef857e0df990a1111 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G^rrQ8CHYnAtw0tMMiJbhi+FLBGTFiUPLnwtw03iotz45^rtoUp*~hrb7-@KUpY zyAA(&czB*!T$yDo@Ng-2fa@j?HY10h{}+CWI9RU}A=c}5+~T0HjMTgbmt9Q7C&;p$ t&@*&@e3&6{W5Zd8JqaI{y8L2hSa?xy<>&kwKTZVi8BxErFumT0<*Zy znEx3Y7{oXT?{+w$dg6f0svq{u%!h?lwpnWGO?JKXL;jSybP0l+XkKIeb9% literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-ellipse.png b/app/icons/16x16/actions/glabels-ellipse.png new file mode 100644 index 0000000000000000000000000000000000000000..9652562e0d3d9b6c8bb7a9db0e2fa9f3a7712bf7 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%O6m!<5V4g&)ttEY=&h{frxlNECgIf%6F59(vF z+^pF&W9=NJ#G*wVU0ghim@Icn9y!7ic}#?9@2QhZ6{9)inw1?m92a)YQG7Y;&Y7um zB7!+SOiF+E_y7NQ`@i#@6HtA?I)h>2sZJ~H)QPjZ6oQR{W`t~FS&|)X^uboLy|2gF zoo%0b?CndfWlC*jZ$%a6$-mFA75V@6Lf!38S0ow!FkL@zD`cx!!RuRMcdwrgslVEl zU?qHJx^(bO$!8&J*&bZYH;Ruqe5Hh2P~p*qo7p};SD!!Prda;wjBq3Cf$QI0)f^A& zlr-8M_mdKI;Vst08DtAHvj+t literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-flip-horiz.png b/app/icons/16x16/actions/glabels-flip-horiz.png new file mode 100644 index 0000000000000000000000000000000000000000..e477068583952fdd4288b9d51250991fb915eb79 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKTasBqY;V@ui$Eb4PZ!6KiaE&%609!{%xP?VXfOBk ze}HL3qfW>{RvWgMhE)@fE}bdTlf>ckfm7~w;see}Rj+n3+!WY!h=EO`t2NL;je+6D XU#*pA;bP0l+XkKgEctz literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-flip-vert.png b/app/icons/16x16/actions/glabels-flip-vert.png new file mode 100644 index 0000000000000000000000000000000000000000..93027c937def1cdc614f01abfeba83b3868e0bc6 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKTasDAP$EHM7f{IG)5S5QVoq|x0>cTZ2?;;=m!7=F zb67<(sc*?gPNCa#BAEXf8yLhiT)OeYrTKq`30s2F)gyt-9p(&TxhEQyWGt~zG&Bg9 iG36q!qPKA%1B2vsxr1*na~%X4&EV>31%X0K2s-r>UKt3%Yq=l9%@^OcDt!4tSxFk8+5CkPm zzW@eMbpY&Fxc*Wi#%6`h06>T+-5S8@MHWmbrE~EA6=Ivt^m6%?NW@FM-WsTR`!sVz zJm~nSa;?@cUa#A(g*vpiN^p_@^ga!!0%~n^-9Xb^Xqv*$l)y06(Sf!(L<7zN=`iTA zW5BP%P!$Xhut%>3$d1<`BQu0Np&ktBmQ>6NS()w0I}G$8lluUQfg<6Duu3SVV&cy< bW}jn!x@K;K>bqBS00000NkvXXu0mjf!>-Kq literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-line.png b/app/icons/16x16/actions/glabels-line.png new file mode 100644 index 0000000000000000000000000000000000000000..cf0e040657d01983025057a3adc9e2ff776177f3 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkEQcFTt^6?^t%~#p(@e&Ovn_9h z=co!)FurKN81p~W@x!`n384zs{!)LmJj$;&t;ucLK6Vm2~)oS literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-merge.png b/app/icons/16x16/actions/glabels-merge.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3bfe8b4f84d5338f372133b49d74d15c11d917 GIT binary patch literal 459 zcmV;+0W|)JP)mk#YHEFDmeH6;saFF zY^6&PD%OIw7-;Q61MIs68hD87CP5NH*r#da^ zcUn@@v`7I3*Z@u{l?nil_jkNE>eQcWxQ-7%5CoC0i{bG;ULWwh4u}|CkwA7`mU4xV z`wN<`C%CyfK%dK@>uGH31)-);VkxAwnayO!9!{|=m%@4pjW(X^-~}-PktC2RpkRMC z05A*#!!Sm#;5W9ZRyWZyYwRDMPqeF8EGpsZTG-T+3d9uv%H{G{fqXvSHBD0t3e1~W z?d2ZHG|fqaNI>)iX5to3(-~yQ===yF0E7}YYEO%-WUo2e+xky>Mem6HaP0-stEYbv zP)7;?TwG>AsFcha$7i=;YGt2$08&i)C_|P{AK%xnh?eg|qF?|3002ovPDHLkV1hB2 Bz!d-h literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-object-properties.png b/app/icons/16x16/actions/glabels-object-properties.png new file mode 100644 index 0000000000000000000000000000000000000000..ab42b19cb14be15fae8dc86ef7af1b89554477f5 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G^tAk28_ZrvZCAbW|YuPgg?E>R{yZJ|nYRt5$}2~QWt5R21OCvWsR;vmqrpI0&T zNQtN7#{*_&O|2)g5>+ea^iP<+L;M8yk`JP9a(vR0AK#3O*kRX@z_pt923Ph&)s)Ao zJ9%{8oO}2G?U^@y2h0we2c~j|CL91TBb|Zi)S#N`DJbHoSl12>dk%sGn;xW`aCah`S`T5@3F;?ef}b@ n74zI9r(KhbGXK8T{FZ)pM$)slymK}KgN?z{)z4*}Q$iB}R1>9b literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-order-bottom.png b/app/icons/16x16/actions/glabels-order-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ed2d009bf5b8a9f128ba67c2a8b33a5ca85c03 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%OU{AGAaEKn%a)5S5w;&gJt0s#Y|3IF{)?70=C z4>j3r=vp7Oy}1ztI)n5Bau~QL)~RMNIA2#5<~eD!)A-A0CO-!5+)X?V-^8w1_k?^u lWMI%R@kq;&6Arly488aGOgW~W@Bv!D;OXk;vd$@?2>_-GJthDE literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-order-top.png b/app/icons/16x16/actions/glabels-order-top.png new file mode 100644 index 0000000000000000000000000000000000000000..0884bc1e6ebdc7f90c6ed3f0f390baff44ce0ea3 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kweOO%P<(zLO15>UwB)5S5w;&gJt0s(_Z0{{Kj)QQCy z#rFGrc%?Jh`tSh|a9Jtd*2t)%(q`qyEODsG=0VfyYi}3q7cV$w9LbjOk?-+?UN<+T f#SbP0l+XkK8Rk7y literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-pencil.png b/app/icons/16x16/actions/glabels-pencil.png new file mode 100644 index 0000000000000000000000000000000000000000..83a14936e5000385daa5a2e8531e75e905cfb67a GIT binary patch literal 489 zcmVvvpfdj~|5X0NdfTt-n&tb}7oNlO@I0UA4-cHLDqsWkuWKu1W=gUBz8GuVw)!v=;Risxh_?XGVQ*JNGO|qN=XnZ)( zmzW!VK!GIVDYsM9+5zy?%nB}5RRdqr+cXwi+4!!bIBOV9t^vHngkHaijiwUOW-&GF z7U`usA|8(mKwNi}UND-#rD>Y`+x`|xRxlh61Nf(tYbS=?7iWSZyZipixB!IjR-ApKHxvA{*eH-MQ(1qTrj~AQv^m<}E$`|^ z69n4bW&DsY0#JXmpC`d*0RHG~@{hZp`Ge!*6YMq{mr5M0d|Ku1&|~iTnu32j*crg* z10B8aD%Of>oV6Y%Lxalw(EO=sz}pWg(qB)hbT%+E5m35(kB;~UiJtB*0SK+3PUb%( f03k~j$!x(dk?xk4i>q%H00000NkvXXu0mjf=CR{v literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-rotate-left.png b/app/icons/16x16/actions/glabels-rotate-left.png new file mode 100644 index 0000000000000000000000000000000000000000..157884e5af26eb87b5d0396104aa7dd0cb02db8e GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKTauZ{+)>Xx1Sr(t>EaktF()};fzc2DRcvZDMM^w8 zJkMNaetLB@xh-5@?r_Wkwxx+PQpD%DBt=h1X4tg3+`zzKiI5S?vl=$GmdU9Lb0p@v zUl1^1mH>h~3)v3vD83P5yVIz4`oMt?{X)zMMXFOI6hNGLLd+5yBoBBjaf@jXjBQv| c*=PrJ`UQpW*EGNX2D*j8)78&qol`;+02+`@)c^nh literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-rotate-right.png b/app/icons/16x16/actions/glabels-rotate-right.png new file mode 100644 index 0000000000000000000000000000000000000000..cc5dc49a13a05655be22cf2d8ffa6de308cc474e GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKTauYe@9mt_IY6O0PZ!6KiaE&%5)2>YXC8KGVJl{1 zV-wt?6}PwI%!gM;lWWWlZIH6m+u)Ei-(|W=ih~w2^I<-feU@RN7IWqwXDD2!BXssa z!!ygTe~DWM4f7A8#V literal 0 HcmV?d00001 diff --git a/app/icons/16x16/actions/glabels-text.png b/app/icons/16x16/actions/glabels-text.png new file mode 100644 index 0000000000000000000000000000000000000000..c539bf1ece1cffa4d5fc4cebcff1d35b9cf62f36 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4G&t}!%lNpmCvMK}vQ zB8wRqxCKF&u|6e!B2bXM#M9T6{Sqe^qloToo02x5kglhTV@SoEW#iU zFnM4vX6MOpmx1Si%c{=BY!@yvxUq3PuIFH6V4Kd#`6|3%Hc%sjr>mdKI;Vst0ObY*F7Wpd{G_b&hd03mcmSaefw zb#h~60BCe{a5^t9YH4k4VPh_Bb#rNBXklz@E@OIWX5(G}00GTOL_t(IjkS}(OB+EL z#ox?sHroxGY9d9dtm*b3O6nq1N}}+fxt4Krg`@^$>as^pwA$g?fr0 zfgB1=auI}dt!Nf1D(0>$dr8qh+gN=E{J3W1|_# zKajQ#8|xoFA63K75Y9OOAfL}K#A30jz&PFC9DJlZb5`Rk-xa4ndGg3l&-0dYxf}}x zR4SEiUDxk2cH!68R&YoDj;f_%_Vq_Jn@wh#rd=wP#*4+`Q2-Ew4P%V8+ike6i<4su z{ZSWolXaeqCizuv|6q6umn_+B*?Oi$IstFQ4|nDE{oEO*9w9FQ53~4 zK)GDb*6a1jOWL0c!TPsc*ZpA_#=m2{u6q83{|@*KQO3&q%PC~`00000NkvXXu0mjf Dova#k literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/glabels-align-text-bottom.png b/app/icons/24x24/actions/glabels-align-text-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..5dbc037ff28917f5d85c9d948565c04a3a172a4a GIT binary patch literal 481 zcmV<70UrK|P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS_ z6e&6Lm^L-x|*qr}%L^mPy+Z}BR{C$Cl zNN{2(rJxfJ04hj=Qfe+pMAVP1$g-@$)b(-ZzCt-7fy}b3Jb;ICxt#Ogj&hl>Z`oWX zv?wod0TDquoj%lw7m*1D#Ztj0B14xYDx{psMb%u&BHy{MH;l9MA_M|r1`~mZK}=v` z5D|z7%)Za)_jD3wauolZx4f~}ox$9;0mwP?DQ(0u2#RIvFQ7%XPyz^PWQ z%})gy^@eer&q4uU&x6Md9@!8R9`B#0vEd;eW6Y?JrrR>+R+LO0*xl~?mlL$x&xptO zS56R(Mx17|Woij+q=T5Q4kj2BPr#nHw5!Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS_ z6cQk-I-_0y00I9=L_t(Y$K_Q^Z&FbZ{)WET*~X-7SV(UD1N{x^(p=U?U6C|yisd1x zhJ?FB3C1lu{{XD58>2QZ>eWO|x8&ZCNEgN!C@^#AaX~Mo0_EPKD^D`XoRgW%>dl}j(;=K|OVwz-o@f&hq8P$H018DJvA{>vyfGQeYq8Ta5i4RfqT zh7qf_+sCsiumNn&s$gkpvF5ssc%VVM>>Qk7kV`|9nwr(xm8+RbrE)JCjb8ux>qqJI zd0}La>+-YbCsSE;^VSV)JxG9v(C_!5R3AzSL=+m%_e?&YFOKY@mwoV450`F_aro^J zd#_$kr>SAY&~6`3%)Z$?8sl;#vQFpwz6{rO=bHl}(tg+U*c@bYX{ZY@@Xk&;2?`NP z#d5F!pX|@Ld;iW515cDv1Cc@S)wNZ;ee*8(j~0tvL#NZZ(74$=+Kfcj?QnPn^}6FL Zz;8p+QL70(Y)*O%l>?NMQuIzUhMMZdI0z@7FO=INqba4#vIR19B zqt{^vk+%Owu2u1P=09*uDe71g%^TRAHz{|aNY#WVLS5aneEk=!oTo7LTm8Ypi%T@L z3UxwT{(N|FmglqF|C;=U|9Y#v&apfC1WAf-Ses%Zvpat7_Ek^vX01BCnmZ#SfW@gv zB!FXKgNldKl2fd!p9+~@-~K9^Z&$4PxzBfQ9Q@~~e)661_xF->c$*^X4m>c<{5z?~ zUHH3fbIGh#mlyDJH;Axu33^Cot8J>RuRQH`&BpA^4ySJ)R@hk-%sE`Kv0`2E1SX4B z#TW9nPx|@i6I;J!nd9XJ7xiC=eiWMCah}~x4j5Prp00i_>zopr0CrHMDgXcg literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/glabels-arrow.png b/app/icons/24x24/actions/glabels-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0e26af77b6b1159ee30fd7801c24e11ae6c2e5 GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKlaon;Q@Zlp8=%l1PZ!6KiaBqu?)GAKlsNkFewC*~ zK+c|tUOJDMBX0jnTKV?KtxM@2I9UX17`eFvT_%WL(J0g@YwAurdF)Kq<3?s z&$d1kpXxgOcW}0v>k0p<4`trIaARN;kI3Z`T6BIxQ&@0AgZCQm7|#!~o2ChU5}hDp z#5F-Ah?QfKLmT(~&zQ7Jdvo6$IncmdqEaP% zx~ulxg6GBmcSm?JW=!AH%6{j8g!Bw~aRckLnt)HqJa4sDSsm5Aw~TR$>7H4;Ee`E{ z)bpz_XNlV1kf?|wO^a5^_*eL|o)CF%xaZz_!H~#<`~StsXDNCgzdi9$7%&_dJYD@< J);T3K0RTr_k*xp# literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/glabels-barcode.png b/app/icons/24x24/actions/glabels-barcode.png new file mode 100644 index 0000000000000000000000000000000000000000..9699c8dd58d6e9ea9fec19aa69b8ba1b04133085 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%caKYZ?lYt_f1s;*b z3=G_YAk0{w5<>&kwKlatAu`+4^CwLqadPZ!6KiaBqmY~*S%;BlGncXq|% z|Nm>PUWrZTdYUmuN9)V9-IEsgmvNX}V|eh+Tl>I`SC6hgX-F+kSe3#ZW6kze-^+EL zwk7Mjxgv~fP6Vq)Ke)vi|6zsI0%joE#~|^fCiie;ck4Bq@audBmNjI5RZEhsT(?fP f;qS9~^IxzO?UKxx5XiRy=n@7`S3j3^P6<>&kweOGHfHqGTdtK2Year;B5V$MLsQ{kfVPMB43(#Y7!5 z+cPe2o9yB;{e?lSlG3igtvz9?tr}+gG8gM!;n+0k0Q+GBoH$Hy`oCv>cLI7O4zNFWSM&!m$tkOc;p{?1*6D3jzl1QuvIf3c=dO#uTZnBBZzTPnbfRKo~ZV zbRz-5Fo+0_O$M@At&$=TgDwsk$7+v-vtbRZCfVI;{hD*&p8I|0#l3J?a37G^9tZ?D zy~ECpqw@wDhVedjuk2gel}hErb_KOsO#n%!(~tJ00^7D#;0GX%Q&sh|2lDR0-50xY9r=R* zVHlnQzBrCUB9Xu_40^pDyt$A{kz8ND41D@$i^4Dj_-dNwYCfN5 zGMV6c-YmHSyaL{S(2jqPubx?`Ri$(X@E|;6cL%kgfOgrF#c)!kWExb;;t^;Vm z6W}^+m9aQ^Yrl>_@Mo@pxpSAm=S b$Kk_ID!IwIC@mWz00000NkvXXu0mjfnD+#g literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/glabels-ellipse.png b/app/icons/24x24/actions/glabels-ellipse.png new file mode 100644 index 0000000000000000000000000000000000000000..12f0468fc4414a1fd4289079ee22137bdc78196e GIT binary patch literal 744 zcmVP)Hk(b@?Y4;3YV8Nwr9J6VlGwU{7J%H`-Q?xxp=lb{9afe?ON2sU-S0kd zBNc)I;3?pCI!n3Ibd0*%5-LiE$jOGUD=<8MfY<%Abod?splRALa0>Whh9CgAy&e~L zI~pl3>D%&(Zw9OJ-Frn(&s%^IpcYt3M$iSccs(v&JaU*W)alEM3=9T|MAn`FO-7r= zSWs0}AC@{xxYKc-LdSw>g6gW{_TU z8A^`bZfD~sXzTBY{R*1~R}>37_tfiZmJv50AXuHAn#qZM8v~0-DS9C^R>R%8`rX)_ zi4?`-@zM45AIvV_PAf%|p-x?#1H@)UehKj0Kam!J;oN&5w%MSS0b>BcfDcFZEz{r& zYd$KECj74f6F~3ZgSHIp1rCkRM7eZk-Za7Wn^C5w=K-F{Jqbj&^8W}3ug4{V0iReN zVapv1_=MNv5;EtX01t5Ze*qQ9aTkDSYi$+-{?0#u2mGC)t+iPP*1?+qx7l0o0v;Ox zlI?C8xm%ty{onvxklz-UoX{-U=X0`KdVq0Y0~kv6MblS4P$-8oE~8dti^qV^z~c7( aYxoVw#^h6s!*nMA0000|gW!U_%O``R3p^r= z85p>QK$!8;-MT+OLG}_)Usv{vJVFd+ymx>9`VJJj-rONmD{*#E^{fpT%>WRZ1zEk%Zeda1wAKyF;kqRciPBjxp2k2>nAmr3bd_O zU#Y|2=fQVu`6K7VGiL=o)fpRR-oNIk5-YP_kj2};_}S;kmgC`f!Dv^la9FEvF)_k49U!0j33(dr7rzr;aBr%zWq+) RzdO)(44$rjF6*2UngB2jgBSn+ literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/glabels-hchain.png b/app/icons/24x24/actions/glabels-hchain.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc2eedcacf36ced3749e623c07dd9c813823b29 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^5|gW!U_%O``R3p^r= z85p>QK$!8;-MT+OLG}_)Usv{vJVLBG`ul2|m4QOLJzX3_D&{07EHF%Pd1hd^@z3$4 zAMWqBPg&V&JYz=0KX(@wgD+pd8ttk0$mDwX-(Pl#uI}!KQZs>4-@kn`TCsAak%YAL z;uW^l-*lSSua|FYmH=tXzq{+Ly|6I1>yM+|)BjJbJ>Hblxn+wa}0^Cu~WJ9bwe zcq%C&Au-Rcw(DU~2kVM`?jH}fa*JoaZm#_N%;?Mv!`6dm&Ir9bwcKCcu;%YCVP(FA oeNOz1+qQ*?7|vR*G>e(xp+&>v+dL~)1HHlE>FVdQ&MBb@0N=rVZ2$lO literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/glabels-image.png b/app/icons/24x24/actions/glabels-image.png new file mode 100644 index 0000000000000000000000000000000000000000..093c8ad9bc827c347e1f6862bed3f93d2f7e61b1 GIT binary patch literal 704 zcmV;x0zdtUP)Lo zK~zY`)s;_Z6G0Tlf3v$uv-#H~1TBIwN-5GqP!bVEA<$#N3PLLg77yydgI*F(dJsWK zMbx7?1q7=nQP68HJvE9b^&ld36-5x@KTKL<#zT|sZn8-i41xp0EN|a@-}~O1Hv|9s z5SDK_SYRclqSQ63@#Nia0|772gpo9(4VqQ$Z-8!1hXFWs&oQtlP*>bW)C;`xyK^Y6 zCNm85% zT zn{>42T41>z0ohVCzwm~ow_jNK^?SoQv;jpH+uCo)6OTvbnaWOiWjQTdx2xkU7#VqS zX_p*1;*}SkrDR}Im9k|gYx<>uEoMd3At6UD>zqD3hN>uNng9g(#3FO=_H;#a=h|oX zP5Ky)dGHP?=mCwZXP=Y1nc{r%iFr&-g3V(-d91X9aKwwpBT$sJncr5~Q2O=v2U%^_ zSgAMh>1w;kc7m34e*A0@&{c#Gu6iQ3brHa((n`>En+E-wYw%9sfBIxPT@|s`D-<0N mK^3T33ECZ29}qzesQm$P7R{m3`S0=o0000<>&kwKlat9vHt)o>oj{>Wo-U3d6?5KRHOxEYAky-X-(aFf zhK7bE%mTGwyc$MPxm z^45b=#WUC%Za>*@RH@$bTEeTa!)AB)7amzzD$i^${=v5F$4T?6FOoUt?BZ10we`!P z%KD~#=j0FFHgWzM_Q~d=fT`&Rv#Z*ns`6O|T<1P_t;*IEwhQ|AGyLGo`3pLmF3(*s z@t>mLhf4`<_dO~y1;V`7{c(wYXl!fka$x8DgqLLzGRhB@9<+&`f2w!uFJ|WVo_k9_ SzFG+M9fPNOqQ1Z$0$XQ%+j^4C43jOL!|NUbLVf zj1|IF+x{AUpz&l;cuaUcem zYAsA$panFQbp!h{49EcH)n*hO0R~k-T0ljIf^z;4kmYh&0@AUoJyijW1LuH5z@Z4E z>^qlIMg_PJ6oJ%nH87NYRxX!WSXl5kUOs<8E|;e?G0ytNCh1dI>Q;kNX|#PLq3(+) zMLtp#XMYWZ0Y(Zmy*sK{0bmB$0IER!Zw#<^D!h5OOgfz=U&ynv@`cICao#Rg7|IV( zw`_#axi@{cuQrv9>LOquG!rxvAq)@(LW?0Z1B3}i5;UXDU>5ie>;RU^g4?08ivjKd zUst!u59JuU^9aXra6O6VdA)*L3|T9vbTt8|8^E);b>loji*e9sa@b5KNQDpp7ZjtK zV&(n;kPRyDzcF|^8@zN9Sy8sA($w?;q_mixx{MG;m*YN}6x3_2W7h2RVQCG^`iUlv zUW%$pmViwl>od^AHdD99&~zJ3Kbo38ndE#1dTfhNpI0&B6--0#C;wqG;C}~Bb&h&n zCz*8dTGx=?Fv*c8NGTCQP^~p1d(CHJ?Eq(tt`=C%5I580a|zJ)`t79fQ2{Vfs*%b5 z0JaY2QFRWdd6h)*>AwM3{ut-d#T27AcX|CPLvAp`nX?Y5q)s6l@5g_`uff6kJm$dO zv8UbEFrIy#d)IwF4StXZ@K{x15znl1D7Dmim2M`bAPv3m>>dfwEolh^#~5SzAB+as?}7sZ*qsLPSatdC&7aeBZYVqtVEIgCJnot5IL+ z<|a4?+J?jh?{qp0do=)-TAzh9xHX+H3<<+9<(Mb>e?>0qqLpG3wMZ#tHE@qDoEF}J zHkZxSU@#cWVa zXh5$n*S7#aPpY&bN%~RJEVwi8=MlM`vG(Ma4B#l4Q+Wm7&4|>D5AvpF{I4P!-vO{z aB=TQpqL?jS#OHAU0000k*V^nj8?>zhfc!0`k4Wf#ooGNCg5hfncQ_m-{bZ8PjvYvDkOD)TzYxOf7Vl{l;}cM`Dqxpj1!-%dL8~hS(c^8qM1d_K|EopiNi`hF(K(17! zDs9KtwU<>&kwKlaoooXz$zE#z3J}o-U3d6?5KR*~@jvK*H^zd*Ow% zRh(VTk3@G?KID7X^eD;tWx^4m-^ni)-C%AsiN8E~$)1JJXYW+q!t;1lKTos@`x?Xk zW9AVpRz8NFqB0w~h1mmjxgSTzIPEWDU(9xJlgUe&tLrQh`==f^j16YB?7En4kgkHzV$-p$`R>&vvvQ;st^)8eK_z1uveM(2TTKriF# bpUUqlA86#6)eEfxx|+e$)z4*}Q$iB}qVH~K literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/glabels-vchain-broken.png b/app/icons/24x24/actions/glabels-vchain-broken.png new file mode 100644 index 0000000000000000000000000000000000000000..8ef1363ce98d44add645aa5f74b3bd69f7342b66 GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^oIotW!3HEXq_67%DYhhUcNd2LAh=-f^2s121s;*b z3=G^tAk28_ZrvZCAbW|YuPggS9w7#E-T!^B>wrSHJY5_^D&}0B?8wz@AmF;+nNP8T z$MHqz5_OG7zIVhI-gDaijmc?`lj0<~1Fj1#?#{U4qWyN0Jd!)5sI0Xt|nBLS-V|8(!i7NoM_bRa-sjS(VHd&y^?nAPHYlpSdhD3S~ESo^ln7^YM*1FBCdXa#Fd0}QqR||&EWjOF4N($L32^2 zf1pT2@2O24r*G^$cS6Ll@A22!WxRh`X3op)?J}6XYFC1U$d+pyhXrD~ zJLmcI-e!-2K#?^e=e@q_q#lkeOM0$2@xiKH1`{{9ziw|m(U4hH;+3&>zo%16bcRHm zz>9yIy}5la3o}f3p3dNK`<_`)-L6TSHp*7b^a(GNvEIl0*O+@PYxUC(7U_d&BB_yw zqE82XxOD$Y3X8huqiilAIhL6}bJn`f@Q#f)>|@??tz!{K?Da^EKfm84bY*F7Wpd{G_b&hd03mcmSaefw zb#h~60BCe{a5^t9YH4k4VPh_Bb#rNBXklz@E@OIWX5(G}00R|CL_t(YiRG0`XcJKs zhW~pf8S`@5#AeL28pRh?6D%zhA1Fq|w;(7Higl$TB0|-bigYh7M5rKz(uGj8o9afX zx`>F?wpQx{Ew&J(qDDK3ohF%NX08jJnAE1WMOPj;%-lQoobR0fz+5oKFcWWV1f9w` ziW%7X`h_RgE4w~j+ELaM4vDVG&Q2Q;-d5t-zGlz4O>as$1^ zOOC|T*;7-AE0Cz8qhqZg2nQ*pB!6GeW=ZABnte`dnnq(^p<2pQ2Tor+(bm@HHw@!w zU0q$#IS|HJZqeDu{@m;FagN|4hc_LoF!xFGqKGH*{Uk z$g+I7zP|qSM1TT`5{bl|Y&MHTB7x!I;haZb+(D^5i&!j%jMWd`;f1d2@OV531Oj|T zMMXnvYwMLi0vKZ;gn;8XP)fmZ9HOrySh2{1)R(vDe@{@m{aEfBV+<~r3!*4eNs^8< zH#hH}6ktk{?;i&rVPWl7XwG@a@P0@OR^|Yjrom>jK@>%}-EJxfLQ7LqQ^BvJV917H zfKm!dDF`8;l)}R4$i$=QA5^e$-x-XKjzU#cjE#+fF@{Ja0##L^C<=I@u{s-NMqfhwve$AesD(($Z3RyKpU(%L=P@!e0zycxFo(mDE39Y-W^%?D;_*0E?`%Lx*?c&i zPPpA}SgqEagr=L){_LC-1?akNSS%I@f&f7fAW0H}!C--8`H9DydC3$7w70k49vT|5 znbqXWHU53P6oz2{00ssI`a+@5ub6xyA;b?L_*-eyvnXTi<%EELVKcgu|1ZFI%ur~C Tn#aPx00000NkvXXu0mjf;oi5d literal 0 HcmV?d00001 diff --git a/app/icons/32x32/apps/glabels.png b/app/icons/32x32/apps/glabels.png new file mode 100644 index 0000000000000000000000000000000000000000..9c69e2c80335f1539448a4d7008174306514cbf3 GIT binary patch literal 1411 zcmV-}1$_F6P)bY*F7Wpd{G_b&hd03mcmSaefw zb#h~60BCe{a5^t9YH4k4VPh_Bb#rNBXklz@E@OIWX5(G}00gs1L_t(oh3%J5Y!p=- z$G`8*&YRsGW_NbC6;}Qv?b3ElfJ;NEB-9{UDu@YQj1hwxBPAY)2gAXb8WUqGaPVMD zNQ|Nv5;XCEhES1eh^2?}$J8R(ZIPmNL6%*+-I;ka-FY5xCoL_og{EHkB`hSsn=eOiYzaRTW`T~PWBt(m-9PV$3QsmK0IzQeZF~9Y9Y>zHI2k;9 z=~yG#iZFmTE7?ou17L|>y>A1l4dVQHlm@v^=3-r?dmk9!wawa-TibTk4rvjLELwz- zNC`G0=N1g0N)PV~MicUlSPX;h?HF3FWKCo8-30-7WwYAYP*+pCi1s3sejiqP5I0nQ z;oX&)+z5-hI~LI40l2)M3`hSlrVv^3W)w(^(3EgQf7LG6|o z4@7%IF19;G+~-148uS^mqp?FZ>X+{!OW&GJjM~KP9PYnMyXT+r4*W`L6&8N z!(k+o$*`)b$GW<@)>aHKB^z*E7o2l%44nEBO>36J%3lGu3=CytG`8*r=X@GCV+^t^ zLs1kYlgSWc?3+V}4#{%{pp-(ABuJ73pU;QCubf5A`Fvh* z!!QsC1fc6WVzC$)V_30bMO>1kFJ_A~qX=Es^@6La3dWcR6bvdTS$R;V;+nk#Z7;ot zXfz7jwqaQo48y?Ht5=aqrJ!jV0H9DPU}9o|aL!-o?Cktx@7}$q?+PG<@T%UnZ5W2( zy@nDcFm7DN$rC>z(fle5N5at15Nz9qs;Y=YB1j|>;GCmaETUK}A{vb%9*+Y685kJY z51_fC3;@97P;QJU zrReMHlL#SXYPWR9j))KfNs=JTw`!-5`wQQG{W)5;?FQ2m7#|-8V+@f<#0zfQHZqy% zA3{}Cq3ims3`)`rVVd;{%BCm^2qADB2l<=Vu<7|dSXRFt01yZSplKQ+kq8)Lo={B{ zFCm2ILz(=<`_Xai#LddRYjU@!>3-w#SDN~IDk%kr{T9#apaC`$SH zy#a&}kR%C|QuzIT#9}e8C@H1W0+p>ipT)oDv*HZ&_V#|y7;6j!0-kWp=J@utI|VNT zxUMTMT)6P_3_rKG?}U(Q02=|!s$36X0>Cdqh{3x8EVRwbf5Ah5hX4;^{{n+`^+qIc RgmeG^002ovPDHLkV1n5uZ0`U7 literal 0 HcmV?d00001 diff --git a/app/icons/48x48/apps/glabels.png b/app/icons/48x48/apps/glabels.png new file mode 100644 index 0000000000000000000000000000000000000000..9058e057e418227cf46396366df35487cc6fb83b GIT binary patch literal 2524 zcmV<22_yE2P)bY*F7Wpd{G_b&hd03mcmSaefw zb#h~60BCe{a5^t9YH4k4VPh_Bb#rNBXklz@E@OIWX5(G}00|69L_t(&f$f=lj9g_E zz<=Mpb072Copv8Aw6&!c+U@R^VgcK&P0P|+~?o{XXklm?(6f9ojc5Iceh=3w}ga~oP6Kh zx%WHgch319cScAl`7n!esSQ4GvoM4ZVy?y$mofu8w>E6hRQ08ZV#JHSb*AjfyMOU= z_Rws`ykr3P^u)F=zI@ql9^Q0c*nIscgD3yO_sr2k!E-k~`%2+o?|0lwRzjMlJoUgW zJHzJb6eN=<$ue7Vp{UT+ugqrLO9F8BO|eg}_}Ep8+A=XnCLx(*z;Vc19!O?2A3}5F z^HJkD0 zH3RqD81Ib6%=OKQ0ih^^Si^tBNZv+q;g$3`BV{iXd1|&c<`qEK#rJ!<*BGj*QA+<8 z-!I{mentOliyU8iPdxYg!NP29%v%ZFwJot+2yOc{U8@!Fu|`e;&^J)x_`tEUtLsnB zg`If=2n+w=&E1`vrWusRPT{*2sjSC4!*&Ve-d`RZ$%ch##oya${p*j=~Ty~ z-v>b7*)k(J#}jVoiMg^hF91Rl4{cbtS~bluzcAhA;8(LZ_CW+dx)zU1+_w0FT(sJFLQ({)`1h(@E;Z9kn(SNq{` zxY}1t_1o(@SE$iw3_Eug&(4v~dz>07+o6#0>|vZ3I}bU_pMzjvd~-06g=| zGiEp(KDcDbl6Fng2#)YUyKv#c>b=2<)-GE@QPkG%>(>f^V(Q<(c=SgLLc4X>Q(rWr ziO*L85KpJm=KlTre`{IR1AF%DIWwmKK-;oq%hq&tbu~GTQ|J6-B81>iFZ9x}>Pi|L z8?p0)c;yV4g2y`}J{z~)DYkCEwKV`fckUdozWOT7&CRzD4i4V@^wUp&efRF&`)3L; z?Hmw7D8*utbUMx0*jTj#etb_~3&N9u-0ynGRw`B@~TD>oOpOK>9wJ(Q{n=sfTciBk0z0(y0NG zLoTbY-NNE!E30EgB9Uqaq?F`xISj)f6bfOQCbn%Or6d-Mv2^KD!}GisckI~F0gS$H zfWTQ8FRR)N2qDOg4bj}v3?UuWY$UvR9qzlsoXZ?x`__B0EUS9Is;X$3hT}Mljg8^^ zKDk_uL?VH%>qsd%efl)1REpNtRx+8)Wu2X!j|m}mODQMa@TLU_G8X{E<8eICtGkv> zC24L-;1yE%j)jv?@wcOA_+-zQSbp^yeBZ~mZ7j>evaIUdDijLj^LY*&I6x>ALQxc? zlz5(p>$*XpL?V&c)!p6wxDcXWO6k9^3N@Hiy7qqkG_HSX8O1Q3z z>$>>9Pbd^Z*L8#t7=}SO97fl5R8<9_rKJVaGzo{pb>rvrd2#sg;Z~qg2w_jm!ju4| z(s{7ta=G*7Kx*KByi<1h$Dub_d(9d;H}0fAnZ&XzN~KbDS@Rtewts~L+#B19q) zVzC&}XcS%7tCM#!d#b7ukH_l(6h%=14bJ}&Y({e+o6X`lP8GniEK)-QtZMJ1bMyU- zjEv&CE{dXHnkI%})M>DnOn2M~0BVDzs;a^i=eCQ=Kp>5cjW~{jloHFb&~=^WMXR`B z+pg*_grQIfP17(<6}j3I1ZlY zRimV78oI8Z7wL)7o+|p2*$euWIWXn1f7-*G<2b%y7}UOz1#+R!7y2%6uJ&{7y+P~y zegH7D63XZE=Z+sg-q+vX-(Fb-U_6DQVlc2Sg7=1?AABEN17yW1Sy3il3pi@819EI^ z%sq1C$eT=3K7qkW0fZ0=(Av<@aHkOBaw(+=Xi`d}(&~UNrPKhu=9*T~5D + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + text + plaintext + regular + document + + + + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +