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:
parent
f747033aac
commit
08f46dd8c7
23 changed files with 1063 additions and 17 deletions
|
@ -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})
|
||||
|
|
|
@ -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")) {
|
||||
|
|
10
armoury/zone.xiv.armoury.desktop
Normal file
10
armoury/zone.xiv.armoury.desktop
Normal 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
|
129
armoury/zone.xiv.armoury.svg
Normal file
129
armoury/zone.xiv.armoury.svg
Normal 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 |
|
@ -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);
|
|
@ -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);
|
||||
}
|
|
@ -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})
|
||||
|
|
|
@ -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")) {
|
||||
|
|
10
karuku/zone.xiv.karaku.desktop
Normal file
10
karuku/zone.xiv.karaku.desktop
Normal 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
177
karuku/zone.xiv.karaku.svg
Normal 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 |
|
@ -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})
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
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();
|
||||
|
|
9
launcher/zone.xiv.novus.desktop
Normal file
9
launcher/zone.xiv.novus.desktop
Normal 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
151
launcher/zone.xiv.novus.svg
Normal 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 |
|
@ -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})
|
||||
|
|
|
@ -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")) {
|
||||
|
|
10
mdlviewer/zone.xiv.mdlviewer.desktop
Normal file
10
mdlviewer/zone.xiv.mdlviewer.desktop
Normal 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
|
312
mdlviewer/zone.xiv.mdlviewer.svg
Normal file
312
mdlviewer/zone.xiv.mdlviewer.svg
Normal 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 |
|
@ -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})
|
||||
|
|
|
@ -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")) {
|
||||
|
|
10
sagasu/zone.xiv.sagasu.desktop
Normal file
10
sagasu/zone.xiv.sagasu.desktop
Normal 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
171
sagasu/zone.xiv.sagasu.svg
Normal 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 |
Loading…
Add table
Reference in a new issue