1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-20 19:57:44 +00:00

Add branding and icons to all GUI applications

This commit is contained in:
Joshua Goins 2023-12-31 12:11:42 -05:00
parent f747033aac
commit 08f46dd8c7
23 changed files with 1063 additions and 17 deletions

View file

@ -45,4 +45,6 @@ target_link_libraries(novus-armoury
Qt6::Concurrent
Qt6::Network)
install(FILES zone.xiv.armoury.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(FILES zone.xiv.armoury.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
install(TARGETS novus-armoury ${KF${QT_MAJOR_VERSION}_INSTALL_TARGETS_DEFAULT_ARGS})

View file

@ -13,7 +13,10 @@ int main(int argc, char *argv[])
{
QApplication app(argc, argv);
customizeAboutData(QStringLiteral("armoury"), QStringLiteral("Armoury"), QStringLiteral("Program to view FFXIV gear."));
customizeAboutData(QStringLiteral("armoury"),
QStringLiteral("zone.xiv.armoury"),
QStringLiteral("Gear Editor"),
QStringLiteral("Program to view FFXIV gear."));
// Default to a sensible message pattern
if (qEnvironmentVariableIsEmpty("QT_MESSAGE_PATTERN")) {

View file

@ -0,0 +1,10 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
[Desktop Entry]
Name=Novus SDK
Comment=FFXIV Gear Editor
Exec=novus-armoury %u
Terminal=false
Icon=zone.xiv.armoury
Type=Application
NoDisplay=true

View file

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="32"
height="32"
viewBox="0 0 8.4666664 8.4666666"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="zone.xiv.armoury.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="8"
inkscape:cx="5.25"
inkscape:cy="28.3125"
inkscape:window-width="1503"
inkscape:window-height="1052"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient41"
inkscape:collect="always">
<stop
style="stop-color:#bf4590;stop-opacity:1;"
offset="0"
id="stop41" />
<stop
style="stop-color:#d68bba;stop-opacity:1;"
offset="1"
id="stop42" />
</linearGradient>
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#9700a9;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="3.1669343"
y1="0.3943055"
x2="4.2333331"
y2="8.21772"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0177781,0,0,1.0177781,-0.07526033,-0.07526033)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient42"
x1="4.3223338"
y1="8.2922983"
x2="2.9549415"
y2="0.38488719"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient73"
x1="1.576363"
y1="3.9094417"
x2="6.8903036"
y2="3.9094417"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-3.3333334e-8,0.32389162)" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="paint-order:fill markers stroke;stroke-opacity:1;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.356;stroke:none;fill-opacity:1;fill:url(#linearGradient2);"
id="path1"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:#361229;stroke-width:0.348515;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path1-2-7"
cx="4.3223338"
cy="4.3223338"
r="3.9699643" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:url(#linearGradient42);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
id="path1-2"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<path
d="m 5.7583049,2.0810099 v 1.7358114 c 0,0.023109 0.3396845,0.417582 0.3627685,0.416512 L 6.8905355,3.0380575 Z"
style="fill:url(#linearGradient73);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path76" />
<path
d="M 2.7083618,3.8529948 V 2.0810099 L 1.5761312,3.0380575 2.3455933,4.2333333 c 0.023084,0.00107 0.3627685,-0.3803385 0.3627685,-0.3803385 z"
style="fill:url(#linearGradient73);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path75"
sodipodi:nodetypes="ccccc" />
<path
d="M 5.3118205,2.0810099 C 5.3118088,2.5505003 4.8289555,2.9310915 4.2333333,2.9310872 3.6377111,2.9310914 3.1548579,2.5505003 3.1548462,2.0810099 H 2.7083618 V 3.8529948 6.3856567 H 5.7583049 V 3.8168213 2.0810099 Z"
style="fill:url(#linearGradient73);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path74"
sodipodi:nodetypes="cccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

View file

@ -6,4 +6,4 @@
#include <KAboutData>
#include <QString>
void customizeAboutData(const QString &componentName, const QString &applicationTitle, const QString &applicationDescription);
void customizeAboutData(const QString &componentName, const QString &desktopFilename, const QString &applicationTitle, const QString &applicationDescription);

View file

@ -7,7 +7,7 @@
#include "novus-version.h"
void customizeAboutData(const QString &componentName, const QString &applicationTitle, const QString &applicationDescription)
void customizeAboutData(const QString &componentName, const QString &desktopFilename, const QString &applicationTitle, const QString &applicationDescription)
{
KAboutData about(componentName,
applicationTitle,
@ -33,6 +33,9 @@ void customizeAboutData(const QString &componentName, const QString &application
KAboutLicense::GPL_V3);
about.setBugAddress(QByteArrayLiteral("https://lists.sr.ht/~redstrate/public-inbox"));
about.setComponentName(componentName);
about.setProgramLogo(desktopFilename);
about.setDesktopFileName(desktopFilename);
about.setOrganizationDomain(QByteArrayLiteral("xiv.zone"));
KAboutData::setApplicationData(about);
}

View file

@ -20,4 +20,6 @@ target_link_libraries(novus-karuku
Qt6::Core
Qt6::Widgets)
install(FILES zone.xiv.karaku.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(FILES zone.xiv.karaku.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
install(TARGETS novus-karuku ${KF${QT_MAJOR_VERSION}_INSTALL_TARGETS_DEFAULT_ARGS})

View file

@ -13,7 +13,10 @@ int main(int argc, char *argv[])
{
QApplication app(argc, argv);
customizeAboutData(QStringLiteral("karuku"), QStringLiteral("Karuku"), QStringLiteral("Program to view FFXIV Excel files."));
customizeAboutData(QStringLiteral("karuku"),
QStringLiteral("zone.xiv.karaku"),
QStringLiteral("Excel Editor"),
QStringLiteral("Program to view FFXIV Excel files."));
// Default to a sensible message pattern
if (qEnvironmentVariableIsEmpty("QT_MESSAGE_PATTERN")) {

View file

@ -0,0 +1,10 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
[Desktop Entry]
Name=Novus SDK
Comment=FFXIV Data Editor
Exec=novus-karaku %u
Terminal=false
Icon=zone.xiv.karaku
Type=Application
NoDisplay=true

177
karuku/zone.xiv.karaku.svg Normal file
View file

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="32"
height="32"
viewBox="0 0 8.4666664 8.4666666"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="zone.xiv.karaku.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="11.313709"
inkscape:cx="6.8059028"
inkscape:cy="20.285126"
inkscape:window-width="1493"
inkscape:window-height="1052"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect91"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0.29092048,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.24919772,0,1 @ F,0,0,1,0,0.25399137,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect90"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0.24942529,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.22500024,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect89"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0.20292531,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<linearGradient
id="linearGradient82"
inkscape:collect="always">
<stop
style="stop-color:#499e82;stop-opacity:1;"
offset="0"
id="stop81" />
<stop
style="stop-color:#255d45;stop-opacity:1;"
offset="1"
id="stop82" />
</linearGradient>
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#00db94;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#00a065;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="3.1669343"
y1="0.3943055"
x2="4.2333331"
y2="8.21772"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0177781,0,0,1.0177781,-0.07526033,-0.07526033)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient82"
id="linearGradient42"
x1="1.5205187"
y1="1.2191238"
x2="4.5218091"
y2="7.89182"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient82"
id="linearGradient89"
x1="2.8139815"
y1="1.9010228"
x2="4.5018134"
y2="6.1403022"
gradientUnits="userSpaceOnUse" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="paint-order:fill markers stroke;stroke-opacity:1;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.356;stroke:none;fill-opacity:1;fill:url(#linearGradient2);"
id="path1"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:#361229;stroke-width:0.348515;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path1-2-7"
cx="4.3223338"
cy="4.3223338"
r="3.9699643" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:url(#linearGradient42);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
id="path1-2"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<path
id="rect84"
style="fill:url(#linearGradient89);fill-opacity:1;stroke:none;stroke-width:0.325;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke"
d="M 2.8139816,1.9010227 5.0188151,1.8864138 C 5.4299922,2.3321074 5.4277127,2.336656 5.9435992,2.9269531 v 3.3875661 c 0,0.1376281 -0.1115502,0.2471941 -0.2491601,0.2450849 -0.5741006,-0.0088 -2.0102185,-0.026865 -2.9178178,-0.00397 -0.1400606,0.00353 -0.2533481,-0.1056591 -0.253126,-0.2459723 0.00114,-0.7177649 0.00392,-2.7942574 4.799e-4,-4.1158604 -4.176e-4,-0.1606305 0.129339,-0.2917098 0.2900064,-0.2927744 z"
sodipodi:nodetypes="cccccc"
inkscape:path-effect="#path-effect91"
inkscape:original-d="M 2.5230675,1.9029503 5.0188151,1.8864138 C 5.4299922,2.3321074 5.4277127,2.336656 5.9435992,2.9269531 v 3.6367638 c 0,0 -2.3380307,-0.043265 -3.4205317,0 0,0 0.00578,-3.107916 0,-4.6607666 z" />
<path
id="path88"
style="fill:#e5e5c9;fill-opacity:1;stroke:#98934c;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
d="m 3.3696105,5.2560686 3.3327514,0.024805 m -3.29293,-0.9833445 3.2901066,0.024805 M 5.6214416,3.3355553 5.6502729,6.132358 M 4.4825297,3.3272658 4.5018132,6.1403022 M 3.3736367,3.3188255 6.7063882,3.3436302 v 0 L 6.7005417,6.1566667 3.3677902,6.131862 Z"
sodipodi:nodetypes="cccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View file

@ -15,3 +15,7 @@ target_link_libraries(novus-launcher
KF6::ConfigCore
Qt6::Widgets)
target_include_directories(novus-launcher PUBLIC include)
install(FILES zone.xiv.novus.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(FILES zone.xiv.novus.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
install(TARGETS novus-launcher ${KF${QT_MAJOR_VERSION}_INSTALL_TARGETS_DEFAULT_ARGS})

View file

@ -16,7 +16,8 @@ int main(int argc, char *argv[])
QApplication app(argc, argv);
customizeAboutData(QStringLiteral("launcher"),
QStringLiteral("SDK Launcher"),
QStringLiteral("zone.xiv.novus"),
QStringLiteral("Novus SDK"),
QStringLiteral("Handles setting up and launching various Novus SDK components."));
// Default to a sensible message pattern

View file

@ -7,15 +7,21 @@
#include <KConfigGroup>
#include <QComboBox>
#include <QDebug>
#include <QDesktopServices>
#include <QFormLayout>
#include <QListWidget>
#include <QProcess>
#include <QUrl>
#include <QVBoxLayout>
static QMap<QString, QString> applications = {{QStringLiteral("Armoury - View and export gear"), QStringLiteral("novus-armoury")},
{QStringLiteral("Karuku - Read Excel sheets"), QStringLiteral("novus-karuku")},
{QStringLiteral("Sagasu - Explore data archives"), QStringLiteral("novus-sagasu")},
{QStringLiteral("Model Viewer - Preview MDL files"), QStringLiteral("novus-mdlviewer")}};
static QMap<QString, QPair<QString, QString>> applications = {
{QStringLiteral("Gear Editor"), {QStringLiteral("zone.xiv.armoury"), QStringLiteral("novus-armoury")}},
{QStringLiteral("Excel Editor"), {QStringLiteral("zone.xiv.karaku"), QStringLiteral("novus-karuku")}},
{QStringLiteral("Data Explorer"), {QStringLiteral("zone.xiv.sagasu"), QStringLiteral("novus-sagasu")}},
{QStringLiteral("Model Viewer"), {QStringLiteral("zone.xiv.mdlviewer"), QStringLiteral("novus-mdlviewer")}}};
static QMap<QString, QString> links = {{QStringLiteral("XIV Dev Wiki"), QStringLiteral("https://xiv.dev")},
{QStringLiteral("XIV Docs"), QStringLiteral("https://docs.xiv.zone")}};
MainWindow::MainWindow()
: NovusMainWindow()
@ -30,16 +36,38 @@ MainWindow::MainWindow()
appList->addItem(applicationHeader);
for (const auto &name : applications.keys()) {
appList->addItem(name);
for (const auto &key : applications.keys()) {
auto application = new QListWidgetItem();
application->setText(key);
application->setIcon(QIcon::fromTheme(applications[key].first));
appList->addItem(application);
}
auto linksHeader = new QListWidgetItem();
linksHeader->setText(QStringLiteral("Links"));
linksHeader->setFlags(Qt::NoItemFlags);
appList->addItem(linksHeader);
for (const auto &key : links.keys()) {
auto application = new QListWidgetItem();
application->setText(key);
application->setIcon(QIcon::fromTheme(QStringLiteral("internet-web-browser")));
appList->addItem(application);
}
connect(appList, &QListWidget::itemClicked, [this](QListWidgetItem *item) {
const QString exec = QStringLiteral("./") + applications[item->text()];
if (applications.contains(item->text())) {
const QString exec = QStringLiteral("./") + applications[item->text()].second;
qDebug() << "Launching" << exec;
qDebug() << "Launching" << exec;
QProcess::startDetached(exec, QStringList());
QProcess::startDetached(exec, QStringList());
} else if (links.contains(item->text())) {
QDesktopServices::openUrl(QUrl::fromUserInput(links[item->text()]));
}
});
auto appListLayout = new QVBoxLayout();
@ -54,8 +82,9 @@ MainWindow::MainWindow()
KConfigGroup game = config.group(QStringLiteral("Game"));
auto gameCombo = new QComboBox();
gameCombo->setMaximumWidth(175);
formLayout->addRow(QStringLiteral("Current Game"), gameCombo);
formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint);
gameCombo->addItem(game.readEntry("GameDir"));
auto mainLayout = new QVBoxLayout();

View file

@ -0,0 +1,9 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
[Desktop Entry]
Name=Novus SDK
Comment=Unofficial FFXIV SDK
Exec=novus-launcher %u
Terminal=false
Icon=zone.xiv.novus
Type=Application

151
launcher/zone.xiv.novus.svg Normal file
View file

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="32"
height="32"
viewBox="0 0 8.4666664 8.4666666"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="zone.xiv.novus.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="11.313708"
inkscape:cx="18.694136"
inkscape:cy="13.302447"
inkscape:window-width="1503"
inkscape:window-height="1052"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient4"
inkscape:collect="always">
<stop
style="stop-color:#58305f;stop-opacity:1;"
offset="0"
id="stop3" />
<stop
style="stop-color:#a531ae;stop-opacity:1;"
offset="1"
id="stop4" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-2.1507149 : 4.7670214 : 1"
inkscape:vp_y="0 : 1624.8479 : 0"
inkscape:vp_z="9.7803422 : 4.8474713 : 1"
inkscape:persp3d-origin="7.1689818 : -3.3556303 : 1"
id="perspective1" />
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#c08bcc;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#7a2872;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="3.1669343"
y1="0.3943055"
x2="4.2333331"
y2="8.21772"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0177781,0,0,1.0177781,-0.07526033,-0.07526033)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4"
id="linearGradient42"
x1="4.3223338"
y1="8.2922983"
x2="2.9549415"
y2="0.38488719"
gradientUnits="userSpaceOnUse" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect91"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0.29092048,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.24919772,0,1 @ F,0,0,1,0,0.25399137,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect91-9"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0.29092048,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.24919772,0,1 @ F,0,0,1,0,0.25399137,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="paint-order:fill markers stroke;stroke-opacity:1;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.356;stroke:none;fill-opacity:1;fill:url(#linearGradient2);"
id="path1"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:#361229;stroke-width:0.348515;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path1-2-7"
cx="4.3223338"
cy="4.3223338"
r="3.9699643" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:url(#linearGradient42);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
id="path1-2"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<path
d="m 2.3675062,5.8586868 q -0.311526,0 -0.4560019,-0.085783 -0.1399609,-0.090297 -0.1399609,-0.1851096 0,-0.054178 0.022574,-0.1264164 0.022574,-0.076753 0.072238,-0.1354461 0.072238,0.067723 0.1851097,0.1128718 0.1173866,0.045149 0.279922,0.045149 0.2392881,0 0.3386152,-0.1264164 0.103842,-0.1264164 0.103842,-0.3341004 0,-0.1535056 -0.058693,-0.2844368 Q 2.6609728,4.6080677 2.5119821,4.4365027 L 2.0604951,3.9082629 Q 1.9069895,3.7186383 1.8392664,3.5696476 1.7760582,3.416142 1.7760582,3.2536067 q 0,-0.2844368 0.1986543,-0.4650316 0.2031692,-0.1805948 0.5779034,-0.1805948 0.3205558,0 0.4560019,0.067723 0.1354461,0.063208 0.1354461,0.1580205 0,0.045149 -0.022574,0.103842 -0.022574,0.054178 -0.067723,0.103842 -0.045149,-0.031604 -0.1670502,-0.067723 -0.1173866,-0.040634 -0.2754071,-0.040634 -0.2031691,0 -0.3250706,0.081268 -0.1173867,0.081268 -0.1173867,0.2302583 0,0.1219015 0.054178,0.2257436 0.058693,0.099327 0.1580204,0.2212286 l 0.487606,0.555329 q 0.17608,0.2076841 0.2392881,0.3792491 0.063208,0.1715651 0.063208,0.383764 0,0.2257435 -0.076753,0.4198829 Q 3.0221624,5.6239135 2.8460825,5.7413002 2.6745174,5.8586868 2.3675062,5.8586868 Z M 3.4736485,5.8135381 V 2.7389115 q 0,-0.040634 0.022574,-0.063208 0.027089,-0.022574 0.099327,-0.022574 h 0.4379424 q 0.2212287,0 0.3882789,0.067723 0.1670502,0.067723 0.2754071,0.2302584 0.1083568,0.1580204 0.1625353,0.4334275 0.058693,0.2754071 0.058693,0.6862603 0,0.4966357 -0.058693,0.835251 -0.058693,0.3341004 -0.17608,0.5327547 Q 4.570762,5.6374581 4.4082267,5.7277555 4.2456913,5.8135381 4.0380073,5.8135381 Z M 3.839353,5.4658931 h 0.2031692 q 0.090297,0 0.171565,-0.049664 0.081268,-0.049664 0.1444759,-0.1941394 0.067723,-0.1489907 0.103842,-0.4334276 0.040634,-0.2844368 0.040634,-0.7539833 0,-0.311526 -0.031604,-0.5146952 Q 4.4443456,3.3168149 4.3856523,3.1994282 4.3314739,3.0820416 4.2456913,3.0368929 4.1599088,2.9917442 4.0470371,2.9917442 H 3.839353 Z m 2.6908588,0.3566747 q -0.063208,0 -0.1264164,-0.00451 -0.063208,-0.00451 -0.1309312,-0.00903 Q 6.2277155,5.5471607 6.1735371,5.330447 6.1238735,5.1092183 6.0651802,4.9331384 6.0110017,4.7570585 5.9342489,4.6216124 5.862011,4.4816514 5.7671987,4.3778094 5.7085054,4.319116 5.6362675,4.2829971 5.5685445,4.2468781 5.5008214,4.2288186 v -0.063208 l 0.799132,-1.4899072 q 0.063208,-0.01806 0.1264164,-0.022574 0.063208,-0.00451 0.1083569,-0.00451 0.2031691,0 0.1489907,0.1083569 L 5.9568233,4.0166197 q 0.2708922,0.2031692 0.451487,0.6365967 0.1805948,0.4289127 0.2708922,1.079054 0.00451,0.049664 -0.027089,0.072238 -0.027089,0.018059 -0.1219015,0.018059 z M 5.2118697,5.8135381 V 2.7253669 q 0,-0.036119 0.013545,-0.049664 0.01806,-0.013545 0.094812,-0.01806 0.076753,-0.00451 0.2618625,-0.00451 v 3.0881712 q 0,0.036119 -0.013545,0.049663 -0.013545,0.013545 -0.094812,0.01806 -0.076753,0.00451 -0.2618625,0.00451 z"
id="text1"
style="font-size:4.51487px;font-family:'Yanone Kaffeesatz';-inkscape-font-specification:'Yanone Kaffeesatz';fill:#ffffff;stroke-width:0.0355502;stroke-linecap:round;stroke-linejoin:round;paint-order:fill markers stroke"
aria-label="SDK" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

View file

@ -21,4 +21,6 @@ target_link_libraries(novus-mdlviewer
Qt6::Core
Qt6::Widgets)
install(FILES zone.xiv.mdlviewer.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(FILES zone.xiv.mdlviewer.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
install(TARGETS novus-mdlviewer ${KF${QT_MAJOR_VERSION}_INSTALL_TARGETS_DEFAULT_ARGS})

View file

@ -13,7 +13,10 @@ int main(int argc, char *argv[])
{
QApplication app(argc, argv);
customizeAboutData(QStringLiteral("mdlviewer"), QStringLiteral("MDLViewer"), QStringLiteral("Program to view FFXIV MDL files."));
customizeAboutData(QStringLiteral("mdlviewer"),
QStringLiteral("zone.xiv.mdlviewer"),
QStringLiteral("MDLViewer"),
QStringLiteral("Program to view FFXIV MDL files."));
// Default to a sensible message pattern
if (qEnvironmentVariableIsEmpty("QT_MESSAGE_PATTERN")) {

View file

@ -0,0 +1,10 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
[Desktop Entry]
Name=Novus SDK
Comment=FFXIV Model Viewer
Exec=novus-mdlviewer %u
Terminal=false
Icon=zone.xiv.mdlviewer
Type=Application
NoDisplay=true

View file

@ -0,0 +1,312 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="32"
height="32"
viewBox="0 0 8.4666664 8.4666666"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="zone.xiv.mdlviewer.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="11.313708"
inkscape:cx="13.081475"
inkscape:cy="16.484427"
inkscape:window-width="1503"
inkscape:window-height="1052"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient28"
inkscape:collect="always">
<stop
style="stop-color:#6959ab;stop-opacity:0.26979473;"
offset="0"
id="stop27" />
<stop
style="stop-color:#79829b;stop-opacity:0.08504399;"
offset="1"
id="stop28" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-2.1507149 : 4.7670214 : 1"
inkscape:vp_y="0 : 1624.8479 : 0"
inkscape:vp_z="9.7803422 : 4.8474713 : 1"
inkscape:persp3d-origin="7.1689818 : -3.3556303 : 1"
id="perspective1" />
<linearGradient
id="linearGradient41"
inkscape:collect="always">
<stop
style="stop-color:#6959ab;stop-opacity:1;"
offset="0"
id="stop41" />
<stop
style="stop-color:#79829b;stop-opacity:1;"
offset="1"
id="stop42" />
</linearGradient>
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#424168;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#37326e;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="3.1669343"
y1="0.3943055"
x2="4.2333331"
y2="8.21772"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0177781,0,0,1.0177781,-0.07526033,-0.07526033)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient42"
x1="4.3223338"
y1="8.2922983"
x2="2.9549415"
y2="0.38488719"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient25"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28"
id="linearGradient27"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28"
id="linearGradient29"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient30"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28"
id="linearGradient31"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient32"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28"
id="linearGradient33"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient34"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28"
id="linearGradient35"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient36"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28"
id="linearGradient37"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient38"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient28"
id="linearGradient39"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient41"
id="linearGradient40"
gradientUnits="userSpaceOnUse"
x1="1.9781839"
y1="4.2333341"
x2="6.4915385"
y2="4.2333341"
gradientTransform="matrix(1.1665332,0,0,1.1449519,-0.61751824,-0.52462947)" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="paint-order:fill markers stroke;stroke-opacity:1;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.356;stroke:none;fill-opacity:1;fill:url(#linearGradient2);"
id="path1"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:#361229;stroke-width:0.348515;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path1-2-7"
cx="4.3223338"
cy="4.3223338"
r="3.9699643" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:url(#linearGradient42);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
id="path1-2"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<g
sodipodi:type="inkscape:box3d"
id="g1"
style="fill:url(#linearGradient27);stroke:url(#linearGradient25);stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
inkscape:perspectiveID="#perspective1"
inkscape:corner0="1.3207607 : 0.0066441453 : 0 : 1"
inkscape:corner7="0.3612963 : 0.0023105232 : 0.94311335 : 1">
<path
sodipodi:type="inkscape:box3dside"
id="path7"
style="fill:url(#linearGradient29);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient30);stroke-width:0.1;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
inkscape:box3dsidetype="11"
d="M 4.1522355,2.8574108 6.7765331,2.5067379 V 5.5623911 L 4.1522355,5.0148092 Z"
points="6.7765331,2.5067379 6.7765331,5.5623911 4.1522355,5.0148092 4.1522355,2.8574108 " />
<path
sodipodi:type="inkscape:box3dside"
id="path2"
style="fill:url(#linearGradient31);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient32);stroke-width:0.1;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
inkscape:box3dsidetype="6"
d="M 1.8650791,2.5478359 V 5.5819604 L 4.1522355,5.0148092 V 2.8574108 Z"
points="1.8650791,5.5819604 4.1522355,5.0148092 4.1522355,2.8574108 1.8650791,2.5478359 " />
<path
sodipodi:type="inkscape:box3dside"
id="path6"
style="fill:url(#linearGradient33);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient34);stroke-width:0.1;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
inkscape:box3dsidetype="13"
d="M 1.8650791,5.5819604 4.6954779,6.9086475 6.7765331,5.5623911 4.1522355,5.0148092 Z"
points="4.6954779,6.9086475 6.7765331,5.5623911 4.1522355,5.0148092 1.8650791,5.5819604 " />
<path
sodipodi:type="inkscape:box3dside"
id="path3"
style="fill:url(#linearGradient35);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient36);stroke-width:0.1;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
inkscape:box3dsidetype="5"
d="M 1.8650791,2.5478359 4.6954779,1.7360214 6.7765331,2.5067379 4.1522355,2.8574108 Z"
points="4.6954779,1.7360214 6.7765331,2.5067379 4.1522355,2.8574108 1.8650791,2.5478359 " />
<path
sodipodi:type="inkscape:box3dside"
id="path5"
style="fill:url(#linearGradient37);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient38);stroke-width:0.1;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
inkscape:box3dsidetype="14"
d="M 4.6954779,1.7360214 V 6.9086475 L 6.7765331,5.5623911 V 2.5067379 Z"
points="4.6954779,6.9086475 6.7765331,5.5623911 6.7765331,2.5067379 4.6954779,1.7360214 " />
<path
sodipodi:type="inkscape:box3dside"
id="path4"
style="fill:url(#linearGradient39);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient40);stroke-width:0.1;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
inkscape:box3dsidetype="3"
d="M 1.8650791,2.5478359 4.6954779,1.7360214 V 6.9086475 L 1.8650791,5.5819604 Z"
points="4.6954779,1.7360214 4.6954779,6.9086475 1.8650791,5.5819604 1.8650791,2.5478359 " />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -45,4 +45,6 @@ target_link_libraries(novus-sagasu
Physis::Logger
Qt6::Concurrent)
install(FILES zone.xiv.sagasu.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(FILES zone.xiv.sagasu.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps)
install(TARGETS novus-sagasu ${KF${QT_MAJOR_VERSION}_INSTALL_TARGETS_DEFAULT_ARGS})

View file

@ -14,7 +14,10 @@ int main(int argc, char *argv[])
{
QApplication app(argc, argv);
customizeAboutData(QStringLiteral("sagasu"), QStringLiteral("Sagasu"), QStringLiteral("Program to explore FFXIV data archives."));
customizeAboutData(QStringLiteral("sagasu"),
QStringLiteral("zone.xiv.sagasu"),
QStringLiteral("Data Explorer"),
QStringLiteral("Program to explore FFXIV data archives."));
// Default to a sensible message pattern
if (qEnvironmentVariableIsEmpty("QT_MESSAGE_PATTERN")) {

View file

@ -0,0 +1,10 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
[Desktop Entry]
Name=Novus SDK
Comment=FFXIV Data Explorer
Exec=novus-sagasu %u
Terminal=false
Icon=zone.xiv.sagasu
Type=Application
NoDisplay=true

171
sagasu/zone.xiv.sagasu.svg Normal file
View file

@ -0,0 +1,171 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="32"
height="32"
viewBox="0 0 8.4666664 8.4666666"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="zone.xiv.sagasu.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="11.313708"
inkscape:cx="15.246991"
inkscape:cy="21.522564"
inkscape:window-width="1503"
inkscape:window-height="1052"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
id="linearGradient4"
inkscape:collect="always">
<stop
style="stop-color:#ad5957;stop-opacity:1;"
offset="0"
id="stop3" />
<stop
style="stop-color:#d3705d;stop-opacity:1;"
offset="1"
id="stop4" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="-2.1507149 : 4.7670214 : 1"
inkscape:vp_y="0 : 1624.8479 : 0"
inkscape:vp_z="9.7803422 : 4.8474713 : 1"
inkscape:persp3d-origin="7.1689818 : -3.3556303 : 1"
id="perspective1" />
<linearGradient
id="linearGradient1"
inkscape:collect="always">
<stop
style="stop-color:#ccab8b;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#c8685b;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1"
id="linearGradient2"
x1="3.1669343"
y1="0.3943055"
x2="4.2333331"
y2="8.21772"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0177781,0,0,1.0177781,-0.07526033,-0.07526033)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4"
id="linearGradient42"
x1="4.3223338"
y1="8.2922983"
x2="2.9549415"
y2="0.38488719"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4"
id="linearGradient89"
x1="5.0791574"
y1="6.5515566"
x2="3.5401206"
y2="1.8962114"
gradientUnits="userSpaceOnUse" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect91"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0.29092048,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.24919772,0,1 @ F,0,0,1,0,0.25399137,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
<inkscape:path-effect
effect="fillet_chamfer"
id="path-effect91-9"
is_visible="true"
lpeversion="1"
nodesatellites_param="F,0,0,1,0,0.29092048,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.24919772,0,1 @ F,0,0,1,0,0.25399137,0,1"
radius="0"
unit="px"
method="auto"
mode="F"
chamfer_steps="1"
flexible="false"
use_knot_distance="true"
apply_no_radius="true"
apply_with_radius="true"
only_selected="false"
hide_knots="false" />
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="paint-order:fill markers stroke;stroke-opacity:1;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.356;stroke:none;fill-opacity:1;fill:url(#linearGradient2);"
id="path1"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:#361229;stroke-width:0.348515;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke"
id="path1-2-7"
cx="4.3223338"
cy="4.3223338"
r="3.9699643" />
<circle
style="fill:none;fill-opacity:0.347403;stroke:url(#linearGradient42);stroke-width:0.356;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
id="path1-2"
cx="4.2333336"
cy="4.2333336"
r="4.055222" />
<path
id="rect84-2"
style="fill:#4a4a4a;stroke:none;stroke-width:0.325;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke;fill-opacity:0.54214561"
d="M 2.8139816,1.9010227 5.0188151,1.8864138 C 5.4299922,2.3321074 5.4277127,2.336656 5.9435992,2.9269531 v 3.3875661 c 0,0.1376281 -0.1115502,0.2471941 -0.2491601,0.2450849 -0.5741006,-0.0088 -2.0102185,-0.026865 -2.9178178,-0.00397 -0.1400606,0.00353 -0.2533481,-0.1056591 -0.253126,-0.2459723 0.00114,-0.7177649 0.00392,-2.7942574 4.799e-4,-4.1158604 -4.176e-4,-0.1606305 0.129339,-0.2917098 0.2900064,-0.2927744 z"
sodipodi:nodetypes="cccccc"
inkscape:path-effect="#path-effect91-9"
inkscape:original-d="M 2.5230675,1.9029503 5.0188151,1.8864138 C 5.4299922,2.3321074 5.4277127,2.336656 5.9435992,2.9269531 v 3.6367638 c 0,0 -2.3380307,-0.043265 -3.4205317,0 0,0 0.00578,-3.107916 0,-4.6607666 z"
transform="translate(0.24660512,0.09930988)" />
<path
id="rect84"
style="fill:url(#linearGradient89);stroke:none;stroke-width:0.325;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.118943;paint-order:fill markers stroke"
d="M 2.8139816,1.9010227 5.0188151,1.8864138 C 5.4299922,2.3321074 5.4277127,2.336656 5.9435992,2.9269531 v 3.3875661 c 0,0.1376281 -0.1115502,0.2471941 -0.2491601,0.2450849 -0.5741006,-0.0088 -2.0102185,-0.026865 -2.9178178,-0.00397 -0.1400606,0.00353 -0.2533481,-0.1056591 -0.253126,-0.2459723 0.00114,-0.7177649 0.00392,-2.7942574 4.799e-4,-4.1158604 -4.176e-4,-0.1606305 0.129339,-0.2917098 0.2900064,-0.2927744 z"
sodipodi:nodetypes="cccccc"
inkscape:path-effect="#path-effect91"
inkscape:original-d="M 2.5230675,1.9029503 5.0188151,1.8864138 C 5.4299922,2.3321074 5.4277127,2.336656 5.9435992,2.9269531 v 3.6367638 c 0,0 -2.3380307,-0.043265 -3.4205317,0 0,0 0.00578,-3.107916 0,-4.6607666 z"
transform="translate(-0.30877674,-0.18132314)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB