diff --git a/Graphis_pyinstaller.spec b/Graphis_pyinstaller.spec index 28d02dd..0b23fc0 100644 --- a/Graphis_pyinstaller.spec +++ b/Graphis_pyinstaller.spec @@ -1,13 +1,14 @@ # -*- mode: python ; coding: utf-8 -*- -name_app = 'GRAPHIS_2_1_2' +name_app = 'GRAPHIS_2_2' block_cipher = None added_files = [ ( 'app/bin/*', 'app/bin' ), ( 'app/icons/icon.png', 'app/icons'), - ( 'graphis.config', '.' ) + ( 'graphis.config', '.' ), + ( 'app/ThirdPartyNotices.json', 'app' ) ] a = Analysis( ['graphis.py'], diff --git a/app/ThirdPartyNotices.json b/app/ThirdPartyNotices.json new file mode 100644 index 0000000..4bf1125 --- /dev/null +++ b/app/ThirdPartyNotices.json @@ -0,0 +1,73 @@ +[{ + "License": "PSF-2.0", + "LicenseText": "1. This LICENSE AGREEMENT is between the Python Software Foundation (\"PSF\"), and\n the Individual or Organization (\"Licensee\") accessing and otherwise using Python\n 3.12.2 software in source or binary form and its associated documentation.\n\n2. Subject to the terms and conditions of this License Agreement, PSF hereby\n grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,\n analyze, test, perform and/or display publicly, prepare derivative works,\n distribute, and otherwise use Python 3.12.2 alone or in any derivative\n version, provided, however, that PSF's License Agreement and PSF's notice of\n copyright, i.e., \"Copyright \u00a9 2001-2023 Python Software Foundation; All Rights\n Reserved\" are retained in Python 3.12.2 alone or in any derivative version\n prepared by Licensee.\n\n3. In the event Licensee prepares a derivative work that is based on or\n incorporates Python 3.12.2 or any part thereof, and wants to make the\n derivative work available to others as provided herein, then Licensee hereby\n agrees to include in any such work a brief summary of the changes made to Python\n 3.12.2.\n\n4. PSF is making Python 3.12.2 available to Licensee on an \"AS IS\" basis.\n PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF\n EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR\n WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE\n USE OF PYTHON 3.12.2 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.\n\n5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.12.2\n FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF\n MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.12.2, OR ANY DERIVATIVE\n THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\n\n6. This License Agreement will automatically terminate upon a material breach of\n its terms and conditions.\n\n7. Nothing in this License Agreement shall be deemed to create any relationship\n of agency, partnership, or joint venture between PSF and Licensee. This License\n Agreement does not grant permission to use PSF trademarks or trade name in a\n trademark sense to endorse or promote products or services of Licensee, or any\n third party.\n\n8. By copying, installing or otherwise using Python 3.12.2, Licensee agrees\n to be bound by the terms and conditions of this License Agreement.", + "Name": "Python", + "Version": "3.10", + "link": "https://docs.python.org/3/license.html" + }, + { + "License": "GNU LESSER GENERAL PUBLIC LICENSE version 2.1", + "LicenseText": "", + "Name": "LibRAW", + "Version": "0.21.2", + "link": "https://www.libraw.org/about" + }, + { + "License": "BSD License; GNU General Public License v3 or later (GPLv3+)", + "LicenseText": "Copyright 2012 Sven Marnach, 2019-2023 Kevin M (sylikc)\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n * The names of its contributors may not be used to endorse or promote\n products derived from this software without specific prior written\n permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL SVEN MARNACH BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\nOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n", + "Name": "PyExifTool", + "Version": "0.5.6" + }, + { + "License": "GNU Library or Lesser General Public License (LGPL); Other/Proprietary License", + "LicenseText": " GNU LESSER GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. \n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n This version of the GNU Lesser General Public License incorporates\nthe terms and conditions of version 3 of the GNU General Public\nLicense, supplemented by the additional permissions listed below.\n\n 0. Additional Definitions.\n\n As used herein, \"this License\" refers to version 3 of the GNU Lesser\nGeneral Public License, and the \"GNU GPL\" refers to version 3 of the GNU\nGeneral Public License.\n\n \"The Library\" refers to a covered work governed by this License,\nother than an Application or a Combined Work as defined below.\n\n An \"Application\" is any work that makes use of an interface provided\nby the Library, but which is not otherwise based on the Library.\nDefining a subclass of a class defined by the Library is deemed a mode\nof using an interface provided by the Library.\n\n A \"Combined Work\" is a work produced by combining or linking an\nApplication with the Library. The particular version of the Library\nwith which the Combined Work was made is also called the \"Linked\nVersion\".\n\n The \"Minimal Corresponding Source\" for a Combined Work means the\nCorresponding Source for the Combined Work, excluding any source code\nfor portions of the Combined Work that, considered in isolation, are\nbased on the Application, and not on the Linked Version.\n\n The \"Corresponding Application Code\" for a Combined Work means the\nobject code and/or source code for the Application, including any data\nand utility programs needed for reproducing the Combined Work from the\nApplication, but excluding the System Libraries of the Combined Work.\n\n 1. Exception to Section 3 of the GNU GPL.\n\n You may convey a covered work under sections 3 and 4 of this License\nwithout being bound by section 3 of the GNU GPL.\n\n 2. Conveying Modified Versions.\n\n If you modify a copy of the Library, and, in your modifications, a\nfacility refers to a function or data to be supplied by an Application\nthat uses the facility (other than as an argument passed when the\nfacility is invoked), then you may convey a copy of the modified\nversion:\n\n a) under this License, provided that you make a good faith effort to\n ensure that, in the event an Application does not supply the\n function or data, the facility still operates, and performs\n whatever part of its purpose remains meaningful, or\n\n b) under the GNU GPL, with none of the additional permissions of\n this License applicable to that copy.\n\n 3. Object Code Incorporating Material from Library Header Files.\n\n The object code form of an Application may incorporate material from\na header file that is part of the Library. You may convey such object\ncode under terms of your choice, provided that, if the incorporated\nmaterial is not limited to numerical parameters, data structure\nlayouts and accessors, or small macros, inline functions and templates\n(ten or fewer lines in length), you do both of the following:\n\n a) Give prominent notice with each copy of the object code that the\n Library is used in it and that the Library and its use are\n covered by this License.\n\n b) Accompany the object code with a copy of the GNU GPL and this license\n document.\n\n 4. Combined Works.\n\n You may convey a Combined Work under terms of your choice that,\ntaken together, effectively do not restrict modification of the\nportions of the Library contained in the Combined Work and reverse\nengineering for debugging such modifications, if you also do each of\nthe following:\n\n a) Give prominent notice with each copy of the Combined Work that\n the Library is used in it and that the Library and its use are\n covered by this License.\n\n b) Accompany the Combined Work with a copy of the GNU GPL and this license\n document.\n\n c) For a Combined Work that displays copyright notices during\n execution, include the copyright notice for the Library among\n these notices, as well as a reference directing the user to the\n copies of the GNU GPL and this license document.\n\n d) Do one of the following:\n\n 0) Convey the Minimal Corresponding Source under the terms of this\n License, and the Corresponding Application Code in a form\n suitable for, and under terms that permit, the user to\n recombine or relink the Application with a modified version of\n the Linked Version to produce a modified Combined Work, in the\n manner specified by section 6 of the GNU GPL for conveying\n Corresponding Source.\n\n 1) Use a suitable shared library mechanism for linking with the\n Library. A suitable mechanism is one that (a) uses at run time\n a copy of the Library already present on the user's computer\n system, and (b) will operate properly with a modified version\n of the Library that is interface-compatible with the Linked\n Version.\n\n e) Provide Installation Information, but only if you would otherwise\n be required to provide such information under section 6 of the\n GNU GPL, and only to the extent that such information is\n necessary to install and execute a modified version of the\n Combined Work produced by recombining or relinking the\n Application with a modified version of the Linked Version. (If\n you use option 4d0, the Installation Information must accompany\n the Minimal Corresponding Source and Corresponding Application\n Code. If you use option 4d1, you must provide the Installation\n Information in the manner specified by section 6 of the GNU GPL\n for conveying Corresponding Source.)\n\n 5. Combined Libraries.\n\n You may place library facilities that are a work based on the\nLibrary side by side in a single library together with other library\nfacilities that are not Applications and are not covered by this\nLicense, and convey such a combined library under terms of your\nchoice, if you do both of the following:\n\n a) Accompany the combined library with a copy of the same work based\n on the Library, uncombined with any other library facilities,\n conveyed under the terms of this License.\n\n b) Give prominent notice with the combined library that part of it\n is a work based on the Library, and explaining where to find the\n accompanying uncombined form of the same work.\n\n 6. Revised Versions of the GNU Lesser General Public License.\n\n The Free Software Foundation may publish revised and/or new versions\nof the GNU Lesser General Public License from time to time. Such new\nversions will be similar in spirit to the present version, but may\ndiffer in detail to address new problems or concerns.\n\n Each version is given a distinguishing version number. If the\nLibrary as you received it specifies that a certain numbered version\nof the GNU Lesser General Public License \"or any later version\"\napplies to it, you have the option of following the terms and\nconditions either of that published version or of any later version\npublished by the Free Software Foundation. If the Library as you\nreceived it does not specify a version number of the GNU Lesser\nGeneral Public License, you may choose any version of the GNU Lesser\nGeneral Public License ever published by the Free Software Foundation.\n\n If the Library as you received it specifies that a proxy can decide\nwhether future versions of the GNU Lesser General Public License shall\napply, that proxy's public statement of acceptance of any version is\npermanent authorization for you to choose that version for the\nLibrary.", + "Name": "PySide6", + "Version": "6.6.2", + "link": "https://doc.qt.io/qt-6/licenses-used-in-qt.html" + }, + { + "License": "GNU Library or Lesser General Public License (LGPL); Other/Proprietary License", + "LicenseText": " GNU LESSER GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. \n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n This version of the GNU Lesser General Public License incorporates\nthe terms and conditions of version 3 of the GNU General Public\nLicense, supplemented by the additional permissions listed below.\n\n 0. Additional Definitions.\n\n As used herein, \"this License\" refers to version 3 of the GNU Lesser\nGeneral Public License, and the \"GNU GPL\" refers to version 3 of the GNU\nGeneral Public License.\n\n \"The Library\" refers to a covered work governed by this License,\nother than an Application or a Combined Work as defined below.\n\n An \"Application\" is any work that makes use of an interface provided\nby the Library, but which is not otherwise based on the Library.\nDefining a subclass of a class defined by the Library is deemed a mode\nof using an interface provided by the Library.\n\n A \"Combined Work\" is a work produced by combining or linking an\nApplication with the Library. The particular version of the Library\nwith which the Combined Work was made is also called the \"Linked\nVersion\".\n\n The \"Minimal Corresponding Source\" for a Combined Work means the\nCorresponding Source for the Combined Work, excluding any source code\nfor portions of the Combined Work that, considered in isolation, are\nbased on the Application, and not on the Linked Version.\n\n The \"Corresponding Application Code\" for a Combined Work means the\nobject code and/or source code for the Application, including any data\nand utility programs needed for reproducing the Combined Work from the\nApplication, but excluding the System Libraries of the Combined Work.\n\n 1. Exception to Section 3 of the GNU GPL.\n\n You may convey a covered work under sections 3 and 4 of this License\nwithout being bound by section 3 of the GNU GPL.\n\n 2. Conveying Modified Versions.\n\n If you modify a copy of the Library, and, in your modifications, a\nfacility refers to a function or data to be supplied by an Application\nthat uses the facility (other than as an argument passed when the\nfacility is invoked), then you may convey a copy of the modified\nversion:\n\n a) under this License, provided that you make a good faith effort to\n ensure that, in the event an Application does not supply the\n function or data, the facility still operates, and performs\n whatever part of its purpose remains meaningful, or\n\n b) under the GNU GPL, with none of the additional permissions of\n this License applicable to that copy.\n\n 3. Object Code Incorporating Material from Library Header Files.\n\n The object code form of an Application may incorporate material from\na header file that is part of the Library. You may convey such object\ncode under terms of your choice, provided that, if the incorporated\nmaterial is not limited to numerical parameters, data structure\nlayouts and accessors, or small macros, inline functions and templates\n(ten or fewer lines in length), you do both of the following:\n\n a) Give prominent notice with each copy of the object code that the\n Library is used in it and that the Library and its use are\n covered by this License.\n\n b) Accompany the object code with a copy of the GNU GPL and this license\n document.\n\n 4. Combined Works.\n\n You may convey a Combined Work under terms of your choice that,\ntaken together, effectively do not restrict modification of the\nportions of the Library contained in the Combined Work and reverse\nengineering for debugging such modifications, if you also do each of\nthe following:\n\n a) Give prominent notice with each copy of the Combined Work that\n the Library is used in it and that the Library and its use are\n covered by this License.\n\n b) Accompany the Combined Work with a copy of the GNU GPL and this license\n document.\n\n c) For a Combined Work that displays copyright notices during\n execution, include the copyright notice for the Library among\n these notices, as well as a reference directing the user to the\n copies of the GNU GPL and this license document.\n\n d) Do one of the following:\n\n 0) Convey the Minimal Corresponding Source under the terms of this\n License, and the Corresponding Application Code in a form\n suitable for, and under terms that permit, the user to\n recombine or relink the Application with a modified version of\n the Linked Version to produce a modified Combined Work, in the\n manner specified by section 6 of the GNU GPL for conveying\n Corresponding Source.\n\n 1) Use a suitable shared library mechanism for linking with the\n Library. A suitable mechanism is one that (a) uses at run time\n a copy of the Library already present on the user's computer\n system, and (b) will operate properly with a modified version\n of the Library that is interface-compatible with the Linked\n Version.\n\n e) Provide Installation Information, but only if you would otherwise\n be required to provide such information under section 6 of the\n GNU GPL, and only to the extent that such information is\n necessary to install and execute a modified version of the\n Combined Work produced by recombining or relinking the\n Application with a modified version of the Linked Version. (If\n you use option 4d0, the Installation Information must accompany\n the Minimal Corresponding Source and Corresponding Application\n Code. If you use option 4d1, you must provide the Installation\n Information in the manner specified by section 6 of the GNU GPL\n for conveying Corresponding Source.)\n\n 5. Combined Libraries.\n\n You may place library facilities that are a work based on the\nLibrary side by side in a single library together with other library\nfacilities that are not Applications and are not covered by this\nLicense, and convey such a combined library under terms of your\nchoice, if you do both of the following:\n\n a) Accompany the combined library with a copy of the same work based\n on the Library, uncombined with any other library facilities,\n conveyed under the terms of this License.\n\n b) Give prominent notice with the combined library that part of it\n is a work based on the Library, and explaining where to find the\n accompanying uncombined form of the same work.\n\n 6. Revised Versions of the GNU Lesser General Public License.\n\n The Free Software Foundation may publish revised and/or new versions\nof the GNU Lesser General Public License from time to time. Such new\nversions will be similar in spirit to the present version, but may\ndiffer in detail to address new problems or concerns.\n\n Each version is given a distinguishing version number. If the\nLibrary as you received it specifies that a certain numbered version\nof the GNU Lesser General Public License \"or any later version\"\napplies to it, you have the option of following the terms and\nconditions either of that published version or of any later version\npublished by the Free Software Foundation. If the Library as you\nreceived it does not specify a version number of the GNU Lesser\nGeneral Public License, you may choose any version of the GNU Lesser\nGeneral Public License ever published by the Free Software Foundation.\n\n If the Library as you received it specifies that a proxy can decide\nwhether future versions of the GNU Lesser General Public License shall\napply, that proxy's public statement of acceptance of any version is\npermanent authorization for you to choose that version for the\nLibrary.", + "Name": "PySide6-Addons", + "Version": "6.6.2", + "link": "https://doc.qt.io/qt-6/licenses-used-in-qt.html" + }, + { + "License": "GNU Library or Lesser General Public License (LGPL); Other/Proprietary License", + "LicenseText": " GNU LESSER GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. \n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n This version of the GNU Lesser General Public License incorporates\nthe terms and conditions of version 3 of the GNU General Public\nLicense, supplemented by the additional permissions listed below.\n\n 0. Additional Definitions.\n\n As used herein, \"this License\" refers to version 3 of the GNU Lesser\nGeneral Public License, and the \"GNU GPL\" refers to version 3 of the GNU\nGeneral Public License.\n\n \"The Library\" refers to a covered work governed by this License,\nother than an Application or a Combined Work as defined below.\n\n An \"Application\" is any work that makes use of an interface provided\nby the Library, but which is not otherwise based on the Library.\nDefining a subclass of a class defined by the Library is deemed a mode\nof using an interface provided by the Library.\n\n A \"Combined Work\" is a work produced by combining or linking an\nApplication with the Library. The particular version of the Library\nwith which the Combined Work was made is also called the \"Linked\nVersion\".\n\n The \"Minimal Corresponding Source\" for a Combined Work means the\nCorresponding Source for the Combined Work, excluding any source code\nfor portions of the Combined Work that, considered in isolation, are\nbased on the Application, and not on the Linked Version.\n\n The \"Corresponding Application Code\" for a Combined Work means the\nobject code and/or source code for the Application, including any data\nand utility programs needed for reproducing the Combined Work from the\nApplication, but excluding the System Libraries of the Combined Work.\n\n 1. Exception to Section 3 of the GNU GPL.\n\n You may convey a covered work under sections 3 and 4 of this License\nwithout being bound by section 3 of the GNU GPL.\n\n 2. Conveying Modified Versions.\n\n If you modify a copy of the Library, and, in your modifications, a\nfacility refers to a function or data to be supplied by an Application\nthat uses the facility (other than as an argument passed when the\nfacility is invoked), then you may convey a copy of the modified\nversion:\n\n a) under this License, provided that you make a good faith effort to\n ensure that, in the event an Application does not supply the\n function or data, the facility still operates, and performs\n whatever part of its purpose remains meaningful, or\n\n b) under the GNU GPL, with none of the additional permissions of\n this License applicable to that copy.\n\n 3. Object Code Incorporating Material from Library Header Files.\n\n The object code form of an Application may incorporate material from\na header file that is part of the Library. You may convey such object\ncode under terms of your choice, provided that, if the incorporated\nmaterial is not limited to numerical parameters, data structure\nlayouts and accessors, or small macros, inline functions and templates\n(ten or fewer lines in length), you do both of the following:\n\n a) Give prominent notice with each copy of the object code that the\n Library is used in it and that the Library and its use are\n covered by this License.\n\n b) Accompany the object code with a copy of the GNU GPL and this license\n document.\n\n 4. Combined Works.\n\n You may convey a Combined Work under terms of your choice that,\ntaken together, effectively do not restrict modification of the\nportions of the Library contained in the Combined Work and reverse\nengineering for debugging such modifications, if you also do each of\nthe following:\n\n a) Give prominent notice with each copy of the Combined Work that\n the Library is used in it and that the Library and its use are\n covered by this License.\n\n b) Accompany the Combined Work with a copy of the GNU GPL and this license\n document.\n\n c) For a Combined Work that displays copyright notices during\n execution, include the copyright notice for the Library among\n these notices, as well as a reference directing the user to the\n copies of the GNU GPL and this license document.\n\n d) Do one of the following:\n\n 0) Convey the Minimal Corresponding Source under the terms of this\n License, and the Corresponding Application Code in a form\n suitable for, and under terms that permit, the user to\n recombine or relink the Application with a modified version of\n the Linked Version to produce a modified Combined Work, in the\n manner specified by section 6 of the GNU GPL for conveying\n Corresponding Source.\n\n 1) Use a suitable shared library mechanism for linking with the\n Library. A suitable mechanism is one that (a) uses at run time\n a copy of the Library already present on the user's computer\n system, and (b) will operate properly with a modified version\n of the Library that is interface-compatible with the Linked\n Version.\n\n e) Provide Installation Information, but only if you would otherwise\n be required to provide such information under section 6 of the\n GNU GPL, and only to the extent that such information is\n necessary to install and execute a modified version of the\n Combined Work produced by recombining or relinking the\n Application with a modified version of the Linked Version. (If\n you use option 4d0, the Installation Information must accompany\n the Minimal Corresponding Source and Corresponding Application\n Code. If you use option 4d1, you must provide the Installation\n Information in the manner specified by section 6 of the GNU GPL\n for conveying Corresponding Source.)\n\n 5. Combined Libraries.\n\n You may place library facilities that are a work based on the\nLibrary side by side in a single library together with other library\nfacilities that are not Applications and are not covered by this\nLicense, and convey such a combined library under terms of your\nchoice, if you do both of the following:\n\n a) Accompany the combined library with a copy of the same work based\n on the Library, uncombined with any other library facilities,\n conveyed under the terms of this License.\n\n b) Give prominent notice with the combined library that part of it\n is a work based on the Library, and explaining where to find the\n accompanying uncombined form of the same work.\n\n 6. Revised Versions of the GNU Lesser General Public License.\n\n The Free Software Foundation may publish revised and/or new versions\nof the GNU Lesser General Public License from time to time. Such new\nversions will be similar in spirit to the present version, but may\ndiffer in detail to address new problems or concerns.\n\n Each version is given a distinguishing version number. If the\nLibrary as you received it specifies that a certain numbered version\nof the GNU Lesser General Public License \"or any later version\"\napplies to it, you have the option of following the terms and\nconditions either of that published version or of any later version\npublished by the Free Software Foundation. If the Library as you\nreceived it does not specify a version number of the GNU Lesser\nGeneral Public License, you may choose any version of the GNU Lesser\nGeneral Public License ever published by the Free Software Foundation.\n\n If the Library as you received it specifies that a proxy can decide\nwhether future versions of the GNU Lesser General Public License shall\napply, that proxy's public statement of acceptance of any version is\npermanent authorization for you to choose that version for the\nLibrary.", + "Name": "PySide6-Essentials", + "Version": "6.6.2", + "link": "https://doc.qt.io/qt-5/licenses-used-in-qt.html" + }, + { + "License": "GNU Library or Lesser General Public License (LGPL); Other/Proprietary License", + "LicenseText": "UNKNOWN", + "Name": "shiboken6", + "Version": "6.6.2" + }, + { + "License": "BSD License", + "LicenseText": "Copyright (c) 2005-2023, NumPy Developers.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above\n copyright notice, this list of conditions and the following\n disclaimer in the documentation and/or other materials provided\n with the distribution.\n\n * Neither the name of the NumPy Developers nor the names of any\n contributors may be used to endorse or promote products derived\n from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n----\n\nThe NumPy repository and source distributions bundle several libraries that are\ncompatibly licensed. We list these here.\n\nName: lapack-lite\nFiles: numpy/linalg/lapack_lite/*\nLicense: BSD-3-Clause\n For details, see numpy/linalg/lapack_lite/LICENSE.txt\n\nName: tempita\nFiles: tools/npy_tempita/*\nLicense: MIT\n For details, see tools/npy_tempita/license.txt\n\nName: dragon4\nFiles: numpy/core/src/multiarray/dragon4.c\nLicense: MIT\n For license text, see numpy/core/src/multiarray/dragon4.c\n\nName: libdivide\nFiles: numpy/core/include/numpy/libdivide/*\nLicense: Zlib\n For license text, see numpy/core/include/numpy/libdivide/LICENSE.txt\n\n\nNote that the following files are vendored in the repository and sdist but not\ninstalled in built numpy packages:\n\nName: Meson\nFiles: vendored-meson/meson/*\nLicense: Apache 2.0\n For license text, see vendored-meson/meson/COPYING\n\nName: meson-python\nFiles: vendored-meson/meson-python/*\nLicense: MIT\n For license text, see vendored-meson/meson-python/LICENSE\n\nName: spin\nFiles: .spin/cmds.py\nLicense: BSD-3\n For license text, see .spin/LICENSE\n\n----\n\nThis binary distribution of NumPy also bundles the following software:\n\n\nName: OpenBLAS\nFiles: numpy.libs\\libopenblas*.dll\nDescription: bundled as a dynamically linked library\nAvailability: https://github.com/OpenMathLib/OpenBLAS/\nLicense: BSD-3-Clause\n Copyright (c) 2011-2014, The OpenBLAS Project\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n 1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the\n distribution.\n 3. Neither the name of the OpenBLAS project nor the names of\n its contributors may be used to endorse or promote products\n derived from this software without specific prior written\n permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\nName: LAPACK\nFiles: numpy.libs\\libopenblas*.dll\nDescription: bundled in OpenBLAS\nAvailability: https://github.com/OpenMathLib/OpenBLAS/\nLicense: BSD-3-Clause-Attribution\n Copyright (c) 1992-2013 The University of Tennessee and The University\n of Tennessee Research Foundation. All rights\n reserved.\n Copyright (c) 2000-2013 The University of California Berkeley. All\n rights reserved.\n Copyright (c) 2006-2013 The University of Colorado Denver. All rights\n reserved.\n\n $COPYRIGHT$\n\n Additional copyrights may follow\n\n $HEADER$\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are\n met:\n\n - Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n - Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer listed\n in this license in the documentation and/or other materials\n provided with the distribution.\n\n - Neither the name of the copyright holders nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\n The copyright holders provide no reassurances that the source code\n provided does not infringe any patent, copyright, or any other\n intellectual property rights of third parties. The copyright holders\n disclaim any liability to any recipient for claims brought against\n recipient by any third party for infringement of that parties\n intellectual property rights.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\nName: GCC runtime library\nFiles: numpy.libs\\libopenblas*.dll\nDescription: statically linked to files compiled with gcc\nAvailability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libgfortran\nLicense: GPL-3.0-with-GCC-exception\n Copyright (C) 2002-2017 Free Software Foundation, Inc.\n\n Libgfortran is free software; you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation; either version 3, or (at your option)\n any later version.\n\n Libgfortran is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n Under Section 7 of GPL version 3, you are granted additional\n permissions described in the GCC Runtime Library Exception, version\n 3.1, as published by the Free Software Foundation.\n\n You should have received a copy of the GNU General Public License and\n a copy of the GCC Runtime Library Exception along with this program;\n see the files COPYING3 and COPYING.RUNTIME respectively. If not, see\n .\n\n----\n\nFull text of license texts referred to above follows (that they are\nlisted below does not necessarily imply the conditions apply to the\npresent binary release):\n\n----\n\nGCC RUNTIME LIBRARY EXCEPTION\n\nVersion 3.1, 31 March 2009\n\nCopyright (C) 2009 Free Software Foundation, Inc. \n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\nThis GCC Runtime Library Exception (\"Exception\") is an additional\npermission under section 7 of the GNU General Public License, version\n3 (\"GPLv3\"). It applies to a given file (the \"Runtime Library\") that\nbears a notice placed by the copyright holder of the file stating that\nthe file is governed by GPLv3 along with this Exception.\n\nWhen you use GCC to compile a program, GCC may combine portions of\ncertain GCC header files and runtime libraries with the compiled\nprogram. The purpose of this Exception is to allow compilation of\nnon-GPL (including proprietary) programs to use, in this way, the\nheader files and runtime libraries covered by this Exception.\n\n0. Definitions.\n\nA file is an \"Independent Module\" if it either requires the Runtime\nLibrary for execution after a Compilation Process, or makes use of an\ninterface provided by the Runtime Library, but is not otherwise based\non the Runtime Library.\n\n\"GCC\" means a version of the GNU Compiler Collection, with or without\nmodifications, governed by version 3 (or a specified later version) of\nthe GNU General Public License (GPL) with the option of using any\nsubsequent versions published by the FSF.\n\n\"GPL-compatible Software\" is software whose conditions of propagation,\nmodification and use would permit combination with GCC in accord with\nthe license of GCC.\n\n\"Target Code\" refers to output from any compiler for a real or virtual\ntarget processor architecture, in executable form or suitable for\ninput to an assembler, loader, linker and/or execution\nphase. Notwithstanding that, Target Code does not include data in any\nformat that is used as a compiler intermediate representation, or used\nfor producing a compiler intermediate representation.\n\nThe \"Compilation Process\" transforms code entirely represented in\nnon-intermediate languages designed for human-written code, and/or in\nJava Virtual Machine byte code, into Target Code. Thus, for example,\nuse of source code generators and preprocessors need not be considered\npart of the Compilation Process, since the Compilation Process can be\nunderstood as starting with the output of the generators or\npreprocessors.\n\nA Compilation Process is \"Eligible\" if it is done using GCC, alone or\nwith other GPL-compatible software, or if it is done without using any\nwork based on GCC. For example, using non-GPL-compatible Software to\noptimize any GCC intermediate representations would not qualify as an\nEligible Compilation Process.\n\n1. Grant of Additional Permission.\n\nYou have permission to propagate a work of Target Code formed by\ncombining the Runtime Library with Independent Modules, even if such\npropagation would otherwise violate the terms of GPLv3, provided that\nall Target Code was generated by Eligible Compilation Processes. You\nmay then convey such a combination under terms of your choice,\nconsistent with the licensing of the Independent Modules.\n\n2. No Weakening of GCC Copyleft.\n\nThe availability of this Exception does not imply any general\npresumption that third-party software is unaffected by the copyleft\nrequirements of the license of GCC.\n\n----\n\n GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. \n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n Preamble\n\n The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users. We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors. You can apply it to\nyour programs, too.\n\n When we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights. Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received. You must make sure that they, too, receive\nor can get the source code. And you must show them these terms so they\nknow their rights.\n\n Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software. For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so. This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software. The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable. Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts. If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary. To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n The precise terms and conditions for copying, distribution and\nmodification follow.\n\n TERMS AND CONDITIONS\n\n 0. Definitions.\n\n \"This License\" refers to version 3 of the GNU General Public License.\n\n \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n \"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n 1. Source Code.\n\n The \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n\n A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n The Corresponding Source for a work in source code form is that\nsame work.\n\n 2. Basic Permissions.\n\n All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n Conveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n 4. Conveying Verbatim Copies.\n\n You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n 5. Conveying Modified Source Versions.\n\n You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n a) The work must carry prominent notices stating that you modified\n it, and giving a relevant date.\n\n b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under section\n 7. This requirement modifies the requirement in section 4 to\n \"keep intact all notices\".\n\n c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section 7\n additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n\n d) If the work has interactive user interfaces, each must display\n Appropriate Legal Notices; however, if the Program has interactive\n interfaces that do not display Appropriate Legal Notices, your\n work need not make them do so.\n\n A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n\n b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that product\n model, to give anyone who possesses the object code either (1) a\n copy of the Corresponding Source for all the software in the\n product that is covered by this License, on a durable physical\n medium customarily used for software interchange, for a price no\n more than your reasonable cost of physically performing this\n conveying of source, or (2) access to copy the\n Corresponding Source from a network server at no charge.\n\n c) Convey individual copies of the object code with a copy of the\n written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially, and\n only if you received the object code with such an offer, in accord\n with subsection 6b.\n\n d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to the\n Corresponding Source in the same way through the same place at no\n further charge. You need not require recipients to copy the\n Corresponding Source along with the object code. If the place to\n copy the object code is a network server, the Corresponding Source\n may be on a different server (operated by you or a third party)\n that supports equivalent copying facilities, provided you maintain\n clear directions next to the object code saying where to find the\n Corresponding Source. Regardless of what server hosts the\n Corresponding Source, you remain obligated to ensure that it is\n available for as long as needed to satisfy these requirements.\n\n e) Convey the object code using peer-to-peer transmission, provided\n you inform other peers where the object code and Corresponding\n Source of the work are being offered to the general public at no\n charge under subsection 6d.\n\n A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n 7. Additional Terms.\n\n \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n a) Disclaiming warranty or limiting liability differently from the\n terms of sections 15 and 16 of this License; or\n\n b) Requiring preservation of specified reasonable legal notices or\n author attributions in that material or in the Appropriate Legal\n Notices displayed by works containing it; or\n\n c) Prohibiting misrepresentation of the origin of that material, or\n requiring that modified versions of such material be marked in\n reasonable ways as different from the original version; or\n\n d) Limiting the use for publicity purposes of names of licensors or\n authors of the material; or\n\n e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n\n f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified versions of\n it) with contractual assumptions of liability to the recipient, for\n any liability that these contractual assumptions directly impose on\n those licensors and authors.\n\n All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n 8. Termination.\n\n You may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n 9. Acceptance Not Required for Having Copies.\n\n You are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n 10. Automatic Licensing of Downstream Recipients.\n\n Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n\n An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n 11. Patents.\n\n A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n\n A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n 12. No Surrender of Others' Freedom.\n\n If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n 13. Use with the GNU Affero General Public License.\n\n Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n 14. Revised Versions of this License.\n\n The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time. Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n Each version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation. If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n Later license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n 15. Disclaimer of Warranty.\n\n THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n 16. Limitation of Liability.\n\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n 17. Interpretation of Sections 15 and 16.\n\n If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n END OF TERMS AND CONDITIONS\n\n How to Apply These Terms to Your New Programs\n\n If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n To do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n \n Copyright (C) \n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see .\n\nAlso add information on how to contact you by electronic and paper mail.\n\n If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n Copyright (C) \n This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n This is free software, and you are welcome to redistribute it\n under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License. Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n.\n\n The GNU General Public License does not permit incorporating your program\ninto proprietary programs. If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library. If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License. But first, please read\n.\n\nName: libquadmath\nFiles: numpy.libs\\libopenb*.dll\nDescription: statically linked to files compiled with gcc\nAvailability: https://gcc.gnu.org/git/?p=gcc.git;a=tree;f=libquadmath\nLicense: LGPL-2.1-or-later\n\n GCC Quad-Precision Math Library\n Copyright (C) 2010-2019 Free Software Foundation, Inc.\n Written by Francois-Xavier Coudert \n\n This file is part of the libquadmath library.\n Libquadmath is free software; you can redistribute it and/or\n modify it under the terms of the GNU Library General Public\n License as published by the Free Software Foundation; either\n version 2.1 of the License, or (at your option) any later version.\n\n Libquadmath is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html\n", + "Name": "numpy", + "Version": "1.26.3", + "link": "https://numpy.org/doc/stable/license.html" + }, + { + "License": "Historical Permission Notice and Disclaimer (HPND)", + "LicenseText": "The Python Imaging Library (PIL) is\n\n Copyright \u00a9 1997-2011 by Secret Labs AB\n Copyright \u00a9 1995-2011 by Fredrik Lundh\n\nPillow is the friendly PIL fork. It is\n\n Copyright \u00a9 2010-2024 by Jeffrey A. Clark (Alex) and contributors.\n\nLike PIL, Pillow is licensed under the open source HPND License:\n\nBy obtaining, using, and/or copying this software and/or its associated\ndocumentation, you agree that you have read, understood, and will comply\nwith the following terms and conditions:\n\nPermission to use, copy, modify and distribute this software and its\ndocumentation for any purpose and without fee is hereby granted,\nprovided that the above copyright notice appears in all copies, and that\nboth that copyright notice and this permission notice appear in supporting\ndocumentation, and that the name of Secret Labs AB or the author not be\nused in advertising or publicity pertaining to distribution of the software\nwithout specific, written prior permission.\n\nSECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS\nSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.\nIN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL,\nINDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\nOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n \n===== brotli-1.1.0 ===== \n \nCopyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n \n===== freetype-2.13.2 ===== \n \nFREETYPE LICENSES\n-----------------\n\nThe FreeType 2 font engine is copyrighted work and cannot be used\nlegally without a software license. In order to make this project\nusable to a vast majority of developers, we distribute it under two\nmutually exclusive open-source licenses.\n\nThis means that *you* must choose *one* of the two licenses described\nbelow, then obey all its terms and conditions when using FreeType 2 in\nany of your projects or products.\n\n - The FreeType License, found in the file `docs/FTL.TXT`, which is\n similar to the original BSD license *with* an advertising clause\n that forces you to explicitly cite the FreeType project in your\n product's documentation. All details are in the license file.\n This license is suited to products which don't use the GNU General\n Public License.\n\n Note that this license is compatible to the GNU General Public\n License version 3, but not version 2.\n\n - The GNU General Public License version 2, found in\n `docs/GPLv2.TXT` (any later version can be used also), for\n programs which already use the GPL. Note that the FTL is\n incompatible with GPLv2 due to its advertisement clause.\n\nThe contributed BDF and PCF drivers come with a license similar to\nthat of the X Window System. It is compatible to the above two\nlicenses (see files `src/bdf/README` and `src/pcf/README`). The same\nholds for the source code files `src/base/fthash.c` and\n`include/freetype/internal/fthash.h`; they were part of the BDF driver\nin earlier FreeType versions.\n\nThe gzip module uses the zlib license (see `src/gzip/zlib.h`) which\ntoo is compatible to the above two licenses.\n\nThe files `src/autofit/ft-hb.c` and `src/autofit/ft-hb.h` contain code\ntaken almost verbatim from the HarfBuzz file `hb-ft.cc`, which uses\nthe 'Old MIT' license, compatible to the above two licenses.\n\nThe MD5 checksum support (only used for debugging in development\nbuilds) is in the public domain.\n\n\n--- end of LICENSE.TXT ---\n The FreeType Project LICENSE\n ----------------------------\n\n 2006-Jan-27\n\n Copyright 1996-2002, 2006 by\n David Turner, Robert Wilhelm, and Werner Lemberg\n\n\n\nIntroduction\n============\n\n The FreeType Project is distributed in several archive packages;\n some of them may contain, in addition to the FreeType font engine,\n various tools and contributions which rely on, or relate to, the\n FreeType Project.\n\n This license applies to all files found in such packages, and\n which do not fall under their own explicit license. The license\n affects thus the FreeType font engine, the test programs,\n documentation and makefiles, at the very least.\n\n This license was inspired by the BSD, Artistic, and IJG\n (Independent JPEG Group) licenses, which all encourage inclusion\n and use of free software in commercial and freeware products\n alike. As a consequence, its main points are that:\n\n o We don't promise that this software works. However, we will be\n interested in any kind of bug reports. (`as is' distribution)\n\n o You can use this software for whatever you want, in parts or\n full form, without having to pay us. (`royalty-free' usage)\n\n o You may not pretend that you wrote this software. If you use\n it, or only parts of it, in a program, you must acknowledge\n somewhere in your documentation that you have used the\n FreeType code. (`credits')\n\n We specifically permit and encourage the inclusion of this\n software, with or without modifications, in commercial products.\n We disclaim all warranties covering The FreeType Project and\n assume no liability related to The FreeType Project.\n\n\n Finally, many people asked us for a preferred form for a\n credit/disclaimer to use in compliance with this license. We thus\n encourage you to use the following text:\n\n \"\"\"\n Portions of this software are copyright \u00a9 The FreeType\n Project (www.freetype.org). All rights reserved.\n \"\"\"\n\n Please replace with the value from the FreeType version you\n actually use.\n\n\nLegal Terms\n===========\n\n0. Definitions\n--------------\n\n Throughout this license, the terms `package', `FreeType Project',\n and `FreeType archive' refer to the set of files originally\n distributed by the authors (David Turner, Robert Wilhelm, and\n Werner Lemberg) as the `FreeType Project', be they named as alpha,\n beta or final release.\n\n `You' refers to the licensee, or person using the project, where\n `using' is a generic term including compiling the project's source\n code as well as linking it to form a `program' or `executable'.\n This program is referred to as `a program using the FreeType\n engine'.\n\n This license applies to all files distributed in the original\n FreeType Project, including all source code, binaries and\n documentation, unless otherwise stated in the file in its\n original, unmodified form as distributed in the original archive.\n If you are unsure whether or not a particular file is covered by\n this license, you must contact us to verify this.\n\n The FreeType Project is copyright (C) 1996-2000 by David Turner,\n Robert Wilhelm, and Werner Lemberg. All rights reserved except as\n specified below.\n\n1. No Warranty\n--------------\n\n THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS\n BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO\n USE, OF THE FREETYPE PROJECT.\n\n2. Redistribution\n-----------------\n\n This license grants a worldwide, royalty-free, perpetual and\n irrevocable right and license to use, execute, perform, compile,\n display, copy, create derivative works of, distribute and\n sublicense the FreeType Project (in both source and object code\n forms) and derivative works thereof for any purpose; and to\n authorize others to exercise some or all of the rights granted\n herein, subject to the following conditions:\n\n o Redistribution of source code must retain this license file\n (`FTL.TXT') unaltered; any additions, deletions or changes to\n the original files must be clearly indicated in accompanying\n documentation. The copyright notices of the unaltered,\n original files must be preserved in all copies of source\n files.\n\n o Redistribution in binary form must provide a disclaimer that\n states that the software is based in part of the work of the\n FreeType Team, in the distribution documentation. We also\n encourage you to put an URL to the FreeType web page in your\n documentation, though this isn't mandatory.\n\n These conditions apply to any software derived from or based on\n the FreeType Project, not just the unmodified files. If you use\n our work, you must acknowledge us. However, no fee need be paid\n to us.\n\n3. Advertising\n--------------\n\n Neither the FreeType authors and contributors nor you shall use\n the name of the other for commercial, advertising, or promotional\n purposes without specific prior written permission.\n\n We suggest, but do not require, that you use one or more of the\n following phrases to refer to this software in your documentation\n or advertising materials: `FreeType Project', `FreeType Engine',\n `FreeType library', or `FreeType Distribution'.\n\n As you have not signed this license, you are not required to\n accept it. However, as the FreeType Project is copyrighted\n material, only this license, or another one contracted with the\n authors, grants you the right to use, distribute, and modify it.\n Therefore, by using, distributing, or modifying the FreeType\n Project, you indicate that you understand and accept all the terms\n of this license.\n\n4. Contacts\n-----------\n\n There are two mailing lists related to FreeType:\n\n o freetype@nongnu.org\n\n Discusses general use and applications of FreeType, as well as\n future and wanted additions to the library and distribution.\n If you are looking for support, start in this list if you\n haven't found anything to help you in the documentation.\n\n o freetype-devel@nongnu.org\n\n Discusses bugs, as well as engine internals, design issues,\n specific licenses, porting, etc.\n\n Our home page can be found at\n\n https://www.freetype.org\n\n\n--- end of FTL.TXT ---\n\t\t GNU GENERAL PUBLIC LICENSE\n\t\t Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n\t\t\t Preamble\n\n The licenses for most software are designed to take away your\nfreedom to share and change it. By contrast, the GNU General Public\nLicense is intended to guarantee your freedom to share and change free\nsoftware--to make sure the software is free for all its users. This\nGeneral Public License applies to most of the Free Software\nFoundation's software and to any other program whose authors commit to\nusing it. (Some other Free Software Foundation software is covered by\nthe GNU Library General Public License instead.) You can apply it to\nyour programs, too.\n\n When we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthis service if you wish), that you receive source code or can get it\nif you want it, that you can change the software or use pieces of it\nin new free programs; and that you know you can do these things.\n\n To protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the rights.\nThese restrictions translate to certain responsibilities for you if you\ndistribute copies of the software, or if you modify it.\n\n For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must give the recipients all the rights that\nyou have. You must make sure that they, too, receive or can get the\nsource code. And you must show them these terms so they know their\nrights.\n\n We protect your rights with two steps: (1) copyright the software, and\n(2) offer you this license which gives you legal permission to copy,\ndistribute and/or modify the software.\n\n Also, for each author's protection and ours, we want to make certain\nthat everyone understands that there is no warranty for this free\nsoftware. If the software is modified by someone else and passed on, we\nwant its recipients to know that what they have is not the original, so\nthat any problems introduced by others will not reflect on the original\nauthors' reputations.\n\n Finally, any free program is threatened constantly by software\npatents. We wish to avoid the danger that redistributors of a free\nprogram will individually obtain patent licenses, in effect making the\nprogram proprietary. To prevent this, we have made it clear that any\npatent must be licensed for everyone's free use or not licensed at all.\n\n The precise terms and conditions for copying, distribution and\nmodification follow.\n\f\n\t\t GNU GENERAL PUBLIC LICENSE\n TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n 0. This License applies to any program or other work which contains\na notice placed by the copyright holder saying it may be distributed\nunder the terms of this General Public License. The \"Program\", below,\nrefers to any such program or work, and a \"work based on the Program\"\nmeans either the Program or any derivative work under copyright law:\nthat is to say, a work containing the Program or a portion of it,\neither verbatim or with modifications and/or translated into another\nlanguage. (Hereinafter, translation is included without limitation in\nthe term \"modification\".) Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope. The act of\nrunning the Program is not restricted, and the output from the Program\nis covered only if its contents constitute a work based on the\nProgram (independent of having been made by running the Program).\nWhether that is true depends on what the Program does.\n\n 1. You may copy and distribute verbatim copies of the Program's\nsource code as you receive it, in any medium, provided that you\nconspicuously and appropriately publish on each copy an appropriate\ncopyright notice and disclaimer of warranty; keep intact all the\nnotices that refer to this License and to the absence of any warranty;\nand give any other recipients of the Program a copy of this License\nalong with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and\nyou may at your option offer warranty protection in exchange for a fee.\n\n 2. You may modify your copy or copies of the Program or any portion\nof it, thus forming a work based on the Program, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n a) You must cause the modified files to carry prominent notices\n stating that you changed the files and the date of any change.\n\n b) You must cause any work that you distribute or publish, that in\n whole or in part contains or is derived from the Program or any\n part thereof, to be licensed as a whole at no charge to all third\n parties under the terms of this License.\n\n c) If the modified program normally reads commands interactively\n when run, you must cause it, when started running for such\n interactive use in the most ordinary way, to print or display an\n announcement including an appropriate copyright notice and a\n notice that there is no warranty (or else, saying that you provide\n a warranty) and that users may redistribute the program under\n these conditions, and telling the user how to view a copy of this\n License. (Exception: if the Program itself is interactive but\n does not normally print such an announcement, your work based on\n the Program is not required to print an announcement.)\n\f\nThese requirements apply to the modified work as a whole. If\nidentifiable sections of that work are not derived from the Program,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works. But when you\ndistribute the same sections as part of a whole which is a work based\non the Program, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Program.\n\nIn addition, mere aggregation of another work not based on the Program\nwith the Program (or with a work based on the Program) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n 3. You may copy and distribute the Program (or a work based on it,\nunder Section 2) in object code or executable form under the terms of\nSections 1 and 2 above provided that you also do one of the following:\n\n a) Accompany it with the complete corresponding machine-readable\n source code, which must be distributed under the terms of Sections\n 1 and 2 above on a medium customarily used for software interchange; or,\n\n b) Accompany it with a written offer, valid for at least three\n years, to give any third party, for a charge no more than your\n cost of physically performing source distribution, a complete\n machine-readable copy of the corresponding source code, to be\n distributed under the terms of Sections 1 and 2 above on a medium\n customarily used for software interchange; or,\n\n c) Accompany it with the information you received as to the offer\n to distribute corresponding source code. (This alternative is\n allowed only for noncommercial distribution and only if you\n received the program in object code or executable form with such\n an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for\nmaking modifications to it. For an executable work, complete source\ncode means all the source code for all modules it contains, plus any\nassociated interface definition files, plus the scripts used to\ncontrol compilation and installation of the executable. However, as a\nspecial exception, the source code distributed need not include\nanything that is normally distributed (in either source or binary\nform) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component\nitself accompanies the executable.\n\nIf distribution of executable or object code is made by offering\naccess to copy from a designated place, then offering equivalent\naccess to copy the source code from the same place counts as\ndistribution of the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\f\n 4. You may not copy, modify, sublicense, or distribute the Program\nexcept as expressly provided under this License. Any attempt\notherwise to copy, modify, sublicense or distribute the Program is\nvoid, and will automatically terminate your rights under this License.\nHowever, parties who have received copies, or rights, from you under\nthis License will not have their licenses terminated so long as such\nparties remain in full compliance.\n\n 5. You are not required to accept this License, since you have not\nsigned it. However, nothing else grants you permission to modify or\ndistribute the Program or its derivative works. These actions are\nprohibited by law if you do not accept this License. Therefore, by\nmodifying or distributing the Program (or any work based on the\nProgram), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n 6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the\noriginal licensor to copy, distribute or modify the Program subject to\nthese terms and conditions. You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties to\nthis License.\n\n 7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Program at all. For example, if a patent\nlicense would not permit royalty-free redistribution of the Program by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under\nany particular circumstance, the balance of the section is intended to\napply and the section as a whole is intended to apply in other\ncircumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system, which is\nimplemented by public license practices. Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\f\n 8. If the distribution and/or use of the Program is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Program under this License\nmay add an explicit geographical distribution limitation excluding\nthose countries, so that distribution is permitted only in or among\ncountries not thus excluded. In such case, this License incorporates\nthe limitation as if written in the body of this License.\n\n 9. The Free Software Foundation may publish revised and/or new versions\nof the General Public License from time to time. Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number. If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation. If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n 10. If you wish to incorporate parts of the Program into other free\nprograms whose distribution conditions are different, write to the author\nto ask for permission. For software which is copyrighted by the Free\nSoftware Foundation, write to the Free Software Foundation; we sometimes\nmake exceptions for this. Our decision will be guided by the two goals\nof preserving the free status of all derivatives of our free software and\nof promoting the sharing and reuse of software generally.\n\n\t\t\t NO WARRANTY\n\n 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\nFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\nTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\nREPAIR OR CORRECTION.\n\n 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\nTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\n\t\t END OF TERMS AND CONDITIONS\n\f\n\t How to Apply These Terms to Your New Programs\n\n If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n To do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n \n Copyright (C) \n\n This program is free software; you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation; either version 2 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program; if not, write to the Free Software\n Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this\nwhen it starts in an interactive mode:\n\n Gnomovision version 69, Copyright (C) year name of author\n Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n This is free software, and you are welcome to redistribute it\n under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License. Of course, the commands you use may\nbe called something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary. Here is a sample; alter the names:\n\n Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n `Gnomovision' (which makes passes at compilers) written by James Hacker.\n\n , 1 April 1989\n Ty Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs. If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary. If this is what you want to do, use the GNU Library General\nPublic License instead of this License.\n \n===== harfbuzz-8.3.0 ===== \n \nHarfBuzz is licensed under the so-called \"Old MIT\" license. Details follow.\nFor parts of HarfBuzz that are licensed under different licenses see individual\nfiles names COPYING in subdirectories where applicable.\n\nCopyright \u00a9 2010-2022 Google, Inc.\nCopyright \u00a9 2015-2020 Ebrahim Byagowi\nCopyright \u00a9 2019,2020 Facebook, Inc.\nCopyright \u00a9 2012,2015 Mozilla Foundation\nCopyright \u00a9 2011 Codethink Limited\nCopyright \u00a9 2008,2010 Nokia Corporation and/or its subsidiary(-ies)\nCopyright \u00a9 2009 Keith Stribley\nCopyright \u00a9 2011 Martin Hosken and SIL International\nCopyright \u00a9 2007 Chris Wilson\nCopyright \u00a9 2005,2006,2020,2021,2022,2023 Behdad Esfahbod\nCopyright \u00a9 2004,2007,2008,2009,2010,2013,2021,2022,2023 Red Hat, Inc.\nCopyright \u00a9 1998-2005 David Turner and Werner Lemberg\nCopyright \u00a9 2016 Igalia S.L.\nCopyright \u00a9 2022 Matthias Clasen\nCopyright \u00a9 2018,2021 Khaled Hosny\nCopyright \u00a9 2018,2019,2020 Adobe, Inc\nCopyright \u00a9 2013-2015 Alexei Podtelezhnikov\n\nFor full copyright notices consult the individual files in the package.\n\n\nPermission is hereby granted, without written agreement and without\nlicense or royalty fees, to use, copy, modify, and distribute this\nsoftware and its documentation for any purpose, provided that the\nabove copyright notice and the following two paragraphs appear in\nall copies of this software.\n\nIN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR\nDIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES\nARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN\nIF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n\nTHE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,\nBUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\nON AN \"AS IS\" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO\nPROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.\n \n===== lcms2-2.16 ===== \n \nMIT License\n\nCopyright (c) 2023 Marti Maria Saguer\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the \n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to \npermit persons to whom the Software is furnished to do so, subject\nto the following conditions:\n\nThe above copyright notice and this permission notice shall be \nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF \nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE \nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n \n===== libjpeg-turbo-3.0.1 ===== \n \nLEGAL ISSUES\n============\n\nIn plain English:\n\n1. We don't promise that this software works. (But if you find any bugs,\n please let us know!)\n2. You can use this software for whatever you want. You don't have to pay us.\n3. You may not pretend that you wrote this software. If you use it in a\n program, you must acknowledge somewhere in your documentation that\n you've used the IJG code.\n\nIn legalese:\n\nThe authors make NO WARRANTY or representation, either express or implied,\nwith respect to this software, its quality, accuracy, merchantability, or\nfitness for a particular purpose. This software is provided \"AS IS\", and you,\nits user, assume the entire risk as to its quality and accuracy.\n\nThis software is copyright (C) 1991-2020, Thomas G. Lane, Guido Vollbeding.\nAll Rights Reserved except as specified below.\n\nPermission is hereby granted to use, copy, modify, and distribute this\nsoftware (or portions thereof) for any purpose, without fee, subject to these\nconditions:\n(1) If any part of the source code for this software is distributed, then this\nREADME file must be included, with this copyright and no-warranty notice\nunaltered; and any additions, deletions, or changes to the original files\nmust be clearly indicated in accompanying documentation.\n(2) If only executable code is distributed, then the accompanying\ndocumentation must state that \"this software is based in part on the work of\nthe Independent JPEG Group\".\n(3) Permission for use of this software is granted only if the user accepts\nfull responsibility for any undesirable consequences; the authors accept\nNO LIABILITY for damages of any kind.\n\nThese conditions apply to any software derived from or based on the IJG code,\nnot just to the unmodified library. If you use our work, you ought to\nacknowledge us.\n\nPermission is NOT granted for the use of any IJG author's name or company name\nin advertising or publicity relating to this software or products derived from\nit. This software may be referred to only as \"the Independent JPEG Group's\nsoftware\".\n\nWe specifically permit and encourage the use of this software as the basis of\ncommercial products, provided that all warranty or liability claims are\nassumed by the product vendor.\n\nlibjpeg-turbo Licenses\n======================\n\nlibjpeg-turbo is covered by three compatible BSD-style open source licenses:\n\n- The IJG (Independent JPEG Group) License, which is listed in\n [README.ijg](README.ijg)\n\n This license applies to the libjpeg API library and associated programs\n (any code inherited from libjpeg, and any modifications to that code.)\n\n- The Modified (3-clause) BSD License, which is listed below\n\n This license covers the TurboJPEG API library and associated programs, as\n well as the build system.\n\n- The [zlib License](https://opensource.org/licenses/Zlib)\n\n This license is a subset of the other two, and it covers the libjpeg-turbo\n SIMD extensions.\n\n\nComplying with the libjpeg-turbo Licenses\n=========================================\n\nThis section provides a roll-up of the libjpeg-turbo licensing terms, to the\nbest of our understanding.\n\n1. If you are distributing a modified version of the libjpeg-turbo source,\n then:\n\n 1. You cannot alter or remove any existing copyright or license notices\n from the source.\n\n **Origin**\n - Clause 1 of the IJG License\n - Clause 1 of the Modified BSD License\n - Clauses 1 and 3 of the zlib License\n\n 2. You must add your own copyright notice to the header of each source\n file you modified, so others can tell that you modified that file (if\n there is not an existing copyright header in that file, then you can\n simply add a notice stating that you modified the file.)\n\n **Origin**\n - Clause 1 of the IJG License\n - Clause 2 of the zlib License\n\n 3. You must include the IJG README file, and you must not alter any of the\n copyright or license text in that file.\n\n **Origin**\n - Clause 1 of the IJG License\n\n2. If you are distributing only libjpeg-turbo binaries without the source, or\n if you are distributing an application that statically links with\n libjpeg-turbo, then:\n\n 1. Your product documentation must include a message stating:\n\n This software is based in part on the work of the Independent JPEG\n Group.\n\n **Origin**\n - Clause 2 of the IJG license\n\n 2. If your binary distribution includes or uses the TurboJPEG API, then\n your product documentation must include the text of the Modified BSD\n License (see below.)\n\n **Origin**\n - Clause 2 of the Modified BSD License\n\n3. You cannot use the name of the IJG or The libjpeg-turbo Project or the\n contributors thereof in advertising, publicity, etc.\n\n **Origin**\n - IJG License\n - Clause 3 of the Modified BSD License\n\n4. The IJG and The libjpeg-turbo Project do not warrant libjpeg-turbo to be\n free of defects, nor do we accept any liability for undesirable\n consequences resulting from your use of the software.\n\n **Origin**\n - IJG License\n - Modified BSD License\n - zlib License\n\n\nThe Modified (3-clause) BSD License\n===================================\n\nCopyright (C)2009-2023 D. R. Commander. All Rights Reserved.
\nCopyright (C)2015 Viktor Szathm\u00e1ry. All Rights Reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n- Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n- Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n- Neither the name of the libjpeg-turbo Project nor the names of its\n contributors may be used to endorse or promote products derived from this\n software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\",\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n\n\nWhy Three Licenses?\n===================\n\nThe zlib License could have been used instead of the Modified (3-clause) BSD\nLicense, and since the IJG License effectively subsumes the distribution\nconditions of the zlib License, this would have effectively placed\nlibjpeg-turbo binary distributions under the IJG License. However, the IJG\nLicense specifically refers to the Independent JPEG Group and does not extend\nattribution and endorsement protections to other entities. Thus, it was\ndesirable to choose a license that granted us the same protections for new code\nthat were granted to the IJG for code derived from their software.\n \n===== libwebp-1.3.2 ===== \n \nCopyright (c) 2010, Google Inc. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the\n distribution.\n\n * Neither the name of Google nor the names of its contributors may\n be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n \n===== lpng1639 ===== \n \nCOPYRIGHT NOTICE, DISCLAIMER, and LICENSE\n=========================================\n\nPNG Reference Library License version 2\n---------------------------------------\n\n * Copyright (c) 1995-2022 The PNG Reference Library Authors.\n * Copyright (c) 2018-2022 Cosmin Truta.\n * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.\n * Copyright (c) 1996-1997 Andreas Dilger.\n * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n\nThe software is supplied \"as is\", without warranty of any kind,\nexpress or implied, including, without limitation, the warranties\nof merchantability, fitness for a particular purpose, title, and\nnon-infringement. In no event shall the Copyright owners, or\nanyone distributing the software, be liable for any damages or\nother liability, whether in contract, tort or otherwise, arising\nfrom, out of, or in connection with the software, or the use or\nother dealings in the software, even if advised of the possibility\nof such damage.\n\nPermission is hereby granted to use, copy, modify, and distribute\nthis software, or portions hereof, for any purpose, without fee,\nsubject to the following restrictions:\n\n 1. The origin of this software must not be misrepresented; you\n must not claim that you wrote the original software. If you\n use this software in a product, an acknowledgment in the product\n documentation would be appreciated, but is not required.\n\n 2. Altered source versions must be plainly marked as such, and must\n not be misrepresented as being the original software.\n\n 3. This Copyright notice may not be removed or altered from any\n source or altered source distribution.\n\n\nPNG Reference Library License version 1 (for libpng 0.5 through 1.6.35)\n-----------------------------------------------------------------------\n\nlibpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are\nCopyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are\nderived from libpng-1.0.6, and are distributed according to the same\ndisclaimer and license as libpng-1.0.6 with the following individuals\nadded to the list of Contributing Authors:\n\n Simon-Pierre Cadieux\n Eric S. Raymond\n Mans Rullgard\n Cosmin Truta\n Gilles Vollant\n James Yu\n Mandar Sahastrabuddhe\n Google Inc.\n Vadim Barkov\n\nand with the following additions to the disclaimer:\n\n There is no warranty against interference with your enjoyment of\n the library or against infringement. There is no warranty that our\n efforts or the library will fulfill any of your particular purposes\n or needs. This library is provided with all faults, and the entire\n risk of satisfactory quality, performance, accuracy, and effort is\n with the user.\n\nSome files in the \"contrib\" directory and some configure-generated\nfiles that are distributed with libpng have other copyright owners, and\nare released under other open source licenses.\n\nlibpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are\nCopyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from\nlibpng-0.96, and are distributed according to the same disclaimer and\nlicense as libpng-0.96, with the following individuals added to the\nlist of Contributing Authors:\n\n Tom Lane\n Glenn Randers-Pehrson\n Willem van Schaik\n\nlibpng versions 0.89, June 1996, through 0.96, May 1997, are\nCopyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,\nand are distributed according to the same disclaimer and license as\nlibpng-0.88, with the following individuals added to the list of\nContributing Authors:\n\n John Bowler\n Kevin Bracey\n Sam Bushell\n Magnus Holmgren\n Greg Roelofs\n Tom Tanner\n\nSome files in the \"scripts\" directory have other copyright owners,\nbut are released under this license.\n\nlibpng versions 0.5, May 1995, through 0.88, January 1996, are\nCopyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n\nFor the purposes of this copyright and license, \"Contributing Authors\"\nis defined as the following set of individuals:\n\n Andreas Dilger\n Dave Martindale\n Guy Eric Schalnat\n Paul Schmidt\n Tim Wegner\n\nThe PNG Reference Library is supplied \"AS IS\". The Contributing\nAuthors and Group 42, Inc. disclaim all warranties, expressed or\nimplied, including, without limitation, the warranties of\nmerchantability and of fitness for any purpose. The Contributing\nAuthors and Group 42, Inc. assume no liability for direct, indirect,\nincidental, special, exemplary, or consequential damages, which may\nresult from the use of the PNG Reference Library, even if advised of\nthe possibility of such damage.\n\nPermission is hereby granted to use, copy, modify, and distribute this\nsource code, or portions hereof, for any purpose, without fee, subject\nto the following restrictions:\n\n 1. The origin of this source code must not be misrepresented.\n\n 2. Altered versions must be plainly marked as such and must not\n be misrepresented as being the original source.\n\n 3. This Copyright notice may not be removed or altered from any\n source or altered source distribution.\n\nThe Contributing Authors and Group 42, Inc. specifically permit,\nwithout fee, and encourage the use of this source code as a component\nto supporting the PNG file format in commercial products. If you use\nthis source code in a product, acknowledgment is not required but would\nbe appreciated.\n \n===== openjpeg-2.5.0 ===== \n \n/*\n * The copyright in this software is being made available under the 2-clauses \n * BSD License, included below. This software may be subject to other third \n * party and contributor rights, including patent rights, and no such rights\n * are granted under this license.\n *\n * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium\n * Copyright (c) 2002-2014, Professor Benoit Macq\n * Copyright (c) 2003-2014, Antonin Descampe\n * Copyright (c) 2003-2009, Francois-Olivier Devaux\n * Copyright (c) 2005, Herve Drolon, FreeImage Team\n * Copyright (c) 2002-2003, Yannick Verschueren\n * Copyright (c) 2001-2003, David Janssens\n * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France \n * Copyright (c) 2012, CS Systemes d'Information, France\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n \n===== tiff-4.6.0 ===== \n \n# LibTIFF license\n\nCopyright \u00a9 1988-1997 Sam Leffler\\\nCopyright \u00a9 1991-1997 Silicon Graphics, Inc.\n\nPermission to use, copy, modify, distribute, and sell this software and \nits documentation for any purpose is hereby granted without fee, provided\nthat (i) the above copyright notices and this permission notice appear in\nall copies of the software and related documentation, and (ii) the names of\nSam Leffler and Silicon Graphics may not be used in any advertising or\npublicity relating to the software without the specific, prior written\npermission of Sam Leffler and Silicon Graphics.\n\nTHE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND, \nEXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY \nWARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. \n\nIN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR\nANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,\nOR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\nWHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF \nLIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE \nOF THIS SOFTWARE.\n \n===== xz-5.4.5 ===== \n \n\nXZ Utils Licensing\n==================\n\n Different licenses apply to different files in this package. Here\n is a rough summary of which licenses apply to which parts of this\n package (but check the individual files to be sure!):\n\n - liblzma is in the public domain.\n\n - xz, xzdec, and lzmadec command line tools are in the public\n domain unless GNU getopt_long had to be compiled and linked\n in from the lib directory. The getopt_long code is under\n GNU LGPLv2.1+.\n\n - The scripts to grep, diff, and view compressed files have been\n adapted from gzip. These scripts and their documentation are\n under GNU GPLv2+.\n\n - All the documentation in the doc directory and most of the\n XZ Utils specific documentation files in other directories\n are in the public domain.\n\n Note: The JavaScript files (under the MIT license) have\n been removed from the Doxygen-generated HTML version of the\n liblzma API documentation. Doxygen itself is under the GNU GPL\n but the remaining files generated by Doxygen are not affected\n by the licenses used in Doxygen because Doxygen licensing has\n the following exception:\n\n \"Documents produced by doxygen are derivative works\n derived from the input used in their production;\n they are not affected by this license.\"\n\n - Translated messages are in the public domain.\n\n - The build system contains public domain files, and files that\n are under GNU GPLv2+ or GNU GPLv3+. None of these files end up\n in the binaries being built.\n\n - Test files and test code in the tests directory, and debugging\n utilities in the debug directory are in the public domain.\n\n - The extra directory may contain public domain files, and files\n that are under various free software licenses.\n\n You can do whatever you want with the files that have been put into\n the public domain. If you find public domain legally problematic,\n take the previous sentence as a license grant. If you still find\n the lack of copyright legally problematic, you have too many\n lawyers.\n\n As usual, this software is provided \"as is\", without any warranty.\n\n If you copy significant amounts of public domain code from XZ Utils\n into your project, acknowledging this somewhere in your software is\n polite (especially if it is proprietary, non-free software), but\n naturally it is not legally required. Here is an example of a good\n notice to put into \"about box\" or into documentation:\n\n This software includes code from XZ Utils .\n\n The following license texts are included in the following files:\n - COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1\n - COPYING.GPLv2: GNU General Public License version 2\n - COPYING.GPLv3: GNU General Public License version 3\n\n Note that the toolchain (compiler, linker etc.) may add some code\n pieces that are copyrighted. Thus, it is possible that e.g. liblzma\n binary wouldn't actually be in the public domain in its entirety\n even though it contains no copyrighted code from the XZ Utils source\n package.\n\n If you have questions, don't hesitate to ask the author(s) for more\n information.\n\n \n===== zlib-1.3 ===== \n \n (C) 1995-2023 Jean-loup Gailly and Mark Adler\n\n This software is provided 'as-is', without any express or implied\n warranty. In no event will the authors be held liable for any damages\n arising from the use of this software.\n\n Permission is granted to anyone to use this software for any purpose,\n including commercial applications, and to alter it and redistribute it\n freely, subject to the following restrictions:\n\n 1. The origin of this software must not be misrepresented; you must not\n claim that you wrote the original software. If you use this software\n in a product, an acknowledgment in the product documentation would be\n appreciated but is not required.\n 2. Altered source versions must be plainly marked as such, and must not be\n misrepresented as being the original software.\n 3. This notice may not be removed or altered from any source distribution.\n\n Jean-loup Gailly Mark Adler\n jloup@gzip.org madler@alumni.caltech.edu\n\nIf you use the zlib library in a product, we would appreciate *not* receiving\nlengthy legal documents to sign. The sources are provided for free but without\nwarranty of any kind. The library has been entirely written by Jean-loup\nGailly and Mark Adler; it does not include third-party code. We make all\ncontributions to and distributions of this project solely in our personal\ncapacity, and are not conveying any rights to any intellectual property of\nany third parties.\n\nIf you redistribute modified sources, we would appreciate that you include in\nthe file ChangeLog history information documenting your changes. Please read\nthe FAQ for more information on the distribution of modified source versions.\n", + "Name": "pillow", + "Version": "10.2.0" + }, + { + "License": "MIT License", + "LicenseText": "The MIT License (MIT)\n\nCopyright (c) 2014 Maik Riechert\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", + "Name": "rawpy", + "Version": "0.19.0" + }, + { + "License": "BSD License", + "LicenseText": "BSD 3-Clause License\n\nCopyright (c) 2007, Sean C. Gillies. 2019, Casper van der Wel. 2007-2022, Shapely Contributors.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n", + "Name": "shapely", + "Version": "2.0.2" + } +] diff --git a/app/gui_about.ui b/app/gui_about.ui new file mode 100644 index 0000000..0c1e0dc --- /dev/null +++ b/app/gui_about.ui @@ -0,0 +1,1064 @@ + + + Wieser Martin + popup_about + + + + 0 + 0 + 850 + 761 + + + + + 0 + 0 + + + + + 850 + 600 + + + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 66 + 73 + 90 + + + + + + + 55 + 61 + 75 + + + + + + + 22 + 24 + 30 + + + + + + + 29 + 32 + 40 + + + + + + + 210 + 210 + 210 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 85 + 170 + 255 + + + + + + + 85 + 170 + 255 + + + + + + + 255 + 0 + 127 + + + + + + + 22 + 24 + 30 + + + + + + + 44 + 49 + 60 + + + + + + + 210 + 210 + 210 + + + + + + + 210 + 210 + 210 + + + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 66 + 73 + 90 + + + + + + + 55 + 61 + 75 + + + + + + + 22 + 24 + 30 + + + + + + + 29 + 32 + 40 + + + + + + + 210 + 210 + 210 + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 85 + 170 + 255 + + + + + + + 85 + 170 + 255 + + + + + + + 255 + 0 + 127 + + + + + + + 22 + 24 + 30 + + + + + + + 44 + 49 + 60 + + + + + + + 210 + 210 + 210 + + + + + + + 210 + 210 + 210 + + + + + + + + + 22 + 24 + 30 + + + + + + + 0 + 0 + 0 + + + + + + + 66 + 73 + 90 + + + + + + + 55 + 61 + 75 + + + + + + + 22 + 24 + 30 + + + + + + + 29 + 32 + 40 + + + + + + + 22 + 24 + 30 + + + + + + + 255 + 255 + 255 + + + + + + + 22 + 24 + 30 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 51 + 153 + 255 + + + + + + + 85 + 170 + 255 + + + + + + + 255 + 0 + 127 + + + + + + + 44 + 49 + 60 + + + + + + + 44 + 49 + 60 + + + + + + + 210 + 210 + 210 + + + + + + + 210 + 210 + 210 + + + + + + + + + Segoe UI + 10 + + + + MainWindow + + + QWidget {background: transparent; color: rgb(210, 210, 210)} +QToolTip { + color: #ffffff; + background-color: rgba(27, 29, 35, 160); + border: 1px solid rgb(40, 40, 40); + border-radius: 2px; +} + +QLabel { + + color: rgb(150, 150, 150); +} + +/* LINE EDIT */ +QLineEdit { + background-color: rgb(27, 29, 35); + border-radius: 5px; + border: 2px solid rgb(27, 29, 35); + padding-left: 10px; +} +QLineEdit:hover { + border: 2px solid rgb(64, 71, 88); +} +QLineEdit:focus { + border: 2px solid rgb(91, 101, 124); +} + +/* SCROLL BARS */ +QScrollBar:horizontal { + border: none; + background: rgb(52, 59, 72); + height: 14px; + margin: 0px 21px 0 21px; + border-radius: 0px; +} +QScrollBar::handle:horizontal { + background: rgb(178, 186, 87); + min-width: 25px; + border-radius: 7px +} +QScrollBar::add-line:horizontal { + border: none; + background: rgb(55, 63, 77); + width: 20px; + border-top-right-radius: 7px; + border-bottom-right-radius: 7px; + subcontrol-position: right; + subcontrol-origin: margin; +} +QScrollBar::sub-line:horizontal { + border: none; + background: rgb(55, 63, 77); + width: 20px; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + subcontrol-position: left; + subcontrol-origin: margin; +} +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal +{ + background: none; +} +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal +{ + background: none; +} + QScrollBar:vertical { + border: none; + background: rgb(52, 59, 72); + width: 14px; + margin: 21px 0 21px 0; + border-radius: 0px; + } + QScrollBar::handle:vertical { + background: rgb(178, 186, 87); + min-height: 25px; + border-radius: 7px + } + QScrollBar::add-line:vertical { + border: none; + background: rgb(55, 63, 77); + height: 20px; + border-bottom-left-radius: 7px; + border-bottom-right-radius: 7px; + subcontrol-position: bottom; + subcontrol-origin: margin; + } + QScrollBar::sub-line:vertical { + border: none; + background: rgb(55, 63, 77); + height: 20px; + border-top-left-radius: 7px; + border-top-right-radius: 7px; + subcontrol-position: top; + subcontrol-origin: margin; + } + QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; + } + + QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; + } + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + + Segoe UI + + + + background-color:rgb(127, 84, 0); +color: white; + + + QFrame::NoFrame + + + QFrame::Raised + + + + 10 + + + 10 + + + 0 + + + 0 + + + 0 + + + + + + 30 + 30 + + + + + 30 + 30 + + + + + + + :/icons/icons/INDIGO_logoGRAPHIS.png + + + true + + + + + + + + Segoe UI + 10 + true + + + + <html><head/><body><p><span style=" font-size:8pt; font-weight:400;">Move window</span></p></body></html> + + + background: transparent; + + + + QFrame::Raised + + + About GRAPHIS + + + + + + + true + + + + 0 + 0 + + + + + 40 + 0 + + + + + 40 + 16777215 + + + + + Segoe UI + + + + Close + + + QPushButton { + border: none; + background-color: transparent; +} +QPushButton:hover { + background-color: rgb(150, 40, 23); +} +QPushButton:pressed { + background-color: rgb(250, 39, 10); +} + + + + + + + :/icons/icons/cil-x.png:/icons/icons/cil-x.png + + + + + + + + + + + 0 + 0 + + + + + Segoe UI + + + + background-color: rgb(34, 36, 50); + + + QFrame::NoFrame + + + QFrame::Raised + + + + + 360 + 420 + 91 + 16 + + + + border: 1px solid rgba(170, 170, 255,100); +border-radius:15px; + + + License Table + + + Qt::AlignCenter + + + + + + 20 + 387 + 991 + 31 + + + + GRAPHIS thankfully relies on packages provided as open source. The table below try to list packages and used libraries with their license informatoin. +If you find any missing information please file an issue. License info can also be found in the folder license. Double click to expand license information. + + + + + + 290 + 10 + 531 + 151 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } +</style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt; font-weight:700; color:#b49629;">GRAPHIS</span><span style=" font-size:11pt; font-weight:700;"> (</span><span style=" font-size:11pt; font-weight:700; color:#969222;">G</span><span style=" font-size:11pt; font-weight:700;">enerate </span><span style=" font-size:11pt; font-weight:700; color:#969222;">R</span><span style=" font-size:11pt; font-weight:700;">egions and </span><span style=" font-size:11pt; font-weight:700; color:#969222;">A</span><span style=" font-size:11pt; font-weight:700;">nnotations for </span><span style=" font-size:11pt; font-weight:700; color:#969222;">PH</span><span style=" font-size:11pt; font-weight:700;">otos using the </span><span style=" font-size:11pt; font-weight:700; color:#969222;">I</span><span style=" font-size:11pt; font-weight:700;">PTC </span><span style=" font-size:11pt; font-weight:700; color:#969222;">S</span><span style=" font-size:11pt; font-weight:700;">tandard)</span><span style=" font-size:11pt;"> is an open-source and freely available Windows-based software to create or change IPTC image regions, annotate them with graffiti descriptions or transcriptions, and visualise them.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">The Repository can be found at github.com/GraffitiProjectINDIGO/GRAPHIS. </span><span style=" font-size:11pt; font-weight:700; color:#da4900;">Its the main source for discussion, bug reporting and info how to get involved.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + true + + + true + + + Qt::LinksAccessibleByMouse + + + + + + 290 + 180 + 531 + 81 + + + + + 12 + true + + + + QFrame::NoFrame + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + 10 + 430 + 831 + 281 + + + + Double click to expand + + + QTreeView{alternate-background-color: rgb(38, 40, 56); background: transparent;} + +QTreeView::branch:has-children:!has-siblings:closed, +QTreeView::branch:closed:has-children:has-siblings { + border-image: none; + image: url(:/icons/icons/cil-size-grip.png); +} + +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings { + border-image: none; + image:url(:/icons/icons/circle.svg); +} + + + + + Qt::ScrollBarAsNeeded + + + QAbstractScrollArea::AdjustIgnored + + + false + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + true + + + 220 + + + 220 + + + true + + + + + + 20 + 300 + 731 + 41 + + + + + 10 + true + + + + + + + <html><head/><body><p>Graphis is using the <span style=" color:#2cde85;">Qt's QT6 engine with Pyside6/shiboken6</span> under the GPLv3 and <span style=" color:#016cb1;">LibRAW</span> under the LGPLv.2.1<br/>Instructions to obtain the source coude can be found under <span style=" font-size:11pt;">github.com/GraffitiProjectINDIGO/GRAPHIS</span></p></body></html> + + + Qt::RichText + + + + + + 40 + 20 + 211 + 181 + + + + + + + :/icons/icons/INDIGO_logoGRAPHIS.png + + + false + + + label + label_2 + lbl_copyright + treeView_license + label_8 + label_3 + label_4 + + + + + + + + + diff --git a/app/gui_main.ui b/app/gui_main.ui index 2c71a14..06d7e1d 100644 --- a/app/gui_main.ui +++ b/app/gui_main.ui @@ -2220,7 +2220,7 @@ QTabBar::tab:!selected { QTabWidget::South - 1 + 0 @@ -2266,10 +2266,17 @@ GRAPHIS stores all its operations on-the-fly in an SQLite database, making it po For more information or questions on GRAPHIS please email info@projectindigo.eu -@Martin Wieser 2023 -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: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +WISDAMapp is using the Qt's QT6 engine with Pyside6/shiboken6 under the GPLv3 and LibRAW under the LGPLv.2.1 +Instructions to obtain the source coude can be found under github.com/wisdam + +Copyright (C) 2023 Martin Wieser + +This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. @@ -2618,7 +2625,7 @@ QTabBar::tab:!selected { - 0 + 1 @@ -4192,7 +4199,7 @@ QTreeView::branch:open:has-children:has-siblings { color: rgb(98, 103, 111); - <html><head/><body><p>GRAPHIS @ INDIGO 2023 - https://projectindigo.eu</p></body></html> + <html><head/><body><p>GRAPHIS @ INDIGO 2024 - https://projectindigo.eu</p></body></html> Qt::RichText diff --git a/app/json_model_viewer.py b/app/json_model_viewer.py new file mode 100644 index 0000000..eae27ac --- /dev/null +++ b/app/json_model_viewer.py @@ -0,0 +1,215 @@ +from __future__ import annotations +from typing import Any, List, Dict, Union +from PySide6.QtCore import QAbstractItemModel, QModelIndex, QObject, Qt + + +class TreeItem: + """Each tree item will be one line""" + + def __init__(self, parent: TreeItem = None): + self._parent = parent + self._key = "" + self._value = "" + self._value_type = None + self._children = [] + + def append_child(self, item: TreeItem): + self._children.append(item) + + def child(self, row: int) -> TreeItem: + return self._children[row] + + def parent(self) -> TreeItem: + return self._parent + + def child_count(self) -> int: + return len(self._children) + + def row(self) -> int: + return self._parent._children.index(self) if self._parent else 0 + + @property + def key(self) -> str: + return self._key + + @key.setter + def key(self, key: str): + self._key = key + + @property + def value(self) -> str: + return self._value + + @value.setter + def value(self, value: str): + self._value = value + + @property + def value_type(self): + return self._value_type + + @value_type.setter + def value_type(self, value): + """Set the python type of the item's value.""" + self._value_type = value + + @classmethod + def load(cls, value: Union[List, Dict], parent: TreeItem = None, sort=True) -> TreeItem: + root_item = TreeItem(parent) + root_item.key = "root" + + if isinstance(value, dict): + items = sorted(value.items()) if sort else value.items() + + for key, value in items: + child = cls.load(value, root_item) + child.key = key + child.value_type = type(value) + root_item.append_child(child) + + elif isinstance(value, list): + for index, value in enumerate(value): + child = cls.load(value, root_item) + child.key = value['Name'] + child.value = value['License'] + child.value_type = type(value) + root_item.append_child(child) + + else: + root_item.value = value + root_item.value_type = type(value) + + return root_item + + +class JsonModel(QAbstractItemModel): + def __init__(self, parent: QObject = None): + super().__init__(parent) + + self._rootItem = TreeItem() + self._headers = ("key", "value") + + def clear(self): + self.load({}) + + def load(self, document: dict | list[dict]): + + self.beginResetModel() + + self._rootItem = TreeItem.load(document) + self._rootItem.value_type = type(document) + + self.endResetModel() + + return True + + def data(self, index: QModelIndex, role: Qt.ItemDataRole) -> Any: + + if not index.isValid(): + return None + + item = index.internalPointer() + + if role == Qt.DisplayRole: + if index.column() == 0: + return item.key + + if index.column() == 1: + return item.value + + elif role == Qt.EditRole: + if index.column() == 1: + return item.value + + def setData(self, index: QModelIndex, value: Any, role: Qt.ItemDataRole): + if role == Qt.EditRole: + if index.column() == 1: + item = index.internalPointer() + item.value = str(value) + + self.dataChanged.emit(index, index) + + return True + + return False + + def headerData(self, section: int, orientation: Qt.Orientation, role: Qt.ItemDataRole): + if role != Qt.DisplayRole: + return None + + if orientation == Qt.Horizontal: + return self._headers[section] + + def index(self, row: int, column: int, parent=QModelIndex()) -> QModelIndex: + if not self.hasIndex(row, column, parent): + return QModelIndex() + + if not parent.isValid(): + parent_item = self._rootItem + else: + parent_item = parent.internalPointer() + + child_item = parent_item.child(row) + if child_item: + return self.createIndex(row, column, child_item) + else: + return QModelIndex() + + def parent(self, index: QModelIndex) -> QModelIndex: + + if not index.isValid(): + return QModelIndex() + + child_item = index.internalPointer() + parent_item = child_item.parent() + + if parent_item == self._rootItem: + return QModelIndex() + + return self.createIndex(parent_item.row(), 0, parent_item) + + def rowCount(self, parent=QModelIndex()): + if parent.column() > 0: + return 0 + + if not parent.isValid(): + parent_item = self._rootItem + else: + parent_item = parent.internalPointer() + + return parent_item.child_count() + + def columnCount(self, parent=QModelIndex()): + return 2 + + def flags(self, index: QModelIndex) -> Qt.ItemFlags: + flags = super(JsonModel, self).flags(index) + + if index.column() == 1: + return Qt.ItemIsEditable | flags + else: + return flags + + def to_json(self, item=None): + + if item is None: + item = self._rootItem + + nr_child = item.child_count() + + if item.value_type is dict: + document = {} + for i in range(nr_child): + ch = item.child(i) + document[ch.key] = self.to_json(ch) + return document + + elif item.value_type == list: + document = [] + for i in range(nr_child): + ch = item.child(i) + document.append(self.to_json(ch)) + return document + + else: + return item.value diff --git a/app/popup_about.py b/app/popup_about.py new file mode 100644 index 0000000..4f0a82f --- /dev/null +++ b/app/popup_about.py @@ -0,0 +1,71 @@ +# Copyright (C) 2024 Martin Wieser +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +import json +from pathlib import Path + +from PySide6.QtWidgets import QWidget, QHeaderView + +from PySide6 import QtCore +from PySide6.QtCore import Qt, Signal + +from app.ui_about import Ui_popup_about +from app.json_model_viewer import JsonModel +from app.var_classes import software_version, license_version, build_year + + +class POPUPAbout(QWidget): + config_send = Signal(object) + + def __init__(self, licence_folder: Path, parent=None): + QWidget.__init__(self, parent) + self.ui = Ui_popup_about() + self.ui.setupUi(self) + self.dragPos = QtCore.QPointF() + + self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint) + self.setAttribute(Qt.WA_TranslucentBackground) + self.setWindowModality(Qt.WindowModality.ApplicationModal) + + self.ui.btn_close.clicked.connect(self.close) + + self.ui.lbl_copyright.setText("Version: %s\nCopyright(c) %s - Martin Wieser & Geert Verhoeven\nLicense: %s" + % (software_version, build_year, license_version)) + + model_license = JsonModel() + json_list = [] + + with open(licence_folder / "ThirdPartyNotices.json", 'r') as fe: + json_list += json.load(fe) + model_license.load(json_list) + + self.ui.treeView_license.setAlternatingRowColors(True) + self.ui.treeView_license.setModel(model_license) + self.ui.treeView_license.setColumnWidth(0, 200) + self.ui.treeView_license.setColumnWidth(1, 400) + self.ui.treeView_license.header().setSectionResizeMode(1, QHeaderView.ResizeMode.ResizeToContents) + + def move_window(event): + if event.buttons() == Qt.LeftButton and not self.isMaximized(): + self.move(self.pos() + event.globalPosition().toPoint() - self.dragPos.toPoint()) + self.dragPos = event.globalPosition() + event.accept() + + # WIDGET TO MOVE + self.ui.frame_top.mouseMoveEvent = move_window + + def mousePressEvent(self, event): + self.dragPos = event.globalPosition() diff --git a/app/ui_about.py b/app/ui_about.py new file mode 100644 index 0000000..01f1e80 --- /dev/null +++ b/app/ui_about.py @@ -0,0 +1,434 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'gui_about.ui' +## +## Created by: Qt User Interface Compiler version 6.6.2 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QAbstractItemView, QAbstractScrollArea, QApplication, QFrame, + QHBoxLayout, QHeaderView, QLabel, QPushButton, + QSizePolicy, QTreeView, QVBoxLayout, QWidget) +import files_rc + +class Ui_popup_about(object): + def setupUi(self, popup_about): + if not popup_about.objectName(): + popup_about.setObjectName(u"popup_about") + popup_about.resize(850, 761) + sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(popup_about.sizePolicy().hasHeightForWidth()) + popup_about.setSizePolicy(sizePolicy) + popup_about.setMinimumSize(QSize(850, 600)) + palette = QPalette() + brush = QBrush(QColor(255, 255, 255, 255)) + brush.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.WindowText, brush) + brush1 = QBrush(QColor(0, 0, 0, 0)) + brush1.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Button, brush1) + brush2 = QBrush(QColor(66, 73, 90, 255)) + brush2.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Light, brush2) + brush3 = QBrush(QColor(55, 61, 75, 255)) + brush3.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Midlight, brush3) + brush4 = QBrush(QColor(22, 24, 30, 255)) + brush4.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Dark, brush4) + brush5 = QBrush(QColor(29, 32, 40, 255)) + brush5.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Mid, brush5) + brush6 = QBrush(QColor(210, 210, 210, 255)) + brush6.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Text, brush6) + palette.setBrush(QPalette.Active, QPalette.BrightText, brush) + palette.setBrush(QPalette.Active, QPalette.ButtonText, brush) + palette.setBrush(QPalette.Active, QPalette.Base, brush1) + palette.setBrush(QPalette.Active, QPalette.Window, brush1) + brush7 = QBrush(QColor(0, 0, 0, 255)) + brush7.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Shadow, brush7) + brush8 = QBrush(QColor(85, 170, 255, 255)) + brush8.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.Highlight, brush8) + palette.setBrush(QPalette.Active, QPalette.Link, brush8) + brush9 = QBrush(QColor(255, 0, 127, 255)) + brush9.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.LinkVisited, brush9) + palette.setBrush(QPalette.Active, QPalette.AlternateBase, brush4) + brush10 = QBrush(QColor(44, 49, 60, 255)) + brush10.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.ToolTipBase, brush10) + palette.setBrush(QPalette.Active, QPalette.ToolTipText, brush6) + brush11 = QBrush(QColor(210, 210, 210, 128)) + brush11.setStyle(Qt.SolidPattern) +#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) + palette.setBrush(QPalette.Active, QPalette.PlaceholderText, brush11) +#endif + palette.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette.setBrush(QPalette.Inactive, QPalette.Button, brush1) + palette.setBrush(QPalette.Inactive, QPalette.Light, brush2) + palette.setBrush(QPalette.Inactive, QPalette.Midlight, brush3) + palette.setBrush(QPalette.Inactive, QPalette.Dark, brush4) + palette.setBrush(QPalette.Inactive, QPalette.Mid, brush5) + palette.setBrush(QPalette.Inactive, QPalette.Text, brush6) + palette.setBrush(QPalette.Inactive, QPalette.BrightText, brush) + palette.setBrush(QPalette.Inactive, QPalette.ButtonText, brush) + palette.setBrush(QPalette.Inactive, QPalette.Base, brush1) + palette.setBrush(QPalette.Inactive, QPalette.Window, brush1) + palette.setBrush(QPalette.Inactive, QPalette.Shadow, brush7) + palette.setBrush(QPalette.Inactive, QPalette.Highlight, brush8) + palette.setBrush(QPalette.Inactive, QPalette.Link, brush8) + palette.setBrush(QPalette.Inactive, QPalette.LinkVisited, brush9) + palette.setBrush(QPalette.Inactive, QPalette.AlternateBase, brush4) + palette.setBrush(QPalette.Inactive, QPalette.ToolTipBase, brush10) + palette.setBrush(QPalette.Inactive, QPalette.ToolTipText, brush6) +#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) + palette.setBrush(QPalette.Inactive, QPalette.PlaceholderText, brush11) +#endif + palette.setBrush(QPalette.Disabled, QPalette.WindowText, brush4) + palette.setBrush(QPalette.Disabled, QPalette.Button, brush1) + palette.setBrush(QPalette.Disabled, QPalette.Light, brush2) + palette.setBrush(QPalette.Disabled, QPalette.Midlight, brush3) + palette.setBrush(QPalette.Disabled, QPalette.Dark, brush4) + palette.setBrush(QPalette.Disabled, QPalette.Mid, brush5) + palette.setBrush(QPalette.Disabled, QPalette.Text, brush4) + palette.setBrush(QPalette.Disabled, QPalette.BrightText, brush) + palette.setBrush(QPalette.Disabled, QPalette.ButtonText, brush4) + palette.setBrush(QPalette.Disabled, QPalette.Base, brush1) + palette.setBrush(QPalette.Disabled, QPalette.Window, brush1) + palette.setBrush(QPalette.Disabled, QPalette.Shadow, brush7) + brush12 = QBrush(QColor(51, 153, 255, 255)) + brush12.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Disabled, QPalette.Highlight, brush12) + palette.setBrush(QPalette.Disabled, QPalette.Link, brush8) + palette.setBrush(QPalette.Disabled, QPalette.LinkVisited, brush9) + palette.setBrush(QPalette.Disabled, QPalette.AlternateBase, brush10) + palette.setBrush(QPalette.Disabled, QPalette.ToolTipBase, brush10) + palette.setBrush(QPalette.Disabled, QPalette.ToolTipText, brush6) +#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) + palette.setBrush(QPalette.Disabled, QPalette.PlaceholderText, brush11) +#endif + popup_about.setPalette(palette) + font = QFont() + font.setFamilies([u"Segoe UI"]) + font.setPointSize(10) + popup_about.setFont(font) + popup_about.setStyleSheet(u"QWidget {background: transparent; color: rgb(210, 210, 210)}\n" +"QToolTip {\n" +" color: #ffffff;\n" +" background-color: rgba(27, 29, 35, 160);\n" +" border: 1px solid rgb(40, 40, 40);\n" +" border-radius: 2px;\n" +"}\n" +"\n" +"QLabel {\n" +" \n" +" color: rgb(150, 150, 150);\n" +"}\n" +"\n" +"/* LINE EDIT */\n" +"QLineEdit {\n" +" background-color: rgb(27, 29, 35);\n" +" border-radius: 5px;\n" +" border: 2px solid rgb(27, 29, 35);\n" +" padding-left: 10px;\n" +"}\n" +"QLineEdit:hover {\n" +" border: 2px solid rgb(64, 71, 88);\n" +"}\n" +"QLineEdit:focus {\n" +" border: 2px solid rgb(91, 101, 124);\n" +"}\n" +"\n" +"/* SCROLL BARS */\n" +"QScrollBar:horizontal {\n" +" border: none;\n" +" background: rgb(52, 59, 72);\n" +" height: 14px;\n" +" margin: 0px 21px 0 21px;\n" +" border-radius: 0px;\n" +"}\n" +"QScrollBar::handle:horizontal {\n" +" background: rgb(178, 186, 87);\n" +" min-width: 25px;\n" +" border-radius: 7px\n" +"}\n" +"QScrollBar::add-line:horizontal {\n" +" border: none;\n" +" background: rgb(55, 63, 77);\n" +" wi" + "dth: 20px;\n" +" border-top-right-radius: 7px;\n" +" border-bottom-right-radius: 7px;\n" +" subcontrol-position: right;\n" +" subcontrol-origin: margin;\n" +"}\n" +"QScrollBar::sub-line:horizontal {\n" +" border: none;\n" +" background: rgb(55, 63, 77);\n" +" width: 20px;\n" +" border-top-left-radius: 7px;\n" +" border-bottom-left-radius: 7px;\n" +" subcontrol-position: left;\n" +" subcontrol-origin: margin;\n" +"}\n" +"QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal\n" +"{\n" +" background: none;\n" +"}\n" +"QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal\n" +"{\n" +" background: none;\n" +"}\n" +" QScrollBar:vertical {\n" +" border: none;\n" +" background: rgb(52, 59, 72);\n" +" width: 14px;\n" +" margin: 21px 0 21px 0;\n" +" border-radius: 0px;\n" +" }\n" +" QScrollBar::handle:vertical { \n" +" background: rgb(178, 186, 87);\n" +" min-height: 25px;\n" +" border-radius: 7px\n" +" }\n" +" QScrollBar::add-line:vertical {\n" +" border: none;\n" +" background:" + " rgb(55, 63, 77);\n" +" height: 20px;\n" +" border-bottom-left-radius: 7px;\n" +" border-bottom-right-radius: 7px;\n" +" subcontrol-position: bottom;\n" +" subcontrol-origin: margin;\n" +" }\n" +" QScrollBar::sub-line:vertical {\n" +" border: none;\n" +" background: rgb(55, 63, 77);\n" +" height: 20px;\n" +" border-top-left-radius: 7px;\n" +" border-top-right-radius: 7px;\n" +" subcontrol-position: top;\n" +" subcontrol-origin: margin;\n" +" }\n" +" QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {\n" +" background: none;\n" +" }\n" +"\n" +" QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {\n" +" background: none;\n" +" }\n" +"") + self.verticalLayout = QVBoxLayout(popup_about) + self.verticalLayout.setSpacing(0) + self.verticalLayout.setObjectName(u"verticalLayout") + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.frame_top = QFrame(popup_about) + self.frame_top.setObjectName(u"frame_top") + self.frame_top.setMinimumSize(QSize(0, 40)) + self.frame_top.setMaximumSize(QSize(16777215, 40)) + font1 = QFont() + font1.setFamilies([u"Segoe UI"]) + self.frame_top.setFont(font1) + self.frame_top.setStyleSheet(u"background-color:rgb(127, 84, 0);\n" +"color: white;") + self.frame_top.setFrameShape(QFrame.NoFrame) + self.frame_top.setFrameShadow(QFrame.Raised) + self.horizontalLayout = QHBoxLayout(self.frame_top) + self.horizontalLayout.setSpacing(10) + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.horizontalLayout.setContentsMargins(10, 0, 0, 0) + self.lbl_icon = QLabel(self.frame_top) + self.lbl_icon.setObjectName(u"lbl_icon") + self.lbl_icon.setMinimumSize(QSize(30, 30)) + self.lbl_icon.setMaximumSize(QSize(30, 30)) + self.lbl_icon.setPixmap(QPixmap(u":/icons/icons/INDIGO_logoGRAPHIS.png")) + self.lbl_icon.setScaledContents(True) + + self.horizontalLayout.addWidget(self.lbl_icon) + + self.label_title = QLabel(self.frame_top) + self.label_title.setObjectName(u"label_title") + font2 = QFont() + font2.setFamilies([u"Segoe UI"]) + font2.setPointSize(10) + font2.setBold(True) + self.label_title.setFont(font2) + self.label_title.setStyleSheet(u"background: transparent;\n" +"") + self.label_title.setFrameShadow(QFrame.Raised) + + self.horizontalLayout.addWidget(self.label_title) + + self.btn_close = QPushButton(self.frame_top) + self.btn_close.setObjectName(u"btn_close") + self.btn_close.setEnabled(True) + sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + sizePolicy1.setHorizontalStretch(0) + sizePolicy1.setVerticalStretch(0) + sizePolicy1.setHeightForWidth(self.btn_close.sizePolicy().hasHeightForWidth()) + self.btn_close.setSizePolicy(sizePolicy1) + self.btn_close.setMinimumSize(QSize(40, 0)) + self.btn_close.setMaximumSize(QSize(40, 16777215)) + self.btn_close.setFont(font1) +#if QT_CONFIG(tooltip) + self.btn_close.setToolTip(u"Close") +#endif // QT_CONFIG(tooltip) + self.btn_close.setStyleSheet(u"QPushButton { \n" +" border: none;\n" +" background-color: transparent;\n" +"}\n" +"QPushButton:hover {\n" +" background-color: rgb(150, 40, 23);\n" +"}\n" +"QPushButton:pressed { \n" +" background-color: rgb(250, 39, 10);\n" +"}") + self.btn_close.setText(u"") + icon = QIcon() + icon.addFile(u":/icons/icons/cil-x.png", QSize(), QIcon.Normal, QIcon.Off) + self.btn_close.setIcon(icon) + + self.horizontalLayout.addWidget(self.btn_close) + + + self.verticalLayout.addWidget(self.frame_top) + + self.frame_center = QFrame(popup_about) + self.frame_center.setObjectName(u"frame_center") + sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) + sizePolicy2.setHorizontalStretch(0) + sizePolicy2.setVerticalStretch(0) + sizePolicy2.setHeightForWidth(self.frame_center.sizePolicy().hasHeightForWidth()) + self.frame_center.setSizePolicy(sizePolicy2) + self.frame_center.setFont(font1) + self.frame_center.setStyleSheet(u"background-color: rgb(34, 36, 50);") + self.frame_center.setFrameShape(QFrame.NoFrame) + self.frame_center.setFrameShadow(QFrame.Raised) + self.label_8 = QLabel(self.frame_center) + self.label_8.setObjectName(u"label_8") + self.label_8.setGeometry(QRect(360, 420, 91, 16)) + self.label_8.setStyleSheet(u"border: 1px solid rgba(170, 170, 255,100);\n" +"border-radius:15px;") + self.label_8.setText(u"License Table") + self.label_8.setAlignment(Qt.AlignCenter) + self.label = QLabel(self.frame_center) + self.label.setObjectName(u"label") + self.label.setGeometry(QRect(20, 387, 991, 31)) + self.label.setText(u"GRAPHIS thankfully relies on packages provided as open source. The table below try to list packages and used libraries with their license informatoin.\n" +"If you find any missing information please file an issue. License info can also be found in the folder license. Double click to expand license information.") + self.label_2 = QLabel(self.frame_center) + self.label_2.setObjectName(u"label_2") + self.label_2.setGeometry(QRect(290, 10, 531, 151)) + self.label_2.setText(u"\n" +"\n" +"

GRAPHIS (Generate Regions and Annotations for PHotos using the IPTC Standard) is an open-source and freely available Windows-based software to create or change IPTC image regions, annotate them with graffiti descriptions or transcriptions, and visualise them.

\n" +"


\n" +"

The Repository can be found at github.com/GraffitiProjectINDIGO/GRAPHIS. Its the main source for discussion, bug reporting and info how to get involved.

\n" +"


") + self.label_2.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignTop) + self.label_2.setWordWrap(True) + self.label_2.setOpenExternalLinks(True) + self.label_2.setTextInteractionFlags(Qt.LinksAccessibleByMouse) + self.lbl_copyright = QLabel(self.frame_center) + self.lbl_copyright.setObjectName(u"lbl_copyright") + self.lbl_copyright.setGeometry(QRect(290, 180, 531, 81)) + font3 = QFont() + font3.setPointSize(12) + font3.setBold(True) + self.lbl_copyright.setFont(font3) + self.lbl_copyright.setFrameShape(QFrame.NoFrame) + self.lbl_copyright.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignTop) + self.treeView_license = QTreeView(self.frame_center) + self.treeView_license.setObjectName(u"treeView_license") + self.treeView_license.setGeometry(QRect(10, 430, 831, 281)) + self.treeView_license.setStyleSheet(u"QTreeView{alternate-background-color: rgb(38, 40, 56); background: transparent;}\n" +"\n" +"QTreeView::branch:has-children:!has-siblings:closed,\n" +"QTreeView::branch:closed:has-children:has-siblings {\n" +" border-image: none;\n" +" image: url(:/icons/icons/cil-size-grip.png);\n" +"}\n" +"\n" +"QTreeView::branch:open:has-children:!has-siblings,\n" +"QTreeView::branch:open:has-children:has-siblings {\n" +" border-image: none;\n" +" image:url(:/icons/icons/circle.svg);\n" +"}\n" +"\n" +"") + self.treeView_license.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded) + self.treeView_license.setSizeAdjustPolicy(QAbstractScrollArea.AdjustIgnored) + self.treeView_license.setAutoScroll(False) + self.treeView_license.setEditTriggers(QAbstractItemView.NoEditTriggers) + self.treeView_license.setSelectionMode(QAbstractItemView.NoSelection) + self.treeView_license.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel) + self.treeView_license.setHeaderHidden(True) + self.treeView_license.header().setMinimumSectionSize(220) + self.treeView_license.header().setDefaultSectionSize(220) + self.treeView_license.header().setStretchLastSection(True) + self.label_3 = QLabel(self.frame_center) + self.label_3.setObjectName(u"label_3") + self.label_3.setGeometry(QRect(20, 300, 731, 41)) + font4 = QFont() + font4.setPointSize(10) + font4.setBold(True) + self.label_3.setFont(font4) + self.label_3.setStyleSheet(u"") + self.label_3.setText(u"

Graphis is using the Qt's QT6 engine with Pyside6/shiboken6 under the GPLv3 and LibRAW under the LGPLv.2.1
Instructions to obtain the source coude can be found under github.com/GraffitiProjectINDIGO/GRAPHIS

") + self.label_3.setTextFormat(Qt.RichText) + self.label_4 = QLabel(self.frame_center) + self.label_4.setObjectName(u"label_4") + self.label_4.setGeometry(QRect(40, 20, 211, 181)) + self.label_4.setPixmap(QPixmap(u":/icons/icons/INDIGO_logoGRAPHIS.png")) + self.label_4.setScaledContents(False) + self.label.raise_() + self.label_2.raise_() + self.lbl_copyright.raise_() + self.treeView_license.raise_() + self.label_8.raise_() + self.label_3.raise_() + self.label_4.raise_() + + self.verticalLayout.addWidget(self.frame_center) + + + self.retranslateUi(popup_about) + + QMetaObject.connectSlotsByName(popup_about) + # setupUi + + def retranslateUi(self, popup_about): + popup_about.setWindowTitle(QCoreApplication.translate("popup_about", u"MainWindow", None)) + self.lbl_icon.setText("") +#if QT_CONFIG(tooltip) + self.label_title.setToolTip(QCoreApplication.translate("popup_about", u"

Move window

", None)) +#endif // QT_CONFIG(tooltip) + self.label_title.setText(QCoreApplication.translate("popup_about", u"About GRAPHIS", None)) + self.lbl_copyright.setText("") +#if QT_CONFIG(tooltip) + self.treeView_license.setToolTip(QCoreApplication.translate("popup_about", u"Double click to expand", None)) +#endif // QT_CONFIG(tooltip) + self.label_4.setText("") + # retranslateUi + diff --git a/app/ui_main.py b/app/ui_main.py index b2d6a13..8616e97 100644 --- a/app/ui_main.py +++ b/app/ui_main.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'gui_main.ui' ## -## Created by: Qt User Interface Compiler version 6.5.1 +## Created by: Qt User Interface Compiler version 6.6.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -375,7 +375,7 @@ def setupUi(self, MainWindow): self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0) self.frame_label_top_btns = QFrame(self.frame_top) self.frame_label_top_btns.setObjectName(u"frame_label_top_btns") - sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) + sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.frame_label_top_btns.sizePolicy().hasHeightForWidth()) @@ -388,7 +388,7 @@ def setupUi(self, MainWindow): self.horizontalLayout_10.setContentsMargins(5, 0, 0, 0) self.lbl_icon = QLabel(self.frame_label_top_btns) self.lbl_icon.setObjectName(u"lbl_icon") - sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) + sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) sizePolicy1.setHeightForWidth(self.lbl_icon.sizePolicy().hasHeightForWidth()) @@ -432,7 +432,7 @@ def setupUi(self, MainWindow): self.horizontalLayout_8.setContentsMargins(0, 0, 0, 0) self.waiting_spinner = SPINNINGWaiter(self.frame_spinner) self.waiting_spinner.setObjectName(u"waiting_spinner") - sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) + sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) sizePolicy2.setHeightForWidth(self.waiting_spinner.sizePolicy().hasHeightForWidth()) @@ -449,7 +449,7 @@ def setupUi(self, MainWindow): self.lbl_sqlite_name = QLabel(self.frame_label_top_btns) self.lbl_sqlite_name.setObjectName(u"lbl_sqlite_name") - sizePolicy3 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) + sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Maximum) sizePolicy3.setHorizontalStretch(0) sizePolicy3.setVerticalStretch(0) sizePolicy3.setHeightForWidth(self.lbl_sqlite_name.sizePolicy().hasHeightForWidth()) @@ -496,7 +496,7 @@ def setupUi(self, MainWindow): self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0) self.btn_minimize = QPushButton(self.frame_btns_right) self.btn_minimize.setObjectName(u"btn_minimize") - sizePolicy4 = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) + sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) sizePolicy4.setHorizontalStretch(0) sizePolicy4.setVerticalStretch(0) sizePolicy4.setHeightForWidth(self.btn_minimize.sizePolicy().hasHeightForWidth()) @@ -571,7 +571,7 @@ def setupUi(self, MainWindow): self.frame_center = QFrame(self.frame_main) self.frame_center.setObjectName(u"frame_center") - sizePolicy5 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) + sizePolicy5 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sizePolicy5.setHorizontalStretch(0) sizePolicy5.setVerticalStretch(0) sizePolicy5.setHeightForWidth(self.frame_center.sizePolicy().hasHeightForWidth()) @@ -1012,7 +1012,7 @@ def setupUi(self, MainWindow): self.info_screen = QTextEdit(self.tab_4) self.info_screen.setObjectName(u"info_screen") self.info_screen.setGeometry(QRect(0, 0, 251, 151)) - sizePolicy6 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) + sizePolicy6 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding) sizePolicy6.setHorizontalStretch(0) sizePolicy6.setVerticalStretch(0) sizePolicy6.setHeightForWidth(self.info_screen.sizePolicy().hasHeightForWidth()) @@ -1231,7 +1231,7 @@ def setupUi(self, MainWindow): self.frame_5 = QFrame(self.frame_10) self.frame_5.setObjectName(u"frame_5") - sizePolicy7 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) + sizePolicy7 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed) sizePolicy7.setHorizontalStretch(0) sizePolicy7.setVerticalStretch(0) sizePolicy7.setHeightForWidth(self.frame_5.sizePolicy().hasHeightForWidth()) @@ -1678,13 +1678,13 @@ def setupUi(self, MainWindow): self.horizontalLayout_11.setSpacing(6) self.horizontalLayout_11.setObjectName(u"horizontalLayout_11") self.horizontalLayout_11.setContentsMargins(0, 0, 0, 0) - self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) self.horizontalLayout_11.addItem(self.horizontalSpacer) self.btn_expand_all = QPushButton(self.frame_4) self.btn_expand_all.setObjectName(u"btn_expand_all") - sizePolicy8 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + sizePolicy8 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) sizePolicy8.setHorizontalStretch(0) sizePolicy8.setVerticalStretch(0) sizePolicy8.setHeightForWidth(self.btn_expand_all.sizePolicy().hasHeightForWidth()) @@ -1775,7 +1775,7 @@ def setupUi(self, MainWindow): self.horizontalLayout_12.setSpacing(6) self.horizontalLayout_12.setObjectName(u"horizontalLayout_12") self.horizontalLayout_12.setContentsMargins(0, 0, 0, 0) - self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) self.horizontalLayout_12.addItem(self.horizontalSpacer_2) @@ -1946,8 +1946,8 @@ def setupUi(self, MainWindow): self.retranslateUi(MainWindow) - self.tabWidget_2.setCurrentIndex(1) - self.tabWidget.setCurrentIndex(0) + self.tabWidget_2.setCurrentIndex(0) + self.tabWidget.setCurrentIndex(1) self.tabWidget_3.setCurrentIndex(0) @@ -2015,11 +2015,18 @@ def retranslateUi(self, MainWindow): "\n" "For more information or questions on GRAPHIS please email info@projectindigo.eu\n" "\n" -"@Martin Wieser 2023\n" -"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201cSoftware\u201d), 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:\n" -"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n" -"THE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMIT" - "ED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", None)) +"WISDAMapp is using the Qt's QT6 engine with Pyside6/shiboken6 under the GPLv3 and LibRAW under the LGPLv.2.1\n" +"Instructions to obtain the source coude can be found under github.com/wisdam\n" +"\n" +"Copyright (C) 2023 Martin Wieser\n" +"\n" +"This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n" +"\n" +"This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +"See the GNU General Public License for more d" + "etails.\n" +"\n" +"You should have received a copy of the GNU General Public License along with this program. If not, see .", None)) self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_3), "") self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_4), "") self.lbl_image_name.setText("") @@ -2076,7 +2083,7 @@ def retranslateUi(self, MainWindow): self.btn_expand_all_all_region.setText(QCoreApplication.translate("MainWindow", u"Expand all", None)) self.btn_collapse_all_all_region.setText(QCoreApplication.translate("MainWindow", u"Collapse all", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_8), QCoreApplication.translate("MainWindow", u"All region info", None)) - self.label_credits.setText(QCoreApplication.translate("MainWindow", u"

GRAPHIS @ INDIGO 2023 - https://projectindigo.eu

", None)) + self.label_credits.setText(QCoreApplication.translate("MainWindow", u"

GRAPHIS @ INDIGO 2024 - https://projectindigo.eu

", None)) self.label_version.setText(QCoreApplication.translate("MainWindow", u"v1.2", None)) #if QT_CONFIG(tooltip) self.frame_size_grip.setToolTip(QCoreApplication.translate("MainWindow", u"

Change window size

", None)) diff --git a/app/var_classes.py b/app/var_classes.py index 6cb265e..8344683 100644 --- a/app/var_classes.py +++ b/app/var_classes.py @@ -1,4 +1,4 @@ -# Copyright (C) 2023 Martin Wieser +# Copyright (C) 2024 Martin Wieser # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -23,6 +23,10 @@ from PySide6.QtGui import QColor, QBrush, QStandardItem +software_version = "2.2" +license_version = "GNU General Public License v3 or later (GPLv3+)" +build_year = "2024" + CONFIG_FILE = "graphis.config" COLOR_CIRCLE_START = '#fdae61' @@ -44,14 +48,14 @@ RCTYPE_Standard_NAME = 'graffito' -image_region_role = [["cropping", "http://cv.iptc.org/newscodes/imageregionrole/cropping"], - ["recommended cropping", "http://cv.iptc.org/newscodes/imageregionrole/recomCropping"], - ["landscape format cropping", "http://cv.iptc.org/newscodes/imageregionrole/landscapeCropping"], - ["portrait format cropping", "http://cv.iptc.org/newscodes/imageregionrole/portraitCropping"], - ["square format cropping", "http://cv.iptc.org/newscodes/imageregionrole/squareCropping"], - ["composite image item", "http://cv.iptc.org/newscodes/imageregionrole/compositeImageItem"], - ["copyright region", "http://cv.iptc.org/newscodes/imageregionrole/copyrightRegion"], - ["business use", "http://cv.iptc.org/newscodes/imageregionrole/businessUse"], +image_region_role = [#["cropping", "http://cv.iptc.org/newscodes/imageregionrole/cropping"], + #["recommended cropping", "http://cv.iptc.org/newscodes/imageregionrole/recomCropping"], + #["landscape format cropping", "http://cv.iptc.org/newscodes/imageregionrole/landscapeCropping"], + #["portrait format cropping", "http://cv.iptc.org/newscodes/imageregionrole/portraitCropping"], + #["square format cropping", "http://cv.iptc.org/newscodes/imageregionrole/squareCropping"], + #["composite image item", "http://cv.iptc.org/newscodes/imageregionrole/compositeImageItem"], + #["copyright region", "http://cv.iptc.org/newscodes/imageregionrole/copyrightRegion"], + #["business use", "http://cv.iptc.org/newscodes/imageregionrole/businessUse"], ['area of interest', "https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/areaOfInterest"], ['main subject area', "https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/mainSubjectArea"], ['subject area', "https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/subjectArea"]] diff --git a/graphis.config b/graphis.config index 8b9664e..f3191e5 100644 --- a/graphis.config +++ b/graphis.config @@ -6,8 +6,7 @@ CONTRIBUTOR_TAG = XMP-iptcExt:Contributor [POLYGON] REGION_NAME_PREFIX = graffito -# Region Role Name Must be present in the iptc region news code -REGION_ROLE_NAME= main subject area +REGION_ROLE_NAME = main subject area RCTYPE_IDENTIFIER = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/graffiti RCTYPE_NAME = graffito REGION_CREATOR_ROLE = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/imgRegCreator @@ -16,8 +15,7 @@ TRANSCRIBER_ROLE = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/transcrWriter COLOUR_START = #2c7bb6 [RECTANGLE] -REGION_NAME_PREFIX = graffito text -# Region Role Name Must be present in the iptc region news code +REGION_NAME_PREFIX = text (graffito) REGION_ROLE_NAME= area of interest RCTYPE_IDENTIFIER = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/textGraffito RCTYPE_NAME = graffito text @@ -27,11 +25,10 @@ TRANSCRIBER_ROLE = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/transcrWriter COLOUR_START = #4dac26 [CIRCLE] -REGION_NAME_PREFIX = graffito poi -# Region Role Name Must be present in the iptc region news code -REGION_ROLE_NAME = area of interest +REGION_NAME_PREFIX = graffito +REGION_ROLE_NAME = main subject area RCTYPE_IDENTIFIER = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/graffiti -RCTYPE_NAME = graffito spot +RCTYPE_NAME = graffito REGION_CREATOR_ROLE = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/imgRegCreator DESCRIBER_ROLE = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/descrWriter TRANSCRIBER_ROLE = https://vocabs.acdh.oeaw.ac.at/graphis-imgreg/transcrWriter diff --git a/graphis.py b/graphis.py index 3c96f48..d6e758e 100644 --- a/graphis.py +++ b/graphis.py @@ -1,4 +1,4 @@ -# Copyright (C) 2023 Martin Wieser +# Copyright (C) 2024 Martin Wieser # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -14,10 +14,9 @@ # along with this program. If not, see . # -__version__ = '2.2' + import sys -from os import environ import traceback import json from pathlib import Path @@ -37,7 +36,7 @@ from app.var_classes import (Instructions, PreviewModelData, image_region_role, put_struct_to_dict_or_remove, put_text_to_dict_or_remove, put_struc_tag, find_key_role, PREVIEW_HEIGHT, load_config, - get_image_region_role) + get_image_region_role, software_version) from app.ui_main import Ui_MainWindow from app.digitizerscene import DIGITIZERScene from app.image_loader import image_loader @@ -46,7 +45,11 @@ from app.meta_exif import parse_img_region from app.meta_exif import meta_writer from app.json_model import JsonModel +from app.popup_about import POPUPAbout + +__version__ = software_version +path_to_license_folder = Path(__file__).resolve().with_name("app") class OutputWrapper(QtCore.QObject): outputWritten: SignalInstance = QtCore.Signal(object, object) @@ -209,6 +212,7 @@ def drag_window(event): self.action_menu4 = QAction("Save bounding boxes to CSV file", self) self.action_menu5 = QAction("Save image regions to files", self) self.action_menu6 = QAction("Save image regions to files (keep original images)", self) + self.action_menu7 = QAction("?", self) self.alignMenu = QMenu(self) self.alignMenu.addAction(self.action_menu1) @@ -221,7 +225,9 @@ def drag_window(event): self.alignMenu.addAction(self.action_menu4) self.alignMenu.addAction(self.action_menu5) self.alignMenu.addAction(self.action_menu6) - self.alignMenu.setStyleSheet("background: rgb(130, 130, 130);font: 10pt;\n") + self.alignMenu.addSeparator() + self.alignMenu.addAction(self.action_menu7) + self.alignMenu.setStyleSheet("background:rgb(130, 130, 130);font: 10pt;\n") self.ui.toolButton.setMenu(self.alignMenu) @@ -240,6 +246,7 @@ def drag_window(event): self.log_file = Path() self.pop_user = POPUPUser() + self.pop_about = POPUPAbout(path_to_license_folder) self.len_image_list = 0 self.log_sync_nr = 0 self.image_list = [] @@ -284,6 +291,7 @@ def drag_window(event): self.action_menu4.triggered.connect(self.save_csv) self.action_menu5.triggered.connect(lambda: self.save_image_regions(keep_orig=False)) self.action_menu6.triggered.connect(lambda: self.save_image_regions(keep_orig=True)) + self.action_menu7.triggered.connect(self.pop_about.show) # Connect double on image to load the image self.ui.table_preview.doubleClicked.connect(self.scene_load_image) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..6362af3 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,39 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "GRAPHIS" +version = "2.2" +authors = [ + { name="Martin Wieser"}, +] +description = "A package to work with IPTC region in images" +readme = "README.md" +requires-python = ">=3.10" +classifiers = [ + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", + "Operating System :: OS Independent", + "Development Status :: 3 - Alpha" +] + +dependencies = [ + 'numpy>=1.24.2', + 'shapely>=2.0.1', + 'Pillow>=9.4.0', + 'rawpy>=0.18.0', + 'PySide6>=6.6.2', + 'PySide6_Essentials>=6.6.2', + 'PySide6_Addons>=6.6.2', + 'PyExifTool>=0.5.5'] + + +[project.urls] + "Homepage" = "https://github.com/GraffitiProjectINDIGO/GRAPHIS" + "Bug Tracker" = "https://github.com/GraffitiProjectINDIGO/GRAPHIS/issues" + + +[project.scripts] +graphis = "graphis.main:run" \ No newline at end of file diff --git a/readme.md b/readme.md index 366cdb9..764a333 100644 --- a/readme.md +++ b/readme.md @@ -14,8 +14,46 @@ GRAPHIS (Generate Regions and Annotations for < GRAPHIS supports the most common raster image file formats that store IPTC metadata: JPEG, TIFF, PNG, and many RAW formats. The metadata of all imported images are read and written into a local SQLite database; this database also stores each operation on the image regions. GRAPHIS can store the (newly created or altered) image regions and their annotations back into the original images at any time, but only if chosen so in the menu. ## Install -The latest compiled release—ready for direct installation on a Windows machine—can be found [here](https://github.com/GraffitiProjectINDIGO/GRAPHIS/releases). +The latest release of GRAPHIS can be found at [github](https://github.com/GraffitiProjectINDIGO/GRAPHIS). + +### From Source +To install GRAPHIS you can execute in the graphis directory (same one where you found this file after cloning the git repo): + +``` + pip install . +``` + +## Builds +The latest compiled release (ready as executable on a Windows machine) can be found [here](https://github.com/GraffitiProjectINDIGO/GRAPHIS/releases). + +### Build executable One can also run ```pyinstaller Graphis_pyinstaller.spec``` to create an executable software package graphis_XX. +For this you need the pyinstaller installed in your environment. + +### Qt6 and PySide6 +If you want to build Qt6 and PySide6 from source, the source code and build instructions for PySide6 and Qt6 can be found under ``source``. +You can also find more in detail information at [Qt for Python](https://wiki.qt.io/Qt_for_Python) + +### LibRAW +If you want to build LibRAW from source, the source code and build instructions be found under ``source``. + + +## Dependencies + +### Python +PyImageMapping runs on **Python 3.10+**. +PyImageMapping has been tested on Windows and Linux, and probably also runs on other Unix-like platforms. + +### Packages +It relies only on well-developed packages +- [numpy](https://www.numpy.org) +- [PySide6](https://doc.qt.io/qtforpython-6) under the GPLv3. The source code and build instructions for Pyside6 and Qt6 can be found under ``source``. +- [shapely](https://shapely.readthedocs.io/en/stable/index.html) +- [Pillow](https://python-pillow.org/) +- [LibRaw](https://www.libraw.org/) under the LGPLv2.1 using [rawpy](https://pypi.org/project/rawpy). The source code for LibRAW can be found under ``source``. + +and the package [PyExiftool](https://github.com/sylikc/pyexiftool) as interface to EXIFTool's command line + ## Usage GRAPHIS aims to add, manipulate, or visualise IPTC image regions. Only circles, rectangles, or any other valid polygonal shapes contained within the image are allowed. Additional meta information can be stored for each image region. @@ -34,3 +72,17 @@ Verhoeven, G.J., Wieser, M., Carloni, M., 2023. GRAPHIS—Visualise, Draw, An ![ ](doc/images/main_window.jpg) + +## Licence +PyImageMapping is licensed under the GPLv3. + +Copyright (C) 2024 Martin Wieser + +This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or(at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this program. If not, see . + + +See ``LICENSE`` for more details. \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 6e5d5f4..afaf0e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ numpy>=1.24.2 Pillow>=9.4.0 PyExifTool>=0.5.5 -PySide6>=6.5.0 +PySide6>=6.6.2 Shapely>=2.0.1 rawpy>=0.18.0 \ No newline at end of file diff --git a/source/LibRaw-0.21.2.zip b/source/LibRaw-0.21.2.zip new file mode 100644 index 0000000..d38ea6c Binary files /dev/null and b/source/LibRaw-0.21.2.zip differ diff --git a/source/pyside-source_version-6_6_2.zip b/source/pyside-source_version-6_6_2.zip new file mode 100644 index 0000000..2f1a8d7 Binary files /dev/null and b/source/pyside-source_version-6_6_2.zip differ diff --git a/source/qt6_version-6_6_2.zip b/source/qt6_version-6_6_2.zip new file mode 100644 index 0000000..b3cf0c4 Binary files /dev/null and b/source/qt6_version-6_6_2.zip differ