Commit 80db1b5a authored by Alf Gaida's avatar Alf Gaida

Cherry-picking upstream version 2015.12.03.

Removed extra license file
parent 218919dc
/**************************** agent.cpp ********************************
Code for the user agent registered on DBus. When the connman daemon
......
......@@ -138,7 +138,11 @@ class ControlBox : public QDialog
quint32 counter_period;
QDBusInterface* iface_manager;
QSystemTrayIcon* trayicon;
QMenu* trayiconmenu;
QMenu* trayiconmenu;
QMenu* tech_submenu;
QMenu* info_submenu;
QMenu* wifi_submenu;
QMenu* mvsrv_menu;
QActionGroup* minMaxGroup;
QActionGroup* moveGroup;
QAction* minimizeAction;
......@@ -146,7 +150,6 @@ class ControlBox : public QDialog
QAction* exitAction;
bool b_usexfce;
bool b_usemate;
QMenu* mvsrv_menu;
QSettings* settings;
QString onlineobjectpath;
QLocalServer* socketserver;
......@@ -170,7 +173,6 @@ class ControlBox : public QDialog
void logErrors(const quint8&);
QString readResourceText(const char*);
void clearCounters();
static QVariant translateVariant(const QVariant&);
private slots:
void updateDisplayWidgets();
......@@ -193,10 +195,14 @@ class ControlBox : public QDialog
void toggleTrayIcon(bool);
void togglePowered(QString, bool);
void minMaxWindow(QAction* = 0);
void techSubmenuTriggered(QAction* = 0);
void infoSubmenuTriggered(QAction* = 0);
void wifiSubmenuTriggered(QAction* = 0);
void getServiceDetails(int);
void showWhatsThis();
inline void trayNotifications(bool checked) {if (checked) ui.checkBox_notifydaemon->setChecked(false);}
inline void daemonNotifications(bool checked) {if (checked) ui.checkBox_systemtraynotifications->setChecked(false);}
inline void closeSystemTrayTearOffMenu() {trayiconmenu->hideTearOffMenu();}
void iconActivated(QSystemTrayIcon::ActivationReason reason);
void enableRunOnStartup(bool enabled);
void writeSettings();
......@@ -207,6 +213,8 @@ class ControlBox : public QDialog
void provisionService();
void socketConnectionDetected();
void cleanUp();
void callColorDialog();
void iconColorChanged(const QString&);
};
#endif
......
This diff is collapsed.
......@@ -34,14 +34,16 @@ DEALINGS IN THE SOFTWARE.
# include <QStringList>
# include <QIcon>
# include <QMap>
# include <QColor>
# include <QMap>
# include "../resource.h"
struct IconElement
{
QString resource_path;
QString colorize;
QString fdo_name;
QStringList name_list;
QStringList theme_names;
};
class IconManager : public QObject
......@@ -55,20 +57,23 @@ class IconManager : public QObject
// functions
QIcon getIcon(const QString&);
QString getIconName(const QString&);
inline void setIconColor(const QColor& col) {icon_color = col;}
private:
// members
QMap<QString, IconElement> icon_map;
QString cfg;
QString qrc;
QColor icon_color;
// functions
bool buildResourceIcon(QIcon&, const QString&);
bool buildResourceIcon(QIcon&, const QString&, const QString&);
bool buildThemeIcon(QIcon&, const QString&);
QString getFallback(const QString&);
void makeLocalFile();
QString extractValue(const QString&);
QString extractKey(const QString&);
QPixmap processArt(const QString&, const QColor&);
};
#endif
This diff is collapsed.
......@@ -74,25 +74,43 @@ TranslateStrings::TranslateStrings(QObject* parent) : QObject(parent)
sl << tr("wep", "connman security string");
sl << tr("wps", "connman security string");
sl << tr("Invalid arguments", "connman error sring");
sl << tr("Permission denied", "connman error sring");
sl << tr("Passphrase required", "connman error sring");
sl << tr("Not registered", "connman error sring");
sl << tr("Not unique", "connman error sring");
sl << tr("Not supported", "connman error sring");
sl << tr("Not implemented", "connman error sring");
sl << tr("Not found", "connman error sring");
sl << tr("No carrier", "connman error sring");
sl << tr("In progress", "connman error sring");
sl << tr("Already exists", "connman error sring");
sl << tr("Already enabled", "connman error sring");
sl << tr("Already disabled", "connman error sring");
sl << tr("Already connected", "connman error sring");
sl << tr("Not connected", "connman error sring");
sl << tr("Operation aborted", "connman error sring");
sl << tr("Operation timeout", "connman error sring");
sl << tr("Invalid service", "connman error sring");
sl << tr("Invalid property", "connman error sring");
sl << tr("Invalid arguments", "connman error string");
sl << tr("Permission denied", "connman error string");
sl << tr("Passphrase required", "connman error string");
sl << tr("Not registered", "connman error string");
sl << tr("Not unique", "connman error string");
sl << tr("Not supported", "connman error string");
sl << tr("Not implemented", "connman error string");
sl << tr("Not found", "connman error string");
sl << tr("No carrier", "connman error string");
sl << tr("In progress", "connman error string");
sl << tr("Already exists", "connman error string");
sl << tr("Already enabled", "connman error string");
sl << tr("Already disabled", "connman error string");
sl << tr("Already connected", "connman error string");
sl << tr("Not connected", "connman error string");
sl << tr("Operation aborted", "connman error string");
sl << tr("Operation timeout", "connman error string");
sl << tr("Invalid service", "connman error string");
sl << tr("Invalid property", "connman error string");
sl << tr("disabled", "connman privacy string");
sl << tr("enabled", "connman privacy string");
sl << tr("prefered", "connman privacy string");
sl << tr("auto", "connman ethernet connection method");
sl << tr("manual", "connman ethernet connection method");
sl << tr("dhcp", "connman ipv4 method string");
sl << tr("manual", "connman ipv4 method string");
sl << tr("off", "connman ipv4 method string");
sl << tr("fixed", "connman ipv4 method string");
sl << tr("auto", "connman ipv6 method string");
sl << tr("manual", "connman ipv6 method string");
sl << tr("6to4", "connman ipv6 method string");
sl << tr("off", "connman ipv6 method string");
return;
}
......
......@@ -41,6 +41,6 @@ class TranslateStrings : public QObject
TranslateStrings(QObject*);
// functions
static inline QString cmtr(const QString& str) {return tr(qPrintable(str) );}
static inline QString cmtr(const QString& str, const char* disamb = 0) {return tr(qPrintable(str), disamb);}
};
#endif
/**************************** resource.h *******************************
/**************************** resource.h *******************************
Header file that contains program #defines. It used to be that we kept
all program update and version information in this single file. Now
......@@ -35,8 +35,8 @@ DEALINGS IN THE SOFTWARE.
///////////////////////////////// Program Values ///////////////////////
//
// Program Info (may be visible, but don't mark for tranalation)
#define VERSION "2015.10.07-1"
#define RELEASE_DATE "3 October 2015"
#define VERSION "2015.12.03-1"
#define RELEASE_DATE "3 December 2015"
#define COPYRIGHT_DATE "2013-2015"
// Program Values:
......
......@@ -14,6 +14,7 @@ TRANSLATIONS += ./translations/cmst_pl_PL.ts
TRANSLATIONS += ./translations/cmst_it_IT.ts
TRANSLATIONS += ./translations/cmst_es_ES.ts
TRANSLATIONS += ./translations/cmst_es_CO.ts
TRANSLATIONS += ./translations/cmst_fr_FR.ts.
# non-application files which need to be installed
#
......@@ -24,12 +25,12 @@ documentation.CONFIG = no_check_exist
documentation.extra = gzip --force --keep ./misc/manpage/cmst.1
INSTALLS += documentation
# application icons - scalable icon (used internally) won't be used
# unless the 24x24 (used for desktop files) exists.
# application icons - scalable icon (used internally), 48x48 provided
# in case something else needs it
exists(./images/application/cmst.png)
icon24.path = /usr/share/icons/hicolor/24x24/apps
icon24.files = ./images/application/cmst.png
INSTALLS += icon24
icon48.path = /usr/share/icons/hicolor/48x48/apps
icon48.files = ./images/application/cmst.png
INSTALLS += icon48
exists(./images/application/cmst.svg) {
iconsvg.path = /usr/share/icons/hicolor/scalable/apps
iconsvg.files = ./images/application/cmst.svg
......@@ -40,6 +41,11 @@ else {
system(sed -i 's/Icon=cmst/Icon=preferences-system-network/g' "./misc/desktop/cmst-autostart.desktop")
}
# license
license.path = /usr/share/licenses/cmst
license.files = ./text/LICENSE
INSTALLS += license
# desktop file
desktop.path = /usr/share/applications
desktop.files = ./misc/desktop/cmst.desktop
......
......@@ -15,22 +15,18 @@
<file>translations/cmst_en_US.qm</file>
</qresource>
<qresource prefix="icons">
<file>images/systemtray/connect_creating.png</file>
<file>images/systemtray/cancel.png</file>
<file>images/systemtray/connect_no.png</file>
<file>images/systemtray/wired_established.png</file>
<file>images/systemtray/wl000.png</file>
<file>images/systemtray/wl025.png</file>
<file>images/systemtray/wl050.png</file>
<file>images/systemtray/wl075.png</file>
<file>images/systemtray/wl100.png</file>
<file>images/interface/cancel.png</file>
<file>images/interface/connect_creating.png</file>
<file>images/interface/connect_established.png</file>
<file>images/interface/connect_no.png</file>
<file>images/interface/favorite.png</file>
<file>images/interface/whatsthis.png</file>
<file>images/interface/golfball_green.png</file>
<file>images/interface/golfball_red.png</file>
<file>images/raw_art/application-exit1.png</file>
<file>images/raw_art/info2.png</file>
<file>images/raw_art/network-idle.png</file>
<file>images/raw_art/network-offline.png</file>
<file>images/raw_art/network-transmit-receive.png</file>
<file>images/raw_art/nm-signal-00.png</file>
<file>images/raw_art/nm-signal-25.png</file>
<file>images/raw_art/nm-signal-50.png</file>
<file>images/raw_art/nm-signal-75.png</file>
<file>images/raw_art/nm-signal-100.png</file>
<file>images/overlay/overlay-warningnet9.png</file>
</qresource>
</RCC>
cmst (2015.12.03-1) unstable; urgency=medium
* Cherry-picking upstream version 2015.12.03.
* Removed extra license file
-- Alf Gaida <agaida@siduction.org> Thu, 17 Dec 2015 01:17:06 +0100
cmst (2015.09.10-1) unstable; urgency=medium
* Initial release. Closes: #751104
......
......@@ -9,6 +9,7 @@ export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
override_dh_install:
$(RM) -r $(CURDIR)/debian/tmp/usr/share/icons
find . -name LICENSE -delete
dh_install
override_dh_strip:
......
images/application/cmst.png

2.35 KB | W: | H:

images/application/cmst.png

292 KB | W: | H:

images/application/cmst.png
images/application/cmst.png
images/application/cmst.png
images/application/cmst.png
  • 2-up
  • Swipe
  • Onion skin
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,9 +2,11 @@ Program icons are located in the ./variations subdirectory.
To build one into the program either copy or symlink the icons you wish
to use into this directory and call them: cmst.png and cmst.svg. You need
both the 24x24 PNG version and scalable SVG versions copied.
both the 48x48 PNG version and scalable SVG versions copied.
If you wish to use the freedesktop theme icon (preferences-system-network) for
the program icon then simply do not copy or symlink a cmst.png file. The
scalable version is ignored if the 24x24 PNG version does not exist. If
the 24x24 verison is not found the theme icon will be used instead.
scalable version is ignored if the 48x48 PNG version does not exist. If
the 48x48 verison is not found the theme icon will be used instead.
The 24x24 directory is depreciated now and may be removed in the future.
This diff is collapsed.
images/interface/golfball_green.png

1.19 KB | W: | H:

images/interface/golfball_green.png

1.15 KB | W: | H:

images/interface/golfball_green.png
images/interface/golfball_green.png
images/interface/golfball_green.png
images/interface/golfball_green.png
  • 2-up
  • Swipe
  • Onion skin
images/interface/golfball_red.png

1.19 KB | W: | H:

images/interface/golfball_red.png

1.15 KB | W: | H:

images/interface/golfball_red.png
images/interface/golfball_red.png
images/interface/golfball_red.png
images/interface/golfball_red.png
  • 2-up
  • Swipe
  • Onion skin
<b><center>Connman System Tray (CMST)</center></b>
<b><center>Change Log</center></b>
<br><b>2015.10.03</b>
<b>2015.12.03</b>
<ul>
<li>CMST icon by Progandy was reworked and made cleaner by Hagabaka.</li>
<li>Added feature to run an external program automatically after a connect. The <i>Advanced Controls</i> checkbox must be checked to access this.<li>
<li>Expanded functionality of system tray icon menu to toggle power for technologies and to connect or disconnect wifi services.</li>
<li>System tray menu can be torn off and live in its own window on the desktop.</li>
<li>Internal icons can be colorized (color selector control on Preferences Tab).</li>
<li>Reworked internals to store text returned by Connman as is and only translate for display.</li>
<li>Fixed issue #118 (tray icon not visible in Plasma 5)</li>
<li>Fixed issue #119 (not starting when XDG_CURRENT_DESKTOP=kde is set and not actually running KDE).</li>
</ul>
<b>2015.10.03</b>
<ul>
<li>Browser selections in Agent dialog improved and added xdg-open option (by Yaohan Chen).</li>
<li>-i (--icon-theme) command line option will now accept a theme name.</li>
......@@ -12,7 +23,7 @@
<li>Added -B command line option to bypass all startup options set in Preferences.</li>
<li>New CMST icon (by Progandy).</li>
</ul>
<br><b>2015.03.01</b>
<b>2015.03.01</b>
<ul>
<li>Translation to Chinese by Jianfeng Zhang.</li>
<li>Option to create a entry in the users autostart direcory (coded by Lester Bico).</li>
......@@ -20,25 +31,24 @@
<li>Start options formally only available from the command line may now be set in preferences.</li>
<li>Added --fake-transparency command line option to try and work around system trays that display transparent backgrounds as opaque (generally white).</li>
</ul>
<br><b>2014.12.14</b>
<b>2014.12.14</b>
<ul>
<li>If a Wifi service falls into the failure state provide an option to try and automatically reconnect.</li>
<li>Removed -r (--wife-scan-rate) command line option and all code internal for having CMST to WiFi scans. This was conflicting with Connman auto scans.</li>
<li>Available services now shown with right click on system tray icon.</li>
</ul>
<br><b>2014.12.05</b>
<b>2014.12.05</b>
<ul>
<li>Adding translations (Russian Complete).</li>
<li>Fixed response time for Agent dialog when it is needed.</li>
</ul>
<br><b>2014.11.24</b>
<b>2014.11.24</b>
<ul>
<li>Added CMST icon.</li>
<li>Added --use-xfce command line option. Code for XFCE that breaks KDE now must be called with this option.</li>
<li>Fixed integer overflow for counters.</li>
</ul>
<br>
<br><b>2014.11.18</b>
<b>2014.11.18</b>
<ul>
<li>Removed incorrect validator from Properties Editor domains field.</li>
<li>Provisioning Editor to create and edit Connman service configuration files.</li>
......@@ -46,8 +56,7 @@
<li>Systemtray icon added for a connection in the "failure" state.</li>
<li>Fixed and cleaned up behavior of notifications and message boxes for various error conditions.</li>
</ul>
<br>
<br><b>2014.10.15</b>
<b>2014.10.15</b>
<ul>
<li>Connect, Disconnect, and Remove buttons in the Wifi tab are disabled if no Wifi services are available.<li>
<li>If only one WiFi service exists it is no longer necessary to select it first before pressing the Connect button.</li>
......@@ -58,14 +67,13 @@
<li>Autoconnect property can be set or unset from the property editor.</li>
<li>Fixed the IPv6 validator in the properties editor.</li>
</ul>
<br>
<br><b>2014.08.23</b>
<b>2014.08.23</b>
<ul>
<li>Removed tooltips for obvious controls. Tooltips now are only available for dynamic GUI elements (unless the user disables them in preferences).</li>
<li>Detailed service configuration dialog.</li>
<li>Added scrollbars and additional information to the service details tab.</li>
</ul>
<br><b>2014.07.19</b>
<b>2014.07.19</b>
<ul>
<li>UI updated to allow notifications from the system tray icon or from a notification server.</li>
<li>Notifications can be sent to a notification server if present.</li>
......@@ -73,19 +81,19 @@
<li>Scan WiFi button moved to Technologies box and renamed "Rescan". No change in function, just a more accurate representation of what the button does.</li>
<li>Connections in the "Ready" state show ready with an appropriate icon in the system tray instead of showing disconnected.</li>
</ul>
<br><b>2014.07.01 </b>
<b>2014.07.01 </b>
<ul>
<li>Added "scan wifi" button to force a rescan of wifi sevices.</li>
<li>Added a checkbox to preferences to reset the counters at startup and when a service changes.</li>
<li>Finished the internal rework to catch and process dbus signals.</li>
</ul>
<br><b>2014.06.22 </b>
<b>2014.06.22 </b>
<ul>
<li>Check to make sure only a single instance of the program can be run.</li>
<li>Shipped with a .desktop file and icon.</li>
<li>Internal changes to catching dbus signals.</li>
</ul>
<br><b>2014.06.14</b>
<b>2014.06.14</b>
<ul>
<li>Selecting "Maximize" from the tray icon will show the dialog "normal" instead of "maximized".</li>
<li>Enabled display of size grip in corner of dialog</li>
......@@ -101,32 +109,32 @@
<li>A manpage is now provided and installed.</li>
<li>The system tray icon can optionally show notify messages in popups.</li>
</ul>
<br><b>2014.05.10</b>
<b>2014.05.10</b>
<ul>
<li>Left mouse click in system tray will toggle the interface up and down (coded by: Brett Dutro)
<li>Option to use system icon theme if available</li>
<li>Added MoveBefore and MoveAfter buttons to services on first page</li>
</ul>
<br><b>2014.03.29 - </b>Revised per input from Arch Linux Forums
<b>2014.03.29 - </b>Revised per input from Arch Linux Forums
<ul>
<li>Added command line option to wait a specified time to create the system tray</li>
</ul>
<br><b>2014.03.13 - </b>Revised per input from Arch Linux Forums
<b>2014.03.13 - </b>Revised per input from Arch Linux Forums
<ul>
<li>Command line options to show help, version, disable the system tray and start the program minimized.</li>
<li>Added SSID field to the agent request information dialog.</li>
<li>Added check to make sure a system tray exists before we try to use it.</li>
<li>Added option to log the input request from the connman daemon.</li>
</ul>
<br><b>2014.01.18 - </b>Revised
<b>2014.01.18 - </b>Revised
<ul>
<li>Improved error dialog in Agent and ask for retry on bad password.</li>
</ul>
<br><b>2014.01.14 - </b>Revised
<b>2014.01.14 - </b>Revised
<ul>
<li>Fixed up tooltip popup on system tray icon</li>
</ul>
<br><b>2014.01.11 - </b>Posted to Arch Linux Forum
<b>2014.01.11 - </b>Posted to Arch Linux Forum
<ul>
<li>Added the counters and the Counters tab</li>
<li>Fixed a SEGFAULT when connecting a Wifi service after the service order had changed.</li>
......@@ -134,7 +142,6 @@
<li>Fixed SEGFAULTS if the program fails to find or connect to DBUS</li>
<li>Added a button on the WiFi page to remove a Wifi service</li>
</ul>
<br>
<b>2014.01.05 - </b>Initial Version
<ul>
<li>View and set global connection properties</li>
......
......@@ -29,6 +29,12 @@
# select another valid resource which must already exist. You cannot add
# resources using this file. This key/value pair is mandatory.
#
# colorize = (no/yes, 0/1, or a color in the format RRGGBB) if yes or 1
# the internal icons will be colorized according to the value specified
# from preferences. If a color number is provided the icon will be colorized
# to the specified color. If no or 0 then the icon is not colorized.
# Colorizing is only available for internal icons defined in the resource line.
#
# fdo_name = is the name of one of the official Freedesktop.org named icons.
# This key/value pair is optional.
#
......@@ -43,6 +49,12 @@
# is the OFF state. This is used for icons which show a different picture
# depending on state. Play/Pause in a media player would be a classic example.
#
# The text in a resource value field may also contain whitespace. If
# it does the text on each side should be a complete resource path. Left
# of the whitespace is the base picture in raw_art, to the right is the
# overlay file to place over the raw_art icon. This is only for
# internal icons from the resource file.
#
# If this file becomes corrupted by editing or by other means is can be
# regenerated simply by deleting it, then stopping and starting CMST.
#
......@@ -65,90 +77,108 @@
# interface icons
[icon]
icon_name = state_error
resource = :/icons/images/interface/cancel.png
resource = :/icons/images/raw_art/application-exit1.png
colorize = no
fdo_name = network_error
[icon]
icon_name = state_ready
resource = :/icons/images/interface/connect_creating.png
resource = :/icons/images/raw_art/network-idle.png
colorize = yes
fdo_name = network-idle
[icon]
icon_name = state_online
resource = :/icons/images/interface/connect_established.png
resource = :/icons/images/raw_art/network-transmit-receive.png
colorize = yes
fdo_name = network-transmit-receive
[icon]
icon_name = state_not_ready
resource = :/icons/images/interface/connect_no.png
resource = :/icons/images/raw_art/network-offline.png :/icons/images/overlay/overlay-warningnet9.png
colorize = yes
fdo_name = network-offline
[icon]
icon_name = favorite
resource = :/icons/images/interface/favorite.png
resource = :/icons/images/raw_art/nm-signal-100.png
colorize = yes
fdo_name = emblem-favorite
[icon]
icon_name = offline_mode_engaged
resource = :/icons/images/interface/golfball_green.png
resource = :/icons/images/raw_art/golfball_green.png
colorize = no
[icon]
icon_name = offline_mode_disengaged
resource = :/icons/images/interface/golfball_red.png
resource = :/icons/images/raw_art/golfball_red.png
colorize = no
[icon]
icon_name = whats_this
resource = :/icons/images/interface/whatsthis.png
resource = :/icons/images/raw_art/info2.png
colorize = 1361D9
fdo_name = system-help
#
# systemtray icons
[icon]
icon_name = connection_failure
resource = :/icons/images/systemtray/cancel.png
resource = :/icons/images/raw_art/application-exit1.png
colorize = no
fdo_name = network-error
[icon]
icon_name = connection_ready
resource = :/icons/images/systemtray/connect_creating.png
resource = :/icons/images/raw_art/network-idle.png
colorize = yes
fdo_name = network-idle
[icon]
icon_name = connection_not_ready
resource = :/icons/images/systemtray/connect_no.png
resource = :/icons/images/raw_art/network-offline.png :/icons/images/overlay/overlay-warningnet9.png
colorize = yes
fdo_name = network-offline
[icon]
icon_name = connection_wired
resource = :/icons/images/systemtray/wired_established.png
resource = :/icons/images/raw_art/network-transmit-receive.png
colorize = yes
fdo_name = network-wired
[icon]
icon_name = connection_wireless
resource = :/icons/images/systemtray/wl000.png
resource = :/icons/images/raw_art/nm-signal-100.png
colorize = yes
fdo_name = network-wireless
[icon]
icon_name = connection_wifi_000
resource = :/icons/images/systemtray/wl000.png
resource = :/icons/images/raw_art/nm-signal-00.png
colorize = yes
theme_names = network-wireless-signal-none-symbolic, network-wireless-connected-00
[icon]
icon_name = connection_wifi_025
resource = :/icons/images/systemtray/wl025.png
resource = :/icons/images/raw_art/nm-signal-25.png
colorize = yes
theme_names = network-wireless-signal-weak-symbolic, network-wireless-connected-25
[icon]
icon_name = connection_wifi_050
resource = :/icons/images/systemtray/wl050.png
resource = :/icons/images/raw_art/nm-signal-50.png
colorize = yes
theme_names = network-wireless-signal-ok-symbolic, network-wireless-connected-50
[icon]
icon_name = connection_wifi_075
resource = :/icons/images/systemtray/wl075.png
resource = :/icons/images/raw_art/nm-signal-75.png
colorize = yes
theme_names = network-wireless-signal-good-symbolic, network-wireless-connected-75
[icon]
icon_name = connection_wifi_100
resource = :/icons/images/systemtray/wl100.png
resource = :/icons/images/raw_art/nm-signal-100.png
colorize = yes
theme_names = network-wireless-signal-excellent-symbolic, network-wireless-connected-100
......@@ -2,7 +2,7 @@
<center>Copyright (C) 2013-2015</center>
<center>by</center>
<center>Andrew J. Bibb</center>
<br>License: <b>MIT</b>
<br>License: <b>MIT (Expat)</b>
<br>
<br>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
<br>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment