commit 36ae27f5f3448a578dc4b4b3e1586ad2e169c537 Author: lordmulder Date: Sat Nov 6 23:04:47 2010 +0100 first commit diff --git a/LameXP.rc b/LameXP.rc new file mode 100644 index 00000000..15ac354c --- /dev/null +++ b/LameXP.rc @@ -0,0 +1,120 @@ +// Microsoft Visual C++ generated resource script. +// +#include "src\Resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// German (Germany) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "src\\Resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON "res\\MainIcon.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// WAVE +// + +IDR_WAVE_ABOUT WAVE "res\\sounds\\uuaarrgh.wav" + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 4,0,0,0 + PRODUCTVERSION 4,0,0,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x3L +#else + FILEFLAGS 0x2L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "Comments", "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY" + VALUE "CompanyName", "Free Software Foundation" + VALUE "FileDescription", "LameXP - Audio Encoder Front-End" + VALUE "FileVersion", "4.0.0.0" + VALUE "InternalName", "LameXP Qt" + VALUE "LegalCopyright", "Copyright (C) 2004-2010 LoRd_MuldeR " + VALUE "LegalTrademarks", "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License " + VALUE "OriginalFilename", "LameXP.exe" + VALUE "ProductName", "LameXP - Audio Encoder Front-End" + VALUE "ProductVersion", "v4.00 Pre-Alpha" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END + +#endif // German (Germany) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/LameXP.sln b/LameXP.sln new file mode 100644 index 00000000..923e5e5a --- /dev/null +++ b/LameXP.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LameXP", "LameXP.vcproj", "{00FE736A-8DB1-41B3-B915-4CD8DB09EF48}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {00FE736A-8DB1-41B3-B915-4CD8DB09EF48}.Debug|Win32.ActiveCfg = Debug|Win32 + {00FE736A-8DB1-41B3-B915-4CD8DB09EF48}.Debug|Win32.Build.0 = Debug|Win32 + {00FE736A-8DB1-41B3-B915-4CD8DB09EF48}.Release|Win32.ActiveCfg = Release|Win32 + {00FE736A-8DB1-41B3-B915-4CD8DB09EF48}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/LameXP.vcproj b/LameXP.vcproj new file mode 100644 index 00000000..b11bdc91 --- /dev/null +++ b/LameXP.vcproj @@ -0,0 +1,710 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/License.txt b/License.txt new file mode 100644 index 00000000..ecef7655 --- /dev/null +++ b/License.txt @@ -0,0 +1,342 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 2 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, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + + diff --git a/ReadMe.txt b/ReadMe.txt new file mode 100644 index 00000000..dadd73dc --- /dev/null +++ b/ReadMe.txt @@ -0,0 +1,19 @@ + + LameXP - Audio Encoder Front-End + Copyright (C) 2004-2010 LoRd_MuldeR + + 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 2 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + http:www.gnu.org/licenses/gpl-2.0.txt diff --git a/etc/Deployment/_build.bat b/etc/Deployment/_build.bat new file mode 100644 index 00000000..fb6c5b7e --- /dev/null +++ b/etc/Deployment/_build.bat @@ -0,0 +1,9 @@ +@echo off +call _paths.bat +echo ---------------------------------------------------------------- +echo Solution File: %1 +echo Configuration: %~n2 +echo ---------------------------------------------------------------- +call "%PATH_MSVC90%\VC\bin\vcvars32.bat" +call "%PATH_QTMSVC%\bin\qtvars.bat" +msbuild.exe /property:Configuration=%~n2 /target:Clean,Rebuild /verbosity:d %1 diff --git a/etc/Deployment/_paths.bat b/etc/Deployment/_paths.bat new file mode 100644 index 00000000..e69b1f69 --- /dev/null +++ b/etc/Deployment/_paths.bat @@ -0,0 +1,5 @@ +@echo off +set "PATH_SEVENZ=E:\7-Zip\7z.exe" +set "PATH_MPRESS=E:\MPress\mpress.exe" +set "PATH_MSVC90=D:\Microsoft Visual Studio 9.0" +set "PATH_QTMSVC=E:\Qt\MSVC\4.7.0" diff --git a/etc/Deployment/debug.bat b/etc/Deployment/debug.bat new file mode 100644 index 00000000..472aef00 --- /dev/null +++ b/etc/Deployment/debug.bat @@ -0,0 +1,3 @@ +@echo off +call _build.bat "..\..\LameXP.sln" Debug +pause diff --git a/etc/Deployment/release.bat b/etc/Deployment/release.bat new file mode 100644 index 00000000..8e87875b --- /dev/null +++ b/etc/Deployment/release.bat @@ -0,0 +1,49 @@ +@echo off +call _paths.bat +REM ------------------------------------------ +set "TEMP_DIR=%TEMP%\~LameXP.%DATE%.tmp" +set "OUT_PATH=..\..\out\Release" +set "OUT_FILE=%OUT_PATH%\..\LameXP.%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%.Release.zip" +REM ------------------------------------------ +del "%OUT_FILE%" +if exist "%OUT_FILE%" ( + echo. + echo BUILD HAS FAILED !!! + echo. + pause + exit +) +REM ------------------------------------------ +call _build.bat "..\..\LameXP.sln" Release +REM ------------------------------------------ +if not exist "%OUT_PATH%\LameXP.exe" ( + echo. + echo BUILD HAS FAILED !!! + echo. + pause + exit +) +REM ------------------------------------------ +rd /S /Q "%TEMP_DIR%" +mkdir "%TEMP_DIR%" +mkdir "%TEMP_DIR%\imageformats" +REM ------------------------------------------ +copy "%OUT_PATH%\*.exe" "%TEMP_DIR%" +copy "%QTDIR%\bin\qtcore4.dll" "%TEMP_DIR%" +copy "%QTDIR%\bin\qtgui4.dll" "%TEMP_DIR%" +copy "%QTDIR%\plugins\imageformats\q???4.dll" "%TEMP_DIR%\imageformats" +REM ------------------------------------------ +for %%f in ("%TEMP_DIR%\*.exe") do ( + "%PATH_MPRESS%" -s "%%f" +) +for %%f in ("%TEMP_DIR%\*.dll") do ( + "%PATH_MPRESS%" -s "%%f" +) +REM ------------------------------------------ +copy "..\Redist\*.*" "%TEMP_DIR%" +copy "..\..\License.txt" "%TEMP_DIR%" +REM ------------------------------------------ +"%PATH_SEVENZ%" a -tzip -r "%OUT_FILE%" "%TEMP_DIR%\*" +rd /S /Q "%TEMP_DIR%" +REM ------------------------------------------ +pause diff --git a/etc/Redist/Microsoft.VC90.CRT.manifest b/etc/Redist/Microsoft.VC90.CRT.manifest new file mode 100644 index 00000000..41623b14 --- /dev/null +++ b/etc/Redist/Microsoft.VC90.CRT.manifest @@ -0,0 +1,13 @@ + + + + + + + diff --git a/etc/Redist/msvcm90.dll b/etc/Redist/msvcm90.dll new file mode 100644 index 00000000..b9cb1231 Binary files /dev/null and b/etc/Redist/msvcm90.dll differ diff --git a/etc/Redist/msvcp90.dll b/etc/Redist/msvcp90.dll new file mode 100644 index 00000000..6b07c75a Binary files /dev/null and b/etc/Redist/msvcp90.dll differ diff --git a/etc/Redist/msvcr90.dll b/etc/Redist/msvcr90.dll new file mode 100644 index 00000000..a68249aa Binary files /dev/null and b/etc/Redist/msvcr90.dll differ diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui new file mode 100644 index 00000000..d82adffd --- /dev/null +++ b/gui/MainWindow.ui @@ -0,0 +1,1096 @@ + + + MainWindow + + + + 0 + 0 + 691 + 539 + + + + LameXP - Audio Encoder Front-end + + + + :/MainIcon.ico:/MainIcon.ico + + + + + + + + + + 75 + true + + + + 0 + + + + + 50 + false + + + + + :/icons/music.png:/icons/music.png + + + Source Files + + + + + + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + QAbstractItemView::ScrollPerPixel + + + false + + + false + + + true + + + false + + + + + + + 4 + + + + + + 90 + 0 + + + + Add File(s) + + + + :/icons/add.png:/icons/add.png + + + + + + + + 90 + 0 + + + + Remove + + + + :/icons/delete.png:/icons/delete.png + + + + + + + + 90 + 0 + + + + Clear + + + + :/icons/bin.png:/icons/bin.png + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + + + + + :/icons/arrow_up.png:/icons/arrow_up.png + + + + + + + + + + + :/icons/arrow_down.png:/icons/arrow_down.png + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 90 + 0 + + + + Edit Meta + + + + :/icons/table_edit.png:/icons/table_edit.png + + + + + + + + + + + + + 50 + false + + + + + :/icons/folder_go.png:/icons/folder_go.png + + + Output Directory + + + + + + + + QFrame::StyledPanel + + + QFrame::Plain + + + ($OUTDIR) + + + + + + + true + + + + + + + + + + 124 + 0 + + + + Goto Home Folder + + + + :/icons/house.png:/icons/house.png + + + + + + + + 124 + 0 + + + + Goto Music Folder + + + + :/icons/music.png:/icons/music.png + + + + + + + + 124 + 0 + + + + Goto Desktop Folder + + + + :/icons/monitor.png:/icons/monitor.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 124 + 0 + + + + Make New Folder + + + + :/icons/folder_add.png:/icons/folder_add.png + + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 3 + + + + + + + + Save output files to the same location where the input file is loacated + + + + + + + + + + + :/icons/compress.png:/icons/compress.png + + + Compression + + + + + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + + + :/images/Construction.gif + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + :/icons/cd_edit.png:/icons/cd_edit.png + + + Meta Data + + + + + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + + + :/images/Construction.gif + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + :/icons/cog.png:/icons/cog.png + + + Advanced Options + + + + + + + + QFrame::StyledPanel + + + QFrame::Sunken + + + + + + :/images/Construction.gif + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + 16777215 + 12 + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + + + + 120 + 0 + + + + Encode Now! + + + + :/icons/play.png:/icons/play.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 120 + 0 + + + + About... + + + + :/icons/information.png:/icons/information.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 120 + 0 + + + + Exit Program + + + + :/icons/door_out.png:/icons/door_out.png + + + + + + + + + + + 0 + 0 + 691 + 21 + + + + + File + + + + + + + + + + + ? + + + + + + + + + View + + + + + + + + + + + + + + + :/icons/information.png:/icons/information.png + + + About... + + + + + + :/icons/door_out.png:/icons/door_out.png + + + Quit + + + + + true + + + Source Files + + + + + true + + + Output Directory + + + + + true + + + Compression + + + + + true + + + Meta Data + + + + + true + + + Advanced Options + + + + + + :/icons/page_white_add.png:/icons/page_white_add.png + + + Open File(s)... + + + + + + :/icons/world.png:/icons/world.png + + + Visit Official Homepage + + + + + + :/icons/transmit.png:/icons/transmit.png + + + Check for Updates + + + + + + :/icons/folder_add.png:/icons/folder_add.png + + + Open Folder... + + + + + + :/icons/bomb.png:/icons/bomb.png + + + Clear All + + + + + + + + + + + + + + + + + + + + + + + + + + + + buttonQuit + clicked() + MainWindow + close() + + + 483 + 422 + + + 276 + 222 + + + + + actionAbout + triggered() + buttonAbout + click() + + + -1 + -1 + + + 304 + 433 + + + + + actionQuit + triggered() + buttonQuit + click() + + + -1 + -1 + + + 602 + 416 + + + + + actionOpen + triggered() + buttonAddFiles + click() + + + -1 + -1 + + + 67 + 460 + + + + + sourceFileView + doubleClicked(QModelIndex) + buttonEditMeta + click() + + + 327 + 253 + + + 587 + 460 + + + + + saveToSourceFolderCheckBox + toggled(bool) + outputFolderView + setDisabled(bool) + + + 327 + 465 + + + 327 + 264 + + + + + saveToSourceFolderCheckBox + toggled(bool) + outputFolderLabel + setDisabled(bool) + + + 327 + 465 + + + 327 + 72 + + + + + saveToSourceFolderCheckBox + toggled(bool) + buttonGotoDesktop + setDisabled(bool) + + + 344 + 465 + + + 215 + 430 + + + + + saveToSourceFolderCheckBox + toggled(bool) + buttonGotoHome + setDisabled(bool) + + + 344 + 465 + + + 84 + 430 + + + + + saveToSourceFolderCheckBox + toggled(bool) + buttonMakeFolder + setDisabled(bool) + + + 344 + 465 + + + 603 + 430 + + + + + saveToSourceFolderCheckBox + toggled(bool) + buttonGotoMusic + setDisabled(bool) + + + 344 + 465 + + + 214 + 430 + + + + + actionClearAll + triggered() + buttonClearFiles + click() + + + -1 + -1 + + + 255 + 460 + + + + + diff --git a/gui/MetaInfo.ui b/gui/MetaInfo.ui new file mode 100644 index 00000000..ed517ec7 --- /dev/null +++ b/gui/MetaInfo.ui @@ -0,0 +1,354 @@ + + + MetaInfo + + + + 0 + 0 + 621 + 420 + + + + Meta Information + + + + 0 + + + + + 0 + + + + + + 0 + 64 + + + + + 16777215 + 64 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + true + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + + + + 56 + 16777215 + + + + + + + :/images/HeaderIcon_MetaInfo.png + + + + + + + + 50 + false + + + + <b>Meta Information</b><br>The following meta information have been extracted from the original file. + + + + + + + + + + + + + 16777215 + 2 + + + + QFrame::HLine + + + QFrame::Sunken + + + + + + + 6 + + + 9 + + + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + false + + + false + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + :/icons/arrow_up.png:/icons/arrow_up.png + + + false + + + + + + + + + + + :/icons/arrow_down.png:/icons/arrow_down.png + + + false + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + + 90 + 0 + + + + Edit + + + + :/icons/table_edit.png:/icons/table_edit.png + + + false + + + + + + + + 90 + 0 + + + + Close + + + + :/icons/cross.png:/icons/cross.png + + + false + + + + + + + + + + + + + closeButton + upButton + downButton + editButton + tableView + + + + + + + + + + + + + + + + + + closeButton + clicked() + MetaInfo + close() + + + 609 + 408 + + + 310 + 240 + + + + + tableView + doubleClicked(QModelIndex) + editButton + click() + + + 310 + 226 + + + 468 + 396 + + + + + diff --git a/gui/SplashScreen.ui b/gui/SplashScreen.ui new file mode 100644 index 00000000..6def4263 --- /dev/null +++ b/gui/SplashScreen.ui @@ -0,0 +1,266 @@ + + + SplashScreen + + + + 0 + 0 + 256 + 82 + + + + + 256 + 82 + + + + + 256 + 82 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + 0 + 0 + 0 + + + + + + + + + 120 + 120 + 120 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + Frame + + + true + + + QFrame::NoFrame + + + 0 + + + + + 50 + 69 + 192 + 6 + + + + + 192 + 6 + + + + + 192 + 6 + + + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + + 0 + + + + + + :/images/Loading.gif + + + Qt::AlignCenter + + + + + + 1 + 1 + 256 + 82 + + + + + 256 + 82 + + + + + 256 + 82 + + + + + + + :/images/Logo.png + + + false + + + labelLogo + labelLoading + + + + + + + + diff --git a/gui/WorkingBanner.ui b/gui/WorkingBanner.ui new file mode 100644 index 00000000..a2f53b3f --- /dev/null +++ b/gui/WorkingBanner.ui @@ -0,0 +1,147 @@ + + + WorkingBanner + + + + 0 + 0 + 480 + 53 + + + + + 480 + 0 + + + + + 480 + 53 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + + 255 + 255 + 255 + + + + + + + + Frame + + + + + + + + + 36 + 0 + + + + + 36 + 16777215 + + + + + + + :/images/Busy.gif + + + + + + + + 75 + true + + + + $(Status) + + + Qt::AlignCenter + + + + + + + + + + + + + + + + + + diff --git a/res/Icons.qrc b/res/Icons.qrc new file mode 100644 index 00000000..8a816e30 --- /dev/null +++ b/res/Icons.qrc @@ -0,0 +1,49 @@ + + + + MainIcon.ico + icons/add.png + icons/application_view_list.png + icons/arrow_down.png + icons/arrow_up.png + icons/bin.png + icons/bomb.png + icons/calendar.png + icons/cancel.png + icons/cd.png + icons/cd_burn.png + icons/cd_edit.png + icons/cd_go.png + icons/clock_play.png + icons/cog.png + icons/comment.png + icons/compress.png + icons/computer.png + icons/controller.png + icons/cross.png + icons/date.png + icons/delete.png + icons/door_out.png + icons/drive_cd.png + icons/feed.png + icons/folder_add.png + icons/folder_go.png + icons/folder_image.png + icons/folder_page.png + icons/house.png + icons/information.png + icons/monitor.png + icons/music.png + icons/package.png + icons/page_white_add.png + icons/page_white_cd.png + icons/play.png + icons/sound.png + icons/star.png + icons/table_edit.png + icons/timeline_marker.png + icons/transmit.png + icons/user.png + icons/world.png + + diff --git a/res/Images.qrc b/res/Images.qrc new file mode 100644 index 00000000..74015c9d --- /dev/null +++ b/res/Images.qrc @@ -0,0 +1,13 @@ + + + + images/Busy.gif + images/HeaderIcon_MetaInfo.png + images/Label.png + images/Loading.gif + images/Logo.png + images/Splash.png + images/Thumb.png + images/Construction.gif + + diff --git a/res/MainIcon.ico b/res/MainIcon.ico new file mode 100644 index 00000000..712f2bde Binary files /dev/null and b/res/MainIcon.ico differ diff --git a/res/Tools.qrc b/res/Tools.qrc new file mode 100644 index 00000000..9d0da843 --- /dev/null +++ b/res/Tools.qrc @@ -0,0 +1,28 @@ + + + + tools/alac.exe + tools/faad.exe + tools/flac.exe + tools/gpgv.exe + tools/lame.exe + tools/MAC.exe + tools/mediainfo_icl11.exe + tools/mediainfo_msvc9.exe + tools/mpcdec.exe + tools/mpg123.exe + tools/oggdec.exe + tools/oggenc2_gen.exe + tools/oggenc2_p4.exe + tools/selfdelete.exe + tools/shorten.exe + tools/speexdec.exe + tools/takc.exe + tools/ttaenc.exe + tools/valdec.exe + tools/volumax.exe + tools/wget.exe + tools/wupdate.exe + tools/wvunpack.exe + + diff --git a/res/icons/accept.png b/res/icons/accept.png new file mode 100644 index 00000000..89c8129a Binary files /dev/null and b/res/icons/accept.png differ diff --git a/res/icons/add.png b/res/icons/add.png new file mode 100644 index 00000000..6332fefe Binary files /dev/null and b/res/icons/add.png differ diff --git a/res/icons/anchor.png b/res/icons/anchor.png new file mode 100644 index 00000000..9b3422c6 Binary files /dev/null and b/res/icons/anchor.png differ diff --git a/res/icons/application.png b/res/icons/application.png new file mode 100644 index 00000000..1dee9e36 Binary files /dev/null and b/res/icons/application.png differ diff --git a/res/icons/application_add.png b/res/icons/application_add.png new file mode 100644 index 00000000..2e945076 Binary files /dev/null and b/res/icons/application_add.png differ diff --git a/res/icons/application_cascade.png b/res/icons/application_cascade.png new file mode 100644 index 00000000..da5c622e Binary files /dev/null and b/res/icons/application_cascade.png differ diff --git a/res/icons/application_delete.png b/res/icons/application_delete.png new file mode 100644 index 00000000..0a335acf Binary files /dev/null and b/res/icons/application_delete.png differ diff --git a/res/icons/application_double.png b/res/icons/application_double.png new file mode 100644 index 00000000..647592f2 Binary files /dev/null and b/res/icons/application_double.png differ diff --git a/res/icons/application_edit.png b/res/icons/application_edit.png new file mode 100644 index 00000000..fb2efb87 Binary files /dev/null and b/res/icons/application_edit.png differ diff --git a/res/icons/application_error.png b/res/icons/application_error.png new file mode 100644 index 00000000..b35fa571 Binary files /dev/null and b/res/icons/application_error.png differ diff --git a/res/icons/application_form.png b/res/icons/application_form.png new file mode 100644 index 00000000..807b862c Binary files /dev/null and b/res/icons/application_form.png differ diff --git a/res/icons/application_form_add.png b/res/icons/application_form_add.png new file mode 100644 index 00000000..28c2175e Binary files /dev/null and b/res/icons/application_form_add.png differ diff --git a/res/icons/application_form_delete.png b/res/icons/application_form_delete.png new file mode 100644 index 00000000..cd305ec8 Binary files /dev/null and b/res/icons/application_form_delete.png differ diff --git a/res/icons/application_form_edit.png b/res/icons/application_form_edit.png new file mode 100644 index 00000000..af486c94 Binary files /dev/null and b/res/icons/application_form_edit.png differ diff --git a/res/icons/application_form_magnify.png b/res/icons/application_form_magnify.png new file mode 100644 index 00000000..7b7fbd17 Binary files /dev/null and b/res/icons/application_form_magnify.png differ diff --git a/res/icons/application_get.png b/res/icons/application_get.png new file mode 100644 index 00000000..28e41ea2 Binary files /dev/null and b/res/icons/application_get.png differ diff --git a/res/icons/application_go.png b/res/icons/application_go.png new file mode 100644 index 00000000..5cc2b0dd Binary files /dev/null and b/res/icons/application_go.png differ diff --git a/res/icons/application_home.png b/res/icons/application_home.png new file mode 100644 index 00000000..b60d0c85 Binary files /dev/null and b/res/icons/application_home.png differ diff --git a/res/icons/application_key.png b/res/icons/application_key.png new file mode 100644 index 00000000..998d65c6 Binary files /dev/null and b/res/icons/application_key.png differ diff --git a/res/icons/application_lightning.png b/res/icons/application_lightning.png new file mode 100644 index 00000000..7e91545c Binary files /dev/null and b/res/icons/application_lightning.png differ diff --git a/res/icons/application_link.png b/res/icons/application_link.png new file mode 100644 index 00000000..f8fbb3ed Binary files /dev/null and b/res/icons/application_link.png differ diff --git a/res/icons/application_osx.png b/res/icons/application_osx.png new file mode 100644 index 00000000..9f022ece Binary files /dev/null and b/res/icons/application_osx.png differ diff --git a/res/icons/application_osx_terminal.png b/res/icons/application_osx_terminal.png new file mode 100644 index 00000000..b3d8ce01 Binary files /dev/null and b/res/icons/application_osx_terminal.png differ diff --git a/res/icons/application_put.png b/res/icons/application_put.png new file mode 100644 index 00000000..c30cf598 Binary files /dev/null and b/res/icons/application_put.png differ diff --git a/res/icons/application_side_boxes.png b/res/icons/application_side_boxes.png new file mode 100644 index 00000000..efbf3c4f Binary files /dev/null and b/res/icons/application_side_boxes.png differ diff --git a/res/icons/application_side_contract.png b/res/icons/application_side_contract.png new file mode 100644 index 00000000..3585f94d Binary files /dev/null and b/res/icons/application_side_contract.png differ diff --git a/res/icons/application_side_expand.png b/res/icons/application_side_expand.png new file mode 100644 index 00000000..030cf7c3 Binary files /dev/null and b/res/icons/application_side_expand.png differ diff --git a/res/icons/application_side_list.png b/res/icons/application_side_list.png new file mode 100644 index 00000000..248eaf1a Binary files /dev/null and b/res/icons/application_side_list.png differ diff --git a/res/icons/application_side_tree.png b/res/icons/application_side_tree.png new file mode 100644 index 00000000..f04a52b3 Binary files /dev/null and b/res/icons/application_side_tree.png differ diff --git a/res/icons/application_split.png b/res/icons/application_split.png new file mode 100644 index 00000000..a91c78a5 Binary files /dev/null and b/res/icons/application_split.png differ diff --git a/res/icons/application_tile_horizontal.png b/res/icons/application_tile_horizontal.png new file mode 100644 index 00000000..8a1191c3 Binary files /dev/null and b/res/icons/application_tile_horizontal.png differ diff --git a/res/icons/application_tile_vertical.png b/res/icons/application_tile_vertical.png new file mode 100644 index 00000000..1d40383d Binary files /dev/null and b/res/icons/application_tile_vertical.png differ diff --git a/res/icons/application_view_columns.png b/res/icons/application_view_columns.png new file mode 100644 index 00000000..dc2e9d5f Binary files /dev/null and b/res/icons/application_view_columns.png differ diff --git a/res/icons/application_view_detail.png b/res/icons/application_view_detail.png new file mode 100644 index 00000000..aba044bb Binary files /dev/null and b/res/icons/application_view_detail.png differ diff --git a/res/icons/application_view_gallery.png b/res/icons/application_view_gallery.png new file mode 100644 index 00000000..851950db Binary files /dev/null and b/res/icons/application_view_gallery.png differ diff --git a/res/icons/application_view_icons.png b/res/icons/application_view_icons.png new file mode 100644 index 00000000..6a93cdaa Binary files /dev/null and b/res/icons/application_view_icons.png differ diff --git a/res/icons/application_view_list.png b/res/icons/application_view_list.png new file mode 100644 index 00000000..acc30b85 Binary files /dev/null and b/res/icons/application_view_list.png differ diff --git a/res/icons/application_view_tile.png b/res/icons/application_view_tile.png new file mode 100644 index 00000000..3bc0bd32 Binary files /dev/null and b/res/icons/application_view_tile.png differ diff --git a/res/icons/application_xp.png b/res/icons/application_xp.png new file mode 100644 index 00000000..d22860a3 Binary files /dev/null and b/res/icons/application_xp.png differ diff --git a/res/icons/application_xp_terminal.png b/res/icons/application_xp_terminal.png new file mode 100644 index 00000000..c28dd638 Binary files /dev/null and b/res/icons/application_xp_terminal.png differ diff --git a/res/icons/arrow_branch.png b/res/icons/arrow_branch.png new file mode 100644 index 00000000..7542db1d Binary files /dev/null and b/res/icons/arrow_branch.png differ diff --git a/res/icons/arrow_divide.png b/res/icons/arrow_divide.png new file mode 100644 index 00000000..61a7b1d9 Binary files /dev/null and b/res/icons/arrow_divide.png differ diff --git a/res/icons/arrow_down.png b/res/icons/arrow_down.png new file mode 100644 index 00000000..2c4e2793 Binary files /dev/null and b/res/icons/arrow_down.png differ diff --git a/res/icons/arrow_in.png b/res/icons/arrow_in.png new file mode 100644 index 00000000..745c6513 Binary files /dev/null and b/res/icons/arrow_in.png differ diff --git a/res/icons/arrow_inout.png b/res/icons/arrow_inout.png new file mode 100644 index 00000000..1b763672 Binary files /dev/null and b/res/icons/arrow_inout.png differ diff --git a/res/icons/arrow_join.png b/res/icons/arrow_join.png new file mode 100644 index 00000000..a128413d Binary files /dev/null and b/res/icons/arrow_join.png differ diff --git a/res/icons/arrow_left.png b/res/icons/arrow_left.png new file mode 100644 index 00000000..5dc69678 Binary files /dev/null and b/res/icons/arrow_left.png differ diff --git a/res/icons/arrow_merge.png b/res/icons/arrow_merge.png new file mode 100644 index 00000000..7502dbb3 Binary files /dev/null and b/res/icons/arrow_merge.png differ diff --git a/res/icons/arrow_out.png b/res/icons/arrow_out.png new file mode 100644 index 00000000..2e9bc42b Binary files /dev/null and b/res/icons/arrow_out.png differ diff --git a/res/icons/arrow_redo.png b/res/icons/arrow_redo.png new file mode 100644 index 00000000..fdc394c7 Binary files /dev/null and b/res/icons/arrow_redo.png differ diff --git a/res/icons/arrow_refresh.png b/res/icons/arrow_refresh.png new file mode 100644 index 00000000..0de26566 Binary files /dev/null and b/res/icons/arrow_refresh.png differ diff --git a/res/icons/arrow_refresh_small.png b/res/icons/arrow_refresh_small.png new file mode 100644 index 00000000..d3087dfc Binary files /dev/null and b/res/icons/arrow_refresh_small.png differ diff --git a/res/icons/arrow_right.png b/res/icons/arrow_right.png new file mode 100644 index 00000000..b1a18192 Binary files /dev/null and b/res/icons/arrow_right.png differ diff --git a/res/icons/arrow_rotate_anticlockwise.png b/res/icons/arrow_rotate_anticlockwise.png new file mode 100644 index 00000000..46c75aa8 Binary files /dev/null and b/res/icons/arrow_rotate_anticlockwise.png differ diff --git a/res/icons/arrow_rotate_clockwise.png b/res/icons/arrow_rotate_clockwise.png new file mode 100644 index 00000000..aa65210e Binary files /dev/null and b/res/icons/arrow_rotate_clockwise.png differ diff --git a/res/icons/arrow_switch.png b/res/icons/arrow_switch.png new file mode 100644 index 00000000..258c16c6 Binary files /dev/null and b/res/icons/arrow_switch.png differ diff --git a/res/icons/arrow_turn_left.png b/res/icons/arrow_turn_left.png new file mode 100644 index 00000000..a3d6c9e3 Binary files /dev/null and b/res/icons/arrow_turn_left.png differ diff --git a/res/icons/arrow_turn_right.png b/res/icons/arrow_turn_right.png new file mode 100644 index 00000000..629f20d6 Binary files /dev/null and b/res/icons/arrow_turn_right.png differ diff --git a/res/icons/arrow_undo.png b/res/icons/arrow_undo.png new file mode 100644 index 00000000..6972c5e5 Binary files /dev/null and b/res/icons/arrow_undo.png differ diff --git a/res/icons/arrow_up.png b/res/icons/arrow_up.png new file mode 100644 index 00000000..1ebb1932 Binary files /dev/null and b/res/icons/arrow_up.png differ diff --git a/res/icons/asterisk_orange.png b/res/icons/asterisk_orange.png new file mode 100644 index 00000000..1ebebde5 Binary files /dev/null and b/res/icons/asterisk_orange.png differ diff --git a/res/icons/asterisk_yellow.png b/res/icons/asterisk_yellow.png new file mode 100644 index 00000000..bab7cc9b Binary files /dev/null and b/res/icons/asterisk_yellow.png differ diff --git a/res/icons/attach.png b/res/icons/attach.png new file mode 100644 index 00000000..ea897cc9 Binary files /dev/null and b/res/icons/attach.png differ diff --git a/res/icons/award_star_add.png b/res/icons/award_star_add.png new file mode 100644 index 00000000..9c4be9be Binary files /dev/null and b/res/icons/award_star_add.png differ diff --git a/res/icons/award_star_bronze_1.png b/res/icons/award_star_bronze_1.png new file mode 100644 index 00000000..658c7117 Binary files /dev/null and b/res/icons/award_star_bronze_1.png differ diff --git a/res/icons/award_star_bronze_2.png b/res/icons/award_star_bronze_2.png new file mode 100644 index 00000000..e47babd7 Binary files /dev/null and b/res/icons/award_star_bronze_2.png differ diff --git a/res/icons/award_star_bronze_3.png b/res/icons/award_star_bronze_3.png new file mode 100644 index 00000000..396e4b3a Binary files /dev/null and b/res/icons/award_star_bronze_3.png differ diff --git a/res/icons/award_star_delete.png b/res/icons/award_star_delete.png new file mode 100644 index 00000000..4721b152 Binary files /dev/null and b/res/icons/award_star_delete.png differ diff --git a/res/icons/award_star_gold_1.png b/res/icons/award_star_gold_1.png new file mode 100644 index 00000000..97a22b72 Binary files /dev/null and b/res/icons/award_star_gold_1.png differ diff --git a/res/icons/award_star_gold_2.png b/res/icons/award_star_gold_2.png new file mode 100644 index 00000000..0eaa5717 Binary files /dev/null and b/res/icons/award_star_gold_2.png differ diff --git a/res/icons/award_star_gold_3.png b/res/icons/award_star_gold_3.png new file mode 100644 index 00000000..124c9914 Binary files /dev/null and b/res/icons/award_star_gold_3.png differ diff --git a/res/icons/award_star_silver_1.png b/res/icons/award_star_silver_1.png new file mode 100644 index 00000000..028a5462 Binary files /dev/null and b/res/icons/award_star_silver_1.png differ diff --git a/res/icons/award_star_silver_2.png b/res/icons/award_star_silver_2.png new file mode 100644 index 00000000..e487c3a1 Binary files /dev/null and b/res/icons/award_star_silver_2.png differ diff --git a/res/icons/award_star_silver_3.png b/res/icons/award_star_silver_3.png new file mode 100644 index 00000000..1d72d472 Binary files /dev/null and b/res/icons/award_star_silver_3.png differ diff --git a/res/icons/basket.png b/res/icons/basket.png new file mode 100644 index 00000000..b0686d78 Binary files /dev/null and b/res/icons/basket.png differ diff --git a/res/icons/basket_add.png b/res/icons/basket_add.png new file mode 100644 index 00000000..35543682 Binary files /dev/null and b/res/icons/basket_add.png differ diff --git a/res/icons/basket_delete.png b/res/icons/basket_delete.png new file mode 100644 index 00000000..1349974f Binary files /dev/null and b/res/icons/basket_delete.png differ diff --git a/res/icons/basket_edit.png b/res/icons/basket_edit.png new file mode 100644 index 00000000..8138bbdf Binary files /dev/null and b/res/icons/basket_edit.png differ diff --git a/res/icons/basket_error.png b/res/icons/basket_error.png new file mode 100644 index 00000000..3978b292 Binary files /dev/null and b/res/icons/basket_error.png differ diff --git a/res/icons/basket_go.png b/res/icons/basket_go.png new file mode 100644 index 00000000..ed8b9a57 Binary files /dev/null and b/res/icons/basket_go.png differ diff --git a/res/icons/basket_put.png b/res/icons/basket_put.png new file mode 100644 index 00000000..be62faaa Binary files /dev/null and b/res/icons/basket_put.png differ diff --git a/res/icons/basket_remove.png b/res/icons/basket_remove.png new file mode 100644 index 00000000..04dd7fd3 Binary files /dev/null and b/res/icons/basket_remove.png differ diff --git a/res/icons/bell.png b/res/icons/bell.png new file mode 100644 index 00000000..6e0015df Binary files /dev/null and b/res/icons/bell.png differ diff --git a/res/icons/bell_add.png b/res/icons/bell_add.png new file mode 100644 index 00000000..7db01d62 Binary files /dev/null and b/res/icons/bell_add.png differ diff --git a/res/icons/bell_delete.png b/res/icons/bell_delete.png new file mode 100644 index 00000000..23907bbb Binary files /dev/null and b/res/icons/bell_delete.png differ diff --git a/res/icons/bell_error.png b/res/icons/bell_error.png new file mode 100644 index 00000000..a0ddc002 Binary files /dev/null and b/res/icons/bell_error.png differ diff --git a/res/icons/bell_go.png b/res/icons/bell_go.png new file mode 100644 index 00000000..b89bb343 Binary files /dev/null and b/res/icons/bell_go.png differ diff --git a/res/icons/bell_link.png b/res/icons/bell_link.png new file mode 100644 index 00000000..b8c64af1 Binary files /dev/null and b/res/icons/bell_link.png differ diff --git a/res/icons/bin.png b/res/icons/bin.png new file mode 100644 index 00000000..ebad933c Binary files /dev/null and b/res/icons/bin.png differ diff --git a/res/icons/bin_closed.png b/res/icons/bin_closed.png new file mode 100644 index 00000000..afe22ba9 Binary files /dev/null and b/res/icons/bin_closed.png differ diff --git a/res/icons/bin_empty.png b/res/icons/bin_empty.png new file mode 100644 index 00000000..375b8bf6 Binary files /dev/null and b/res/icons/bin_empty.png differ diff --git a/res/icons/bomb.png b/res/icons/bomb.png new file mode 100644 index 00000000..1be37974 Binary files /dev/null and b/res/icons/bomb.png differ diff --git a/res/icons/book.png b/res/icons/book.png new file mode 100644 index 00000000..b0f4dd79 Binary files /dev/null and b/res/icons/book.png differ diff --git a/res/icons/book_add.png b/res/icons/book_add.png new file mode 100644 index 00000000..e2f08472 Binary files /dev/null and b/res/icons/book_add.png differ diff --git a/res/icons/book_addresses.png b/res/icons/book_addresses.png new file mode 100644 index 00000000..b73419ba Binary files /dev/null and b/res/icons/book_addresses.png differ diff --git a/res/icons/book_delete.png b/res/icons/book_delete.png new file mode 100644 index 00000000..d9a6340d Binary files /dev/null and b/res/icons/book_delete.png differ diff --git a/res/icons/book_edit.png b/res/icons/book_edit.png new file mode 100644 index 00000000..6e756cc8 Binary files /dev/null and b/res/icons/book_edit.png differ diff --git a/res/icons/book_error.png b/res/icons/book_error.png new file mode 100644 index 00000000..f3fbed0d Binary files /dev/null and b/res/icons/book_error.png differ diff --git a/res/icons/book_go.png b/res/icons/book_go.png new file mode 100644 index 00000000..cd4e1964 Binary files /dev/null and b/res/icons/book_go.png differ diff --git a/res/icons/book_key.png b/res/icons/book_key.png new file mode 100644 index 00000000..d8e23ec9 Binary files /dev/null and b/res/icons/book_key.png differ diff --git a/res/icons/book_link.png b/res/icons/book_link.png new file mode 100644 index 00000000..dd0820e8 Binary files /dev/null and b/res/icons/book_link.png differ diff --git a/res/icons/book_next.png b/res/icons/book_next.png new file mode 100644 index 00000000..ff2ea1ab Binary files /dev/null and b/res/icons/book_next.png differ diff --git a/res/icons/book_open.png b/res/icons/book_open.png new file mode 100644 index 00000000..7d863f94 Binary files /dev/null and b/res/icons/book_open.png differ diff --git a/res/icons/book_previous.png b/res/icons/book_previous.png new file mode 100644 index 00000000..2e53c698 Binary files /dev/null and b/res/icons/book_previous.png differ diff --git a/res/icons/box.png b/res/icons/box.png new file mode 100644 index 00000000..8443c23e Binary files /dev/null and b/res/icons/box.png differ diff --git a/res/icons/brick.png b/res/icons/brick.png new file mode 100644 index 00000000..7851cf34 Binary files /dev/null and b/res/icons/brick.png differ diff --git a/res/icons/brick_add.png b/res/icons/brick_add.png new file mode 100644 index 00000000..fac186bf Binary files /dev/null and b/res/icons/brick_add.png differ diff --git a/res/icons/brick_delete.png b/res/icons/brick_delete.png new file mode 100644 index 00000000..3a8c3734 Binary files /dev/null and b/res/icons/brick_delete.png differ diff --git a/res/icons/brick_edit.png b/res/icons/brick_edit.png new file mode 100644 index 00000000..eb06df3b Binary files /dev/null and b/res/icons/brick_edit.png differ diff --git a/res/icons/brick_error.png b/res/icons/brick_error.png new file mode 100644 index 00000000..18ab01eb Binary files /dev/null and b/res/icons/brick_error.png differ diff --git a/res/icons/brick_go.png b/res/icons/brick_go.png new file mode 100644 index 00000000..fe0d3356 Binary files /dev/null and b/res/icons/brick_go.png differ diff --git a/res/icons/brick_link.png b/res/icons/brick_link.png new file mode 100644 index 00000000..9ebf013a Binary files /dev/null and b/res/icons/brick_link.png differ diff --git a/res/icons/bricks.png b/res/icons/bricks.png new file mode 100644 index 00000000..0905f933 Binary files /dev/null and b/res/icons/bricks.png differ diff --git a/res/icons/briefcase.png b/res/icons/briefcase.png new file mode 100644 index 00000000..05c56491 Binary files /dev/null and b/res/icons/briefcase.png differ diff --git a/res/icons/bug.png b/res/icons/bug.png new file mode 100644 index 00000000..2d5fb90e Binary files /dev/null and b/res/icons/bug.png differ diff --git a/res/icons/bug_add.png b/res/icons/bug_add.png new file mode 100644 index 00000000..ced78174 Binary files /dev/null and b/res/icons/bug_add.png differ diff --git a/res/icons/bug_delete.png b/res/icons/bug_delete.png new file mode 100644 index 00000000..e81d7571 Binary files /dev/null and b/res/icons/bug_delete.png differ diff --git a/res/icons/bug_edit.png b/res/icons/bug_edit.png new file mode 100644 index 00000000..e5c7dc05 Binary files /dev/null and b/res/icons/bug_edit.png differ diff --git a/res/icons/bug_error.png b/res/icons/bug_error.png new file mode 100644 index 00000000..c4e8c280 Binary files /dev/null and b/res/icons/bug_error.png differ diff --git a/res/icons/bug_go.png b/res/icons/bug_go.png new file mode 100644 index 00000000..4e4ae99d Binary files /dev/null and b/res/icons/bug_go.png differ diff --git a/res/icons/bug_link.png b/res/icons/bug_link.png new file mode 100644 index 00000000..30e25aba Binary files /dev/null and b/res/icons/bug_link.png differ diff --git a/res/icons/building.png b/res/icons/building.png new file mode 100644 index 00000000..11a017cf Binary files /dev/null and b/res/icons/building.png differ diff --git a/res/icons/building_add.png b/res/icons/building_add.png new file mode 100644 index 00000000..d88e2b9a Binary files /dev/null and b/res/icons/building_add.png differ diff --git a/res/icons/building_delete.png b/res/icons/building_delete.png new file mode 100644 index 00000000..db6455d2 Binary files /dev/null and b/res/icons/building_delete.png differ diff --git a/res/icons/building_edit.png b/res/icons/building_edit.png new file mode 100644 index 00000000..646db36b Binary files /dev/null and b/res/icons/building_edit.png differ diff --git a/res/icons/building_error.png b/res/icons/building_error.png new file mode 100644 index 00000000..a342eefc Binary files /dev/null and b/res/icons/building_error.png differ diff --git a/res/icons/building_go.png b/res/icons/building_go.png new file mode 100644 index 00000000..cdcbcb38 Binary files /dev/null and b/res/icons/building_go.png differ diff --git a/res/icons/building_key.png b/res/icons/building_key.png new file mode 100644 index 00000000..8b79e30e Binary files /dev/null and b/res/icons/building_key.png differ diff --git a/res/icons/building_link.png b/res/icons/building_link.png new file mode 100644 index 00000000..a340629a Binary files /dev/null and b/res/icons/building_link.png differ diff --git a/res/icons/bullet_add.png b/res/icons/bullet_add.png new file mode 100644 index 00000000..41ff8335 Binary files /dev/null and b/res/icons/bullet_add.png differ diff --git a/res/icons/bullet_arrow_bottom.png b/res/icons/bullet_arrow_bottom.png new file mode 100644 index 00000000..1a28d825 Binary files /dev/null and b/res/icons/bullet_arrow_bottom.png differ diff --git a/res/icons/bullet_arrow_down.png b/res/icons/bullet_arrow_down.png new file mode 100644 index 00000000..9b23c06d Binary files /dev/null and b/res/icons/bullet_arrow_down.png differ diff --git a/res/icons/bullet_arrow_top.png b/res/icons/bullet_arrow_top.png new file mode 100644 index 00000000..0ce86d2b Binary files /dev/null and b/res/icons/bullet_arrow_top.png differ diff --git a/res/icons/bullet_arrow_up.png b/res/icons/bullet_arrow_up.png new file mode 100644 index 00000000..24df0f42 Binary files /dev/null and b/res/icons/bullet_arrow_up.png differ diff --git a/res/icons/bullet_black.png b/res/icons/bullet_black.png new file mode 100644 index 00000000..57619706 Binary files /dev/null and b/res/icons/bullet_black.png differ diff --git a/res/icons/bullet_blue.png b/res/icons/bullet_blue.png new file mode 100644 index 00000000..a7651ec8 Binary files /dev/null and b/res/icons/bullet_blue.png differ diff --git a/res/icons/bullet_delete.png b/res/icons/bullet_delete.png new file mode 100644 index 00000000..bd6271b2 Binary files /dev/null and b/res/icons/bullet_delete.png differ diff --git a/res/icons/bullet_disk.png b/res/icons/bullet_disk.png new file mode 100644 index 00000000..209c6a78 Binary files /dev/null and b/res/icons/bullet_disk.png differ diff --git a/res/icons/bullet_error.png b/res/icons/bullet_error.png new file mode 100644 index 00000000..bca2b491 Binary files /dev/null and b/res/icons/bullet_error.png differ diff --git a/res/icons/bullet_feed.png b/res/icons/bullet_feed.png new file mode 100644 index 00000000..1a0e0f18 Binary files /dev/null and b/res/icons/bullet_feed.png differ diff --git a/res/icons/bullet_go.png b/res/icons/bullet_go.png new file mode 100644 index 00000000..bc4faa70 Binary files /dev/null and b/res/icons/bullet_go.png differ diff --git a/res/icons/bullet_green.png b/res/icons/bullet_green.png new file mode 100644 index 00000000..058ad261 Binary files /dev/null and b/res/icons/bullet_green.png differ diff --git a/res/icons/bullet_key.png b/res/icons/bullet_key.png new file mode 100644 index 00000000..3d37f2ea Binary files /dev/null and b/res/icons/bullet_key.png differ diff --git a/res/icons/bullet_orange.png b/res/icons/bullet_orange.png new file mode 100644 index 00000000..fa63024e Binary files /dev/null and b/res/icons/bullet_orange.png differ diff --git a/res/icons/bullet_picture.png b/res/icons/bullet_picture.png new file mode 100644 index 00000000..386cb302 Binary files /dev/null and b/res/icons/bullet_picture.png differ diff --git a/res/icons/bullet_pink.png b/res/icons/bullet_pink.png new file mode 100644 index 00000000..0c9f73e3 Binary files /dev/null and b/res/icons/bullet_pink.png differ diff --git a/res/icons/bullet_purple.png b/res/icons/bullet_purple.png new file mode 100644 index 00000000..52ba5036 Binary files /dev/null and b/res/icons/bullet_purple.png differ diff --git a/res/icons/bullet_red.png b/res/icons/bullet_red.png new file mode 100644 index 00000000..0cd80311 Binary files /dev/null and b/res/icons/bullet_red.png differ diff --git a/res/icons/bullet_star.png b/res/icons/bullet_star.png new file mode 100644 index 00000000..fab774a3 Binary files /dev/null and b/res/icons/bullet_star.png differ diff --git a/res/icons/bullet_toggle_minus.png b/res/icons/bullet_toggle_minus.png new file mode 100644 index 00000000..b47ce55f Binary files /dev/null and b/res/icons/bullet_toggle_minus.png differ diff --git a/res/icons/bullet_toggle_plus.png b/res/icons/bullet_toggle_plus.png new file mode 100644 index 00000000..9ab4a896 Binary files /dev/null and b/res/icons/bullet_toggle_plus.png differ diff --git a/res/icons/bullet_white.png b/res/icons/bullet_white.png new file mode 100644 index 00000000..a9af8d44 Binary files /dev/null and b/res/icons/bullet_white.png differ diff --git a/res/icons/bullet_wrench.png b/res/icons/bullet_wrench.png new file mode 100644 index 00000000..67817e6e Binary files /dev/null and b/res/icons/bullet_wrench.png differ diff --git a/res/icons/bullet_yellow.png b/res/icons/bullet_yellow.png new file mode 100644 index 00000000..6469cea7 Binary files /dev/null and b/res/icons/bullet_yellow.png differ diff --git a/res/icons/cake.png b/res/icons/cake.png new file mode 100644 index 00000000..4ef151ae Binary files /dev/null and b/res/icons/cake.png differ diff --git a/res/icons/calculator.png b/res/icons/calculator.png new file mode 100644 index 00000000..701a60a5 Binary files /dev/null and b/res/icons/calculator.png differ diff --git a/res/icons/calculator_add.png b/res/icons/calculator_add.png new file mode 100644 index 00000000..fd377bde Binary files /dev/null and b/res/icons/calculator_add.png differ diff --git a/res/icons/calculator_delete.png b/res/icons/calculator_delete.png new file mode 100644 index 00000000..ac96170e Binary files /dev/null and b/res/icons/calculator_delete.png differ diff --git a/res/icons/calculator_edit.png b/res/icons/calculator_edit.png new file mode 100644 index 00000000..63b06b98 Binary files /dev/null and b/res/icons/calculator_edit.png differ diff --git a/res/icons/calculator_error.png b/res/icons/calculator_error.png new file mode 100644 index 00000000..0bc4288a Binary files /dev/null and b/res/icons/calculator_error.png differ diff --git a/res/icons/calculator_link.png b/res/icons/calculator_link.png new file mode 100644 index 00000000..a2a8fe69 Binary files /dev/null and b/res/icons/calculator_link.png differ diff --git a/res/icons/calendar.png b/res/icons/calendar.png new file mode 100644 index 00000000..65891385 Binary files /dev/null and b/res/icons/calendar.png differ diff --git a/res/icons/calendar_add.png b/res/icons/calendar_add.png new file mode 100644 index 00000000..17679db6 Binary files /dev/null and b/res/icons/calendar_add.png differ diff --git a/res/icons/calendar_delete.png b/res/icons/calendar_delete.png new file mode 100644 index 00000000..69a3b10a Binary files /dev/null and b/res/icons/calendar_delete.png differ diff --git a/res/icons/calendar_edit.png b/res/icons/calendar_edit.png new file mode 100644 index 00000000..d1d2d6e6 Binary files /dev/null and b/res/icons/calendar_edit.png differ diff --git a/res/icons/calendar_link.png b/res/icons/calendar_link.png new file mode 100644 index 00000000..6b106b94 Binary files /dev/null and b/res/icons/calendar_link.png differ diff --git a/res/icons/calendar_view_day.png b/res/icons/calendar_view_day.png new file mode 100644 index 00000000..9740f76e Binary files /dev/null and b/res/icons/calendar_view_day.png differ diff --git a/res/icons/calendar_view_month.png b/res/icons/calendar_view_month.png new file mode 100644 index 00000000..6cff76c1 Binary files /dev/null and b/res/icons/calendar_view_month.png differ diff --git a/res/icons/calendar_view_week.png b/res/icons/calendar_view_week.png new file mode 100644 index 00000000..8fe695f5 Binary files /dev/null and b/res/icons/calendar_view_week.png differ diff --git a/res/icons/camera.png b/res/icons/camera.png new file mode 100644 index 00000000..8536d1a7 Binary files /dev/null and b/res/icons/camera.png differ diff --git a/res/icons/camera_add.png b/res/icons/camera_add.png new file mode 100644 index 00000000..08b5da98 Binary files /dev/null and b/res/icons/camera_add.png differ diff --git a/res/icons/camera_delete.png b/res/icons/camera_delete.png new file mode 100644 index 00000000..3846d74c Binary files /dev/null and b/res/icons/camera_delete.png differ diff --git a/res/icons/camera_edit.png b/res/icons/camera_edit.png new file mode 100644 index 00000000..b5015b10 Binary files /dev/null and b/res/icons/camera_edit.png differ diff --git a/res/icons/camera_error.png b/res/icons/camera_error.png new file mode 100644 index 00000000..3c1bc95c Binary files /dev/null and b/res/icons/camera_error.png differ diff --git a/res/icons/camera_go.png b/res/icons/camera_go.png new file mode 100644 index 00000000..94ce2b25 Binary files /dev/null and b/res/icons/camera_go.png differ diff --git a/res/icons/camera_link.png b/res/icons/camera_link.png new file mode 100644 index 00000000..d2ac9f93 Binary files /dev/null and b/res/icons/camera_link.png differ diff --git a/res/icons/camera_small.png b/res/icons/camera_small.png new file mode 100644 index 00000000..454b0b01 Binary files /dev/null and b/res/icons/camera_small.png differ diff --git a/res/icons/cancel.png b/res/icons/cancel.png new file mode 100644 index 00000000..c149c2bc Binary files /dev/null and b/res/icons/cancel.png differ diff --git a/res/icons/car.png b/res/icons/car.png new file mode 100644 index 00000000..4f3a770f Binary files /dev/null and b/res/icons/car.png differ diff --git a/res/icons/car_add.png b/res/icons/car_add.png new file mode 100644 index 00000000..1215a51a Binary files /dev/null and b/res/icons/car_add.png differ diff --git a/res/icons/car_delete.png b/res/icons/car_delete.png new file mode 100644 index 00000000..2803b567 Binary files /dev/null and b/res/icons/car_delete.png differ diff --git a/res/icons/cart.png b/res/icons/cart.png new file mode 100644 index 00000000..1baf7b9f Binary files /dev/null and b/res/icons/cart.png differ diff --git a/res/icons/cart_add.png b/res/icons/cart_add.png new file mode 100644 index 00000000..45c29000 Binary files /dev/null and b/res/icons/cart_add.png differ diff --git a/res/icons/cart_delete.png b/res/icons/cart_delete.png new file mode 100644 index 00000000..ac5bce5c Binary files /dev/null and b/res/icons/cart_delete.png differ diff --git a/res/icons/cart_edit.png b/res/icons/cart_edit.png new file mode 100644 index 00000000..b94ff88e Binary files /dev/null and b/res/icons/cart_edit.png differ diff --git a/res/icons/cart_error.png b/res/icons/cart_error.png new file mode 100644 index 00000000..144c8353 Binary files /dev/null and b/res/icons/cart_error.png differ diff --git a/res/icons/cart_go.png b/res/icons/cart_go.png new file mode 100644 index 00000000..20ee0584 Binary files /dev/null and b/res/icons/cart_go.png differ diff --git a/res/icons/cart_put.png b/res/icons/cart_put.png new file mode 100644 index 00000000..3aec353e Binary files /dev/null and b/res/icons/cart_put.png differ diff --git a/res/icons/cart_remove.png b/res/icons/cart_remove.png new file mode 100644 index 00000000..360217b5 Binary files /dev/null and b/res/icons/cart_remove.png differ diff --git a/res/icons/cd.png b/res/icons/cd.png new file mode 100644 index 00000000..ef432235 Binary files /dev/null and b/res/icons/cd.png differ diff --git a/res/icons/cd_add.png b/res/icons/cd_add.png new file mode 100644 index 00000000..b0254eff Binary files /dev/null and b/res/icons/cd_add.png differ diff --git a/res/icons/cd_burn.png b/res/icons/cd_burn.png new file mode 100644 index 00000000..157cb0ba Binary files /dev/null and b/res/icons/cd_burn.png differ diff --git a/res/icons/cd_delete.png b/res/icons/cd_delete.png new file mode 100644 index 00000000..7d7b3d52 Binary files /dev/null and b/res/icons/cd_delete.png differ diff --git a/res/icons/cd_edit.png b/res/icons/cd_edit.png new file mode 100644 index 00000000..b0dc194b Binary files /dev/null and b/res/icons/cd_edit.png differ diff --git a/res/icons/cd_eject.png b/res/icons/cd_eject.png new file mode 100644 index 00000000..762932f6 Binary files /dev/null and b/res/icons/cd_eject.png differ diff --git a/res/icons/cd_go.png b/res/icons/cd_go.png new file mode 100644 index 00000000..13e04991 Binary files /dev/null and b/res/icons/cd_go.png differ diff --git a/res/icons/chart_bar.png b/res/icons/chart_bar.png new file mode 100644 index 00000000..9051fbc6 Binary files /dev/null and b/res/icons/chart_bar.png differ diff --git a/res/icons/chart_bar_add.png b/res/icons/chart_bar_add.png new file mode 100644 index 00000000..d283e846 Binary files /dev/null and b/res/icons/chart_bar_add.png differ diff --git a/res/icons/chart_bar_delete.png b/res/icons/chart_bar_delete.png new file mode 100644 index 00000000..259f6868 Binary files /dev/null and b/res/icons/chart_bar_delete.png differ diff --git a/res/icons/chart_bar_edit.png b/res/icons/chart_bar_edit.png new file mode 100644 index 00000000..df64d97e Binary files /dev/null and b/res/icons/chart_bar_edit.png differ diff --git a/res/icons/chart_bar_error.png b/res/icons/chart_bar_error.png new file mode 100644 index 00000000..bdacea5e Binary files /dev/null and b/res/icons/chart_bar_error.png differ diff --git a/res/icons/chart_bar_link.png b/res/icons/chart_bar_link.png new file mode 100644 index 00000000..bf18aed4 Binary files /dev/null and b/res/icons/chart_bar_link.png differ diff --git a/res/icons/chart_curve.png b/res/icons/chart_curve.png new file mode 100644 index 00000000..01e933a6 Binary files /dev/null and b/res/icons/chart_curve.png differ diff --git a/res/icons/chart_curve_add.png b/res/icons/chart_curve_add.png new file mode 100644 index 00000000..f9e20504 Binary files /dev/null and b/res/icons/chart_curve_add.png differ diff --git a/res/icons/chart_curve_delete.png b/res/icons/chart_curve_delete.png new file mode 100644 index 00000000..b411391c Binary files /dev/null and b/res/icons/chart_curve_delete.png differ diff --git a/res/icons/chart_curve_edit.png b/res/icons/chart_curve_edit.png new file mode 100644 index 00000000..bd07673b Binary files /dev/null and b/res/icons/chart_curve_edit.png differ diff --git a/res/icons/chart_curve_error.png b/res/icons/chart_curve_error.png new file mode 100644 index 00000000..906dd038 Binary files /dev/null and b/res/icons/chart_curve_error.png differ diff --git a/res/icons/chart_curve_go.png b/res/icons/chart_curve_go.png new file mode 100644 index 00000000..ac9eda51 Binary files /dev/null and b/res/icons/chart_curve_go.png differ diff --git a/res/icons/chart_curve_link.png b/res/icons/chart_curve_link.png new file mode 100644 index 00000000..144eafe0 Binary files /dev/null and b/res/icons/chart_curve_link.png differ diff --git a/res/icons/chart_line.png b/res/icons/chart_line.png new file mode 100644 index 00000000..85020f32 Binary files /dev/null and b/res/icons/chart_line.png differ diff --git a/res/icons/chart_line_add.png b/res/icons/chart_line_add.png new file mode 100644 index 00000000..5571a5eb Binary files /dev/null and b/res/icons/chart_line_add.png differ diff --git a/res/icons/chart_line_delete.png b/res/icons/chart_line_delete.png new file mode 100644 index 00000000..5b0aa901 Binary files /dev/null and b/res/icons/chart_line_delete.png differ diff --git a/res/icons/chart_line_edit.png b/res/icons/chart_line_edit.png new file mode 100644 index 00000000..9cf66073 Binary files /dev/null and b/res/icons/chart_line_edit.png differ diff --git a/res/icons/chart_line_error.png b/res/icons/chart_line_error.png new file mode 100644 index 00000000..ff23c03a Binary files /dev/null and b/res/icons/chart_line_error.png differ diff --git a/res/icons/chart_line_link.png b/res/icons/chart_line_link.png new file mode 100644 index 00000000..f3727d22 Binary files /dev/null and b/res/icons/chart_line_link.png differ diff --git a/res/icons/chart_organisation.png b/res/icons/chart_organisation.png new file mode 100644 index 00000000..c32d25c1 Binary files /dev/null and b/res/icons/chart_organisation.png differ diff --git a/res/icons/chart_organisation_add.png b/res/icons/chart_organisation_add.png new file mode 100644 index 00000000..f0dba4ac Binary files /dev/null and b/res/icons/chart_organisation_add.png differ diff --git a/res/icons/chart_organisation_delete.png b/res/icons/chart_organisation_delete.png new file mode 100644 index 00000000..7dc8dcac Binary files /dev/null and b/res/icons/chart_organisation_delete.png differ diff --git a/res/icons/chart_pie.png b/res/icons/chart_pie.png new file mode 100644 index 00000000..fe00fa05 Binary files /dev/null and b/res/icons/chart_pie.png differ diff --git a/res/icons/chart_pie_add.png b/res/icons/chart_pie_add.png new file mode 100644 index 00000000..bf0822ee Binary files /dev/null and b/res/icons/chart_pie_add.png differ diff --git a/res/icons/chart_pie_delete.png b/res/icons/chart_pie_delete.png new file mode 100644 index 00000000..5ab9efd5 Binary files /dev/null and b/res/icons/chart_pie_delete.png differ diff --git a/res/icons/chart_pie_edit.png b/res/icons/chart_pie_edit.png new file mode 100644 index 00000000..3debc12d Binary files /dev/null and b/res/icons/chart_pie_edit.png differ diff --git a/res/icons/chart_pie_error.png b/res/icons/chart_pie_error.png new file mode 100644 index 00000000..7344174f Binary files /dev/null and b/res/icons/chart_pie_error.png differ diff --git a/res/icons/chart_pie_link.png b/res/icons/chart_pie_link.png new file mode 100644 index 00000000..c072f8e0 Binary files /dev/null and b/res/icons/chart_pie_link.png differ diff --git a/res/icons/clock.png b/res/icons/clock.png new file mode 100644 index 00000000..e2672c20 Binary files /dev/null and b/res/icons/clock.png differ diff --git a/res/icons/clock_add.png b/res/icons/clock_add.png new file mode 100644 index 00000000..598b839b Binary files /dev/null and b/res/icons/clock_add.png differ diff --git a/res/icons/clock_delete.png b/res/icons/clock_delete.png new file mode 100644 index 00000000..8bf9efe4 Binary files /dev/null and b/res/icons/clock_delete.png differ diff --git a/res/icons/clock_edit.png b/res/icons/clock_edit.png new file mode 100644 index 00000000..7d357188 Binary files /dev/null and b/res/icons/clock_edit.png differ diff --git a/res/icons/clock_error.png b/res/icons/clock_error.png new file mode 100644 index 00000000..a7c461ba Binary files /dev/null and b/res/icons/clock_error.png differ diff --git a/res/icons/clock_go.png b/res/icons/clock_go.png new file mode 100644 index 00000000..a1a24d3f Binary files /dev/null and b/res/icons/clock_go.png differ diff --git a/res/icons/clock_link.png b/res/icons/clock_link.png new file mode 100644 index 00000000..481cf04c Binary files /dev/null and b/res/icons/clock_link.png differ diff --git a/res/icons/clock_pause.png b/res/icons/clock_pause.png new file mode 100644 index 00000000..ba747258 Binary files /dev/null and b/res/icons/clock_pause.png differ diff --git a/res/icons/clock_play.png b/res/icons/clock_play.png new file mode 100644 index 00000000..fb4ebc85 Binary files /dev/null and b/res/icons/clock_play.png differ diff --git a/res/icons/clock_red.png b/res/icons/clock_red.png new file mode 100644 index 00000000..2842cc33 Binary files /dev/null and b/res/icons/clock_red.png differ diff --git a/res/icons/clock_stop.png b/res/icons/clock_stop.png new file mode 100644 index 00000000..6fe8a6f9 Binary files /dev/null and b/res/icons/clock_stop.png differ diff --git a/res/icons/cog.png b/res/icons/cog.png new file mode 100644 index 00000000..67de2c6c Binary files /dev/null and b/res/icons/cog.png differ diff --git a/res/icons/cog_add.png b/res/icons/cog_add.png new file mode 100644 index 00000000..04f22bad Binary files /dev/null and b/res/icons/cog_add.png differ diff --git a/res/icons/cog_delete.png b/res/icons/cog_delete.png new file mode 100644 index 00000000..8ce71c47 Binary files /dev/null and b/res/icons/cog_delete.png differ diff --git a/res/icons/cog_edit.png b/res/icons/cog_edit.png new file mode 100644 index 00000000..47b75a45 Binary files /dev/null and b/res/icons/cog_edit.png differ diff --git a/res/icons/cog_error.png b/res/icons/cog_error.png new file mode 100644 index 00000000..47667430 Binary files /dev/null and b/res/icons/cog_error.png differ diff --git a/res/icons/cog_go.png b/res/icons/cog_go.png new file mode 100644 index 00000000..3262767c Binary files /dev/null and b/res/icons/cog_go.png differ diff --git a/res/icons/coins.png b/res/icons/coins.png new file mode 100644 index 00000000..0ca9074d Binary files /dev/null and b/res/icons/coins.png differ diff --git a/res/icons/coins_add.png b/res/icons/coins_add.png new file mode 100644 index 00000000..cdff5d3d Binary files /dev/null and b/res/icons/coins_add.png differ diff --git a/res/icons/coins_delete.png b/res/icons/coins_delete.png new file mode 100644 index 00000000..18e0c0fd Binary files /dev/null and b/res/icons/coins_delete.png differ diff --git a/res/icons/color_swatch.png b/res/icons/color_swatch.png new file mode 100644 index 00000000..6e6e8521 Binary files /dev/null and b/res/icons/color_swatch.png differ diff --git a/res/icons/color_wheel.png b/res/icons/color_wheel.png new file mode 100644 index 00000000..809fb00e Binary files /dev/null and b/res/icons/color_wheel.png differ diff --git a/res/icons/comment.png b/res/icons/comment.png new file mode 100644 index 00000000..7bc9233e Binary files /dev/null and b/res/icons/comment.png differ diff --git a/res/icons/comment_add.png b/res/icons/comment_add.png new file mode 100644 index 00000000..75e78ded Binary files /dev/null and b/res/icons/comment_add.png differ diff --git a/res/icons/comment_delete.png b/res/icons/comment_delete.png new file mode 100644 index 00000000..643fdbe8 Binary files /dev/null and b/res/icons/comment_delete.png differ diff --git a/res/icons/comment_edit.png b/res/icons/comment_edit.png new file mode 100644 index 00000000..73db110d Binary files /dev/null and b/res/icons/comment_edit.png differ diff --git a/res/icons/comments.png b/res/icons/comments.png new file mode 100644 index 00000000..39433cf7 Binary files /dev/null and b/res/icons/comments.png differ diff --git a/res/icons/comments_add.png b/res/icons/comments_add.png new file mode 100644 index 00000000..b3256344 Binary files /dev/null and b/res/icons/comments_add.png differ diff --git a/res/icons/comments_delete.png b/res/icons/comments_delete.png new file mode 100644 index 00000000..6df7376d Binary files /dev/null and b/res/icons/comments_delete.png differ diff --git a/res/icons/compress.png b/res/icons/compress.png new file mode 100644 index 00000000..8606ff0f Binary files /dev/null and b/res/icons/compress.png differ diff --git a/res/icons/computer.png b/res/icons/computer.png new file mode 100644 index 00000000..9bc37dce Binary files /dev/null and b/res/icons/computer.png differ diff --git a/res/icons/computer_add.png b/res/icons/computer_add.png new file mode 100644 index 00000000..db604ee3 Binary files /dev/null and b/res/icons/computer_add.png differ diff --git a/res/icons/computer_delete.png b/res/icons/computer_delete.png new file mode 100644 index 00000000..5e9b2683 Binary files /dev/null and b/res/icons/computer_delete.png differ diff --git a/res/icons/computer_edit.png b/res/icons/computer_edit.png new file mode 100644 index 00000000..34c72fe5 Binary files /dev/null and b/res/icons/computer_edit.png differ diff --git a/res/icons/computer_error.png b/res/icons/computer_error.png new file mode 100644 index 00000000..b2c3ed57 Binary files /dev/null and b/res/icons/computer_error.png differ diff --git a/res/icons/computer_go.png b/res/icons/computer_go.png new file mode 100644 index 00000000..0b26144d Binary files /dev/null and b/res/icons/computer_go.png differ diff --git a/res/icons/computer_key.png b/res/icons/computer_key.png new file mode 100644 index 00000000..eca54301 Binary files /dev/null and b/res/icons/computer_key.png differ diff --git a/res/icons/computer_link.png b/res/icons/computer_link.png new file mode 100644 index 00000000..3859db21 Binary files /dev/null and b/res/icons/computer_link.png differ diff --git a/res/icons/connect.png b/res/icons/connect.png new file mode 100644 index 00000000..024138eb Binary files /dev/null and b/res/icons/connect.png differ diff --git a/res/icons/contrast.png b/res/icons/contrast.png new file mode 100644 index 00000000..adcc0046 Binary files /dev/null and b/res/icons/contrast.png differ diff --git a/res/icons/contrast_decrease.png b/res/icons/contrast_decrease.png new file mode 100644 index 00000000..0155bf5c Binary files /dev/null and b/res/icons/contrast_decrease.png differ diff --git a/res/icons/contrast_high.png b/res/icons/contrast_high.png new file mode 100644 index 00000000..d87c8cbb Binary files /dev/null and b/res/icons/contrast_high.png differ diff --git a/res/icons/contrast_increase.png b/res/icons/contrast_increase.png new file mode 100644 index 00000000..a3e7f520 Binary files /dev/null and b/res/icons/contrast_increase.png differ diff --git a/res/icons/contrast_low.png b/res/icons/contrast_low.png new file mode 100644 index 00000000..dc9f4b10 Binary files /dev/null and b/res/icons/contrast_low.png differ diff --git a/res/icons/control_eject.png b/res/icons/control_eject.png new file mode 100644 index 00000000..924d817b Binary files /dev/null and b/res/icons/control_eject.png differ diff --git a/res/icons/control_eject_blue.png b/res/icons/control_eject_blue.png new file mode 100644 index 00000000..2bd49638 Binary files /dev/null and b/res/icons/control_eject_blue.png differ diff --git a/res/icons/control_end.png b/res/icons/control_end.png new file mode 100644 index 00000000..036e04dc Binary files /dev/null and b/res/icons/control_end.png differ diff --git a/res/icons/control_end_blue.png b/res/icons/control_end_blue.png new file mode 100644 index 00000000..72079357 Binary files /dev/null and b/res/icons/control_end_blue.png differ diff --git a/res/icons/control_equalizer.png b/res/icons/control_equalizer.png new file mode 100644 index 00000000..46060872 Binary files /dev/null and b/res/icons/control_equalizer.png differ diff --git a/res/icons/control_equalizer_blue.png b/res/icons/control_equalizer_blue.png new file mode 100644 index 00000000..1b2e6a37 Binary files /dev/null and b/res/icons/control_equalizer_blue.png differ diff --git a/res/icons/control_fastforward.png b/res/icons/control_fastforward.png new file mode 100644 index 00000000..31f7fd3a Binary files /dev/null and b/res/icons/control_fastforward.png differ diff --git a/res/icons/control_fastforward_blue.png b/res/icons/control_fastforward_blue.png new file mode 100644 index 00000000..4a2f9d4e Binary files /dev/null and b/res/icons/control_fastforward_blue.png differ diff --git a/res/icons/control_pause.png b/res/icons/control_pause.png new file mode 100644 index 00000000..2d9ce9c4 Binary files /dev/null and b/res/icons/control_pause.png differ diff --git a/res/icons/control_pause_blue.png b/res/icons/control_pause_blue.png new file mode 100644 index 00000000..ec61099b Binary files /dev/null and b/res/icons/control_pause_blue.png differ diff --git a/res/icons/control_play.png b/res/icons/control_play.png new file mode 100644 index 00000000..0846555d Binary files /dev/null and b/res/icons/control_play.png differ diff --git a/res/icons/control_play_blue.png b/res/icons/control_play_blue.png new file mode 100644 index 00000000..f8c8ec68 Binary files /dev/null and b/res/icons/control_play_blue.png differ diff --git a/res/icons/control_repeat.png b/res/icons/control_repeat.png new file mode 100644 index 00000000..1c4f57a1 Binary files /dev/null and b/res/icons/control_repeat.png differ diff --git a/res/icons/control_repeat_blue.png b/res/icons/control_repeat_blue.png new file mode 100644 index 00000000..406ec333 Binary files /dev/null and b/res/icons/control_repeat_blue.png differ diff --git a/res/icons/control_rewind.png b/res/icons/control_rewind.png new file mode 100644 index 00000000..c0294477 Binary files /dev/null and b/res/icons/control_rewind.png differ diff --git a/res/icons/control_rewind_blue.png b/res/icons/control_rewind_blue.png new file mode 100644 index 00000000..15d1584b Binary files /dev/null and b/res/icons/control_rewind_blue.png differ diff --git a/res/icons/control_start.png b/res/icons/control_start.png new file mode 100644 index 00000000..7dd1c07f Binary files /dev/null and b/res/icons/control_start.png differ diff --git a/res/icons/control_start_blue.png b/res/icons/control_start_blue.png new file mode 100644 index 00000000..6f11fcb0 Binary files /dev/null and b/res/icons/control_start_blue.png differ diff --git a/res/icons/control_stop.png b/res/icons/control_stop.png new file mode 100644 index 00000000..893bb60e Binary files /dev/null and b/res/icons/control_stop.png differ diff --git a/res/icons/control_stop_blue.png b/res/icons/control_stop_blue.png new file mode 100644 index 00000000..e6f75d23 Binary files /dev/null and b/res/icons/control_stop_blue.png differ diff --git a/res/icons/controller.png b/res/icons/controller.png new file mode 100644 index 00000000..5cf76ed0 Binary files /dev/null and b/res/icons/controller.png differ diff --git a/res/icons/controller_add.png b/res/icons/controller_add.png new file mode 100644 index 00000000..efecb387 Binary files /dev/null and b/res/icons/controller_add.png differ diff --git a/res/icons/controller_delete.png b/res/icons/controller_delete.png new file mode 100644 index 00000000..3d83bc7b Binary files /dev/null and b/res/icons/controller_delete.png differ diff --git a/res/icons/controller_error.png b/res/icons/controller_error.png new file mode 100644 index 00000000..7f17c0cb Binary files /dev/null and b/res/icons/controller_error.png differ diff --git a/res/icons/creditcards.png b/res/icons/creditcards.png new file mode 100644 index 00000000..4eae583e Binary files /dev/null and b/res/icons/creditcards.png differ diff --git a/res/icons/cross.png b/res/icons/cross.png new file mode 100644 index 00000000..1514d51a Binary files /dev/null and b/res/icons/cross.png differ diff --git a/res/icons/css.png b/res/icons/css.png new file mode 100644 index 00000000..23f31018 Binary files /dev/null and b/res/icons/css.png differ diff --git a/res/icons/css_add.png b/res/icons/css_add.png new file mode 100644 index 00000000..e8ea10fc Binary files /dev/null and b/res/icons/css_add.png differ diff --git a/res/icons/css_delete.png b/res/icons/css_delete.png new file mode 100644 index 00000000..326aba44 Binary files /dev/null and b/res/icons/css_delete.png differ diff --git a/res/icons/css_go.png b/res/icons/css_go.png new file mode 100644 index 00000000..6cdf38c3 Binary files /dev/null and b/res/icons/css_go.png differ diff --git a/res/icons/css_valid.png b/res/icons/css_valid.png new file mode 100644 index 00000000..4c72ca5a Binary files /dev/null and b/res/icons/css_valid.png differ diff --git a/res/icons/cup.png b/res/icons/cup.png new file mode 100644 index 00000000..b7bfcd15 Binary files /dev/null and b/res/icons/cup.png differ diff --git a/res/icons/cup_add.png b/res/icons/cup_add.png new file mode 100644 index 00000000..4ecaece2 Binary files /dev/null and b/res/icons/cup_add.png differ diff --git a/res/icons/cup_delete.png b/res/icons/cup_delete.png new file mode 100644 index 00000000..59a6d9c6 Binary files /dev/null and b/res/icons/cup_delete.png differ diff --git a/res/icons/cup_edit.png b/res/icons/cup_edit.png new file mode 100644 index 00000000..0b8f1e1e Binary files /dev/null and b/res/icons/cup_edit.png differ diff --git a/res/icons/cup_error.png b/res/icons/cup_error.png new file mode 100644 index 00000000..68798748 Binary files /dev/null and b/res/icons/cup_error.png differ diff --git a/res/icons/cup_go.png b/res/icons/cup_go.png new file mode 100644 index 00000000..9527efbe Binary files /dev/null and b/res/icons/cup_go.png differ diff --git a/res/icons/cup_key.png b/res/icons/cup_key.png new file mode 100644 index 00000000..7ae160ce Binary files /dev/null and b/res/icons/cup_key.png differ diff --git a/res/icons/cup_link.png b/res/icons/cup_link.png new file mode 100644 index 00000000..41d1ace1 Binary files /dev/null and b/res/icons/cup_link.png differ diff --git a/res/icons/cursor.png b/res/icons/cursor.png new file mode 100644 index 00000000..532f532d Binary files /dev/null and b/res/icons/cursor.png differ diff --git a/res/icons/cut.png b/res/icons/cut.png new file mode 100644 index 00000000..f215d6f6 Binary files /dev/null and b/res/icons/cut.png differ diff --git a/res/icons/cut_red.png b/res/icons/cut_red.png new file mode 100644 index 00000000..85bb2f0f Binary files /dev/null and b/res/icons/cut_red.png differ diff --git a/res/icons/database.png b/res/icons/database.png new file mode 100644 index 00000000..3d09261a Binary files /dev/null and b/res/icons/database.png differ diff --git a/res/icons/database_add.png b/res/icons/database_add.png new file mode 100644 index 00000000..802bd6cd Binary files /dev/null and b/res/icons/database_add.png differ diff --git a/res/icons/database_connect.png b/res/icons/database_connect.png new file mode 100644 index 00000000..3a111977 Binary files /dev/null and b/res/icons/database_connect.png differ diff --git a/res/icons/database_delete.png b/res/icons/database_delete.png new file mode 100644 index 00000000..cce652e8 Binary files /dev/null and b/res/icons/database_delete.png differ diff --git a/res/icons/database_edit.png b/res/icons/database_edit.png new file mode 100644 index 00000000..e501b668 Binary files /dev/null and b/res/icons/database_edit.png differ diff --git a/res/icons/database_error.png b/res/icons/database_error.png new file mode 100644 index 00000000..578221aa Binary files /dev/null and b/res/icons/database_error.png differ diff --git a/res/icons/database_gear.png b/res/icons/database_gear.png new file mode 100644 index 00000000..7c0ab2b4 Binary files /dev/null and b/res/icons/database_gear.png differ diff --git a/res/icons/database_go.png b/res/icons/database_go.png new file mode 100644 index 00000000..61a8556c Binary files /dev/null and b/res/icons/database_go.png differ diff --git a/res/icons/database_key.png b/res/icons/database_key.png new file mode 100644 index 00000000..33341476 Binary files /dev/null and b/res/icons/database_key.png differ diff --git a/res/icons/database_lightning.png b/res/icons/database_lightning.png new file mode 100644 index 00000000..d9eefc22 Binary files /dev/null and b/res/icons/database_lightning.png differ diff --git a/res/icons/database_link.png b/res/icons/database_link.png new file mode 100644 index 00000000..4c8204af Binary files /dev/null and b/res/icons/database_link.png differ diff --git a/res/icons/database_refresh.png b/res/icons/database_refresh.png new file mode 100644 index 00000000..ff803be1 Binary files /dev/null and b/res/icons/database_refresh.png differ diff --git a/res/icons/database_save.png b/res/icons/database_save.png new file mode 100644 index 00000000..44c06ddd Binary files /dev/null and b/res/icons/database_save.png differ diff --git a/res/icons/database_table.png b/res/icons/database_table.png new file mode 100644 index 00000000..693709cb Binary files /dev/null and b/res/icons/database_table.png differ diff --git a/res/icons/date.png b/res/icons/date.png new file mode 100644 index 00000000..783c8335 Binary files /dev/null and b/res/icons/date.png differ diff --git a/res/icons/date_add.png b/res/icons/date_add.png new file mode 100644 index 00000000..6a7ae025 Binary files /dev/null and b/res/icons/date_add.png differ diff --git a/res/icons/date_delete.png b/res/icons/date_delete.png new file mode 100644 index 00000000..969a6b72 Binary files /dev/null and b/res/icons/date_delete.png differ diff --git a/res/icons/date_edit.png b/res/icons/date_edit.png new file mode 100644 index 00000000..e6810650 Binary files /dev/null and b/res/icons/date_edit.png differ diff --git a/res/icons/date_error.png b/res/icons/date_error.png new file mode 100644 index 00000000..442cd97d Binary files /dev/null and b/res/icons/date_error.png differ diff --git a/res/icons/date_go.png b/res/icons/date_go.png new file mode 100644 index 00000000..52dd9f3a Binary files /dev/null and b/res/icons/date_go.png differ diff --git a/res/icons/date_link.png b/res/icons/date_link.png new file mode 100644 index 00000000..9f0aada7 Binary files /dev/null and b/res/icons/date_link.png differ diff --git a/res/icons/date_magnify.png b/res/icons/date_magnify.png new file mode 100644 index 00000000..cd05f190 Binary files /dev/null and b/res/icons/date_magnify.png differ diff --git a/res/icons/date_next.png b/res/icons/date_next.png new file mode 100644 index 00000000..48d740ab Binary files /dev/null and b/res/icons/date_next.png differ diff --git a/res/icons/date_previous.png b/res/icons/date_previous.png new file mode 100644 index 00000000..e117a837 Binary files /dev/null and b/res/icons/date_previous.png differ diff --git a/res/icons/delete.png b/res/icons/delete.png new file mode 100644 index 00000000..08f24936 Binary files /dev/null and b/res/icons/delete.png differ diff --git a/res/icons/disconnect.png b/res/icons/disconnect.png new file mode 100644 index 00000000..b335cb11 Binary files /dev/null and b/res/icons/disconnect.png differ diff --git a/res/icons/disk.png b/res/icons/disk.png new file mode 100644 index 00000000..99d532e8 Binary files /dev/null and b/res/icons/disk.png differ diff --git a/res/icons/disk_multiple.png b/res/icons/disk_multiple.png new file mode 100644 index 00000000..fc5a52f5 Binary files /dev/null and b/res/icons/disk_multiple.png differ diff --git a/res/icons/door.png b/res/icons/door.png new file mode 100644 index 00000000..369fc46e Binary files /dev/null and b/res/icons/door.png differ diff --git a/res/icons/door_in.png b/res/icons/door_in.png new file mode 100644 index 00000000..41676a0a Binary files /dev/null and b/res/icons/door_in.png differ diff --git a/res/icons/door_open.png b/res/icons/door_open.png new file mode 100644 index 00000000..64bab57d Binary files /dev/null and b/res/icons/door_open.png differ diff --git a/res/icons/door_out.png b/res/icons/door_out.png new file mode 100644 index 00000000..2541d2bc Binary files /dev/null and b/res/icons/door_out.png differ diff --git a/res/icons/drink.png b/res/icons/drink.png new file mode 100644 index 00000000..d98359c2 Binary files /dev/null and b/res/icons/drink.png differ diff --git a/res/icons/drink_empty.png b/res/icons/drink_empty.png new file mode 100644 index 00000000..a40211ed Binary files /dev/null and b/res/icons/drink_empty.png differ diff --git a/res/icons/drive.png b/res/icons/drive.png new file mode 100644 index 00000000..37b7c9b2 Binary files /dev/null and b/res/icons/drive.png differ diff --git a/res/icons/drive_add.png b/res/icons/drive_add.png new file mode 100644 index 00000000..29a35d5a Binary files /dev/null and b/res/icons/drive_add.png differ diff --git a/res/icons/drive_burn.png b/res/icons/drive_burn.png new file mode 100644 index 00000000..80fd79f9 Binary files /dev/null and b/res/icons/drive_burn.png differ diff --git a/res/icons/drive_cd.png b/res/icons/drive_cd.png new file mode 100644 index 00000000..1850b701 Binary files /dev/null and b/res/icons/drive_cd.png differ diff --git a/res/icons/drive_cd_empty.png b/res/icons/drive_cd_empty.png new file mode 100644 index 00000000..8df38d9e Binary files /dev/null and b/res/icons/drive_cd_empty.png differ diff --git a/res/icons/drive_delete.png b/res/icons/drive_delete.png new file mode 100644 index 00000000..e6eb1866 Binary files /dev/null and b/res/icons/drive_delete.png differ diff --git a/res/icons/drive_disk.png b/res/icons/drive_disk.png new file mode 100644 index 00000000..5a51e819 Binary files /dev/null and b/res/icons/drive_disk.png differ diff --git a/res/icons/drive_edit.png b/res/icons/drive_edit.png new file mode 100644 index 00000000..7923fada Binary files /dev/null and b/res/icons/drive_edit.png differ diff --git a/res/icons/drive_error.png b/res/icons/drive_error.png new file mode 100644 index 00000000..309f6396 Binary files /dev/null and b/res/icons/drive_error.png differ diff --git a/res/icons/drive_go.png b/res/icons/drive_go.png new file mode 100644 index 00000000..fc53379e Binary files /dev/null and b/res/icons/drive_go.png differ diff --git a/res/icons/drive_key.png b/res/icons/drive_key.png new file mode 100644 index 00000000..d0b3c673 Binary files /dev/null and b/res/icons/drive_key.png differ diff --git a/res/icons/drive_link.png b/res/icons/drive_link.png new file mode 100644 index 00000000..8679c4b5 Binary files /dev/null and b/res/icons/drive_link.png differ diff --git a/res/icons/drive_magnify.png b/res/icons/drive_magnify.png new file mode 100644 index 00000000..0f0f4446 Binary files /dev/null and b/res/icons/drive_magnify.png differ diff --git a/res/icons/drive_network.png b/res/icons/drive_network.png new file mode 100644 index 00000000..63d2d5d5 Binary files /dev/null and b/res/icons/drive_network.png differ diff --git a/res/icons/drive_rename.png b/res/icons/drive_rename.png new file mode 100644 index 00000000..2a9f38b4 Binary files /dev/null and b/res/icons/drive_rename.png differ diff --git a/res/icons/drive_user.png b/res/icons/drive_user.png new file mode 100644 index 00000000..0b4751ce Binary files /dev/null and b/res/icons/drive_user.png differ diff --git a/res/icons/drive_web.png b/res/icons/drive_web.png new file mode 100644 index 00000000..8850a835 Binary files /dev/null and b/res/icons/drive_web.png differ diff --git a/res/icons/dvd.png b/res/icons/dvd.png new file mode 100644 index 00000000..9d94de5d Binary files /dev/null and b/res/icons/dvd.png differ diff --git a/res/icons/dvd_add.png b/res/icons/dvd_add.png new file mode 100644 index 00000000..517d1121 Binary files /dev/null and b/res/icons/dvd_add.png differ diff --git a/res/icons/dvd_delete.png b/res/icons/dvd_delete.png new file mode 100644 index 00000000..87bed221 Binary files /dev/null and b/res/icons/dvd_delete.png differ diff --git a/res/icons/dvd_edit.png b/res/icons/dvd_edit.png new file mode 100644 index 00000000..d6330aa9 Binary files /dev/null and b/res/icons/dvd_edit.png differ diff --git a/res/icons/dvd_error.png b/res/icons/dvd_error.png new file mode 100644 index 00000000..8f6d4bee Binary files /dev/null and b/res/icons/dvd_error.png differ diff --git a/res/icons/dvd_go.png b/res/icons/dvd_go.png new file mode 100644 index 00000000..ef6959f7 Binary files /dev/null and b/res/icons/dvd_go.png differ diff --git a/res/icons/dvd_key.png b/res/icons/dvd_key.png new file mode 100644 index 00000000..da9307f6 Binary files /dev/null and b/res/icons/dvd_key.png differ diff --git a/res/icons/dvd_link.png b/res/icons/dvd_link.png new file mode 100644 index 00000000..caad7263 Binary files /dev/null and b/res/icons/dvd_link.png differ diff --git a/res/icons/email.png b/res/icons/email.png new file mode 100644 index 00000000..7348aed7 Binary files /dev/null and b/res/icons/email.png differ diff --git a/res/icons/email_add.png b/res/icons/email_add.png new file mode 100644 index 00000000..6c933681 Binary files /dev/null and b/res/icons/email_add.png differ diff --git a/res/icons/email_attach.png b/res/icons/email_attach.png new file mode 100644 index 00000000..1f994851 Binary files /dev/null and b/res/icons/email_attach.png differ diff --git a/res/icons/email_delete.png b/res/icons/email_delete.png new file mode 100644 index 00000000..a9932b1a Binary files /dev/null and b/res/icons/email_delete.png differ diff --git a/res/icons/email_edit.png b/res/icons/email_edit.png new file mode 100644 index 00000000..244f04ae Binary files /dev/null and b/res/icons/email_edit.png differ diff --git a/res/icons/email_error.png b/res/icons/email_error.png new file mode 100644 index 00000000..8bdd3304 Binary files /dev/null and b/res/icons/email_error.png differ diff --git a/res/icons/email_go.png b/res/icons/email_go.png new file mode 100644 index 00000000..4a6c5d39 Binary files /dev/null and b/res/icons/email_go.png differ diff --git a/res/icons/email_link.png b/res/icons/email_link.png new file mode 100644 index 00000000..2c49f78a Binary files /dev/null and b/res/icons/email_link.png differ diff --git a/res/icons/email_open.png b/res/icons/email_open.png new file mode 100644 index 00000000..7b6f9813 Binary files /dev/null and b/res/icons/email_open.png differ diff --git a/res/icons/email_open_image.png b/res/icons/email_open_image.png new file mode 100644 index 00000000..e588e2fb Binary files /dev/null and b/res/icons/email_open_image.png differ diff --git a/res/icons/emoticon_evilgrin.png b/res/icons/emoticon_evilgrin.png new file mode 100644 index 00000000..817bd509 Binary files /dev/null and b/res/icons/emoticon_evilgrin.png differ diff --git a/res/icons/emoticon_grin.png b/res/icons/emoticon_grin.png new file mode 100644 index 00000000..fc60c5e1 Binary files /dev/null and b/res/icons/emoticon_grin.png differ diff --git a/res/icons/emoticon_happy.png b/res/icons/emoticon_happy.png new file mode 100644 index 00000000..6b7336e1 Binary files /dev/null and b/res/icons/emoticon_happy.png differ diff --git a/res/icons/emoticon_smile.png b/res/icons/emoticon_smile.png new file mode 100644 index 00000000..ade43185 Binary files /dev/null and b/res/icons/emoticon_smile.png differ diff --git a/res/icons/emoticon_surprised.png b/res/icons/emoticon_surprised.png new file mode 100644 index 00000000..4520cfc5 Binary files /dev/null and b/res/icons/emoticon_surprised.png differ diff --git a/res/icons/emoticon_tongue.png b/res/icons/emoticon_tongue.png new file mode 100644 index 00000000..ecafd2ff Binary files /dev/null and b/res/icons/emoticon_tongue.png differ diff --git a/res/icons/emoticon_unhappy.png b/res/icons/emoticon_unhappy.png new file mode 100644 index 00000000..fd5d030e Binary files /dev/null and b/res/icons/emoticon_unhappy.png differ diff --git a/res/icons/emoticon_waii.png b/res/icons/emoticon_waii.png new file mode 100644 index 00000000..458f9361 Binary files /dev/null and b/res/icons/emoticon_waii.png differ diff --git a/res/icons/emoticon_wink.png b/res/icons/emoticon_wink.png new file mode 100644 index 00000000..a631949b Binary files /dev/null and b/res/icons/emoticon_wink.png differ diff --git a/res/icons/error.png b/res/icons/error.png new file mode 100644 index 00000000..628cf2da Binary files /dev/null and b/res/icons/error.png differ diff --git a/res/icons/error_add.png b/res/icons/error_add.png new file mode 100644 index 00000000..4c974840 Binary files /dev/null and b/res/icons/error_add.png differ diff --git a/res/icons/error_delete.png b/res/icons/error_delete.png new file mode 100644 index 00000000..7f78bcc8 Binary files /dev/null and b/res/icons/error_delete.png differ diff --git a/res/icons/error_go.png b/res/icons/error_go.png new file mode 100644 index 00000000..caa1838d Binary files /dev/null and b/res/icons/error_go.png differ diff --git a/res/icons/exclamation.png b/res/icons/exclamation.png new file mode 100644 index 00000000..c37bd062 Binary files /dev/null and b/res/icons/exclamation.png differ diff --git a/res/icons/eye.png b/res/icons/eye.png new file mode 100644 index 00000000..564a1a97 Binary files /dev/null and b/res/icons/eye.png differ diff --git a/res/icons/feed.png b/res/icons/feed.png new file mode 100644 index 00000000..315c4f4f Binary files /dev/null and b/res/icons/feed.png differ diff --git a/res/icons/feed_add.png b/res/icons/feed_add.png new file mode 100644 index 00000000..e77d46e8 Binary files /dev/null and b/res/icons/feed_add.png differ diff --git a/res/icons/feed_delete.png b/res/icons/feed_delete.png new file mode 100644 index 00000000..5e332b4c Binary files /dev/null and b/res/icons/feed_delete.png differ diff --git a/res/icons/feed_disk.png b/res/icons/feed_disk.png new file mode 100644 index 00000000..a158c998 Binary files /dev/null and b/res/icons/feed_disk.png differ diff --git a/res/icons/feed_edit.png b/res/icons/feed_edit.png new file mode 100644 index 00000000..f1fde7a9 Binary files /dev/null and b/res/icons/feed_edit.png differ diff --git a/res/icons/feed_error.png b/res/icons/feed_error.png new file mode 100644 index 00000000..c0a801c7 Binary files /dev/null and b/res/icons/feed_error.png differ diff --git a/res/icons/feed_go.png b/res/icons/feed_go.png new file mode 100644 index 00000000..f2eed1ec Binary files /dev/null and b/res/icons/feed_go.png differ diff --git a/res/icons/feed_key.png b/res/icons/feed_key.png new file mode 100644 index 00000000..156bfa97 Binary files /dev/null and b/res/icons/feed_key.png differ diff --git a/res/icons/feed_link.png b/res/icons/feed_link.png new file mode 100644 index 00000000..c45a5345 Binary files /dev/null and b/res/icons/feed_link.png differ diff --git a/res/icons/feed_magnify.png b/res/icons/feed_magnify.png new file mode 100644 index 00000000..3023695d Binary files /dev/null and b/res/icons/feed_magnify.png differ diff --git a/res/icons/female.png b/res/icons/female.png new file mode 100644 index 00000000..f92958e6 Binary files /dev/null and b/res/icons/female.png differ diff --git a/res/icons/film.png b/res/icons/film.png new file mode 100644 index 00000000..b0ce7bb1 Binary files /dev/null and b/res/icons/film.png differ diff --git a/res/icons/film_add.png b/res/icons/film_add.png new file mode 100644 index 00000000..40d681fe Binary files /dev/null and b/res/icons/film_add.png differ diff --git a/res/icons/film_delete.png b/res/icons/film_delete.png new file mode 100644 index 00000000..23a2508c Binary files /dev/null and b/res/icons/film_delete.png differ diff --git a/res/icons/film_edit.png b/res/icons/film_edit.png new file mode 100644 index 00000000..af66b73f Binary files /dev/null and b/res/icons/film_edit.png differ diff --git a/res/icons/film_error.png b/res/icons/film_error.png new file mode 100644 index 00000000..88f3d69b Binary files /dev/null and b/res/icons/film_error.png differ diff --git a/res/icons/film_go.png b/res/icons/film_go.png new file mode 100644 index 00000000..dd0168ea Binary files /dev/null and b/res/icons/film_go.png differ diff --git a/res/icons/film_key.png b/res/icons/film_key.png new file mode 100644 index 00000000..58921624 Binary files /dev/null and b/res/icons/film_key.png differ diff --git a/res/icons/film_link.png b/res/icons/film_link.png new file mode 100644 index 00000000..0f24e86e Binary files /dev/null and b/res/icons/film_link.png differ diff --git a/res/icons/film_save.png b/res/icons/film_save.png new file mode 100644 index 00000000..bc8c0d35 Binary files /dev/null and b/res/icons/film_save.png differ diff --git a/res/icons/find.png b/res/icons/find.png new file mode 100644 index 00000000..15474796 Binary files /dev/null and b/res/icons/find.png differ diff --git a/res/icons/flag_blue.png b/res/icons/flag_blue.png new file mode 100644 index 00000000..003924f5 Binary files /dev/null and b/res/icons/flag_blue.png differ diff --git a/res/icons/flag_green.png b/res/icons/flag_green.png new file mode 100644 index 00000000..e4bc611f Binary files /dev/null and b/res/icons/flag_green.png differ diff --git a/res/icons/flag_orange.png b/res/icons/flag_orange.png new file mode 100644 index 00000000..e6320242 Binary files /dev/null and b/res/icons/flag_orange.png differ diff --git a/res/icons/flag_pink.png b/res/icons/flag_pink.png new file mode 100644 index 00000000..5f15e526 Binary files /dev/null and b/res/icons/flag_pink.png differ diff --git a/res/icons/flag_purple.png b/res/icons/flag_purple.png new file mode 100644 index 00000000..d0698664 Binary files /dev/null and b/res/icons/flag_purple.png differ diff --git a/res/icons/flag_red.png b/res/icons/flag_red.png new file mode 100644 index 00000000..e8a602da Binary files /dev/null and b/res/icons/flag_red.png differ diff --git a/res/icons/flag_yellow.png b/res/icons/flag_yellow.png new file mode 100644 index 00000000..14c89a54 Binary files /dev/null and b/res/icons/flag_yellow.png differ diff --git a/res/icons/folder.png b/res/icons/folder.png new file mode 100644 index 00000000..784e8fa4 Binary files /dev/null and b/res/icons/folder.png differ diff --git a/res/icons/folder_add.png b/res/icons/folder_add.png new file mode 100644 index 00000000..529fe8fe Binary files /dev/null and b/res/icons/folder_add.png differ diff --git a/res/icons/folder_bell.png b/res/icons/folder_bell.png new file mode 100644 index 00000000..d04dd7f5 Binary files /dev/null and b/res/icons/folder_bell.png differ diff --git a/res/icons/folder_brick.png b/res/icons/folder_brick.png new file mode 100644 index 00000000..5dea9769 Binary files /dev/null and b/res/icons/folder_brick.png differ diff --git a/res/icons/folder_bug.png b/res/icons/folder_bug.png new file mode 100644 index 00000000..4f791b68 Binary files /dev/null and b/res/icons/folder_bug.png differ diff --git a/res/icons/folder_camera.png b/res/icons/folder_camera.png new file mode 100644 index 00000000..c9519416 Binary files /dev/null and b/res/icons/folder_camera.png differ diff --git a/res/icons/folder_database.png b/res/icons/folder_database.png new file mode 100644 index 00000000..5193e2ef Binary files /dev/null and b/res/icons/folder_database.png differ diff --git a/res/icons/folder_delete.png b/res/icons/folder_delete.png new file mode 100644 index 00000000..112b0163 Binary files /dev/null and b/res/icons/folder_delete.png differ diff --git a/res/icons/folder_edit.png b/res/icons/folder_edit.png new file mode 100644 index 00000000..ad669cc7 Binary files /dev/null and b/res/icons/folder_edit.png differ diff --git a/res/icons/folder_error.png b/res/icons/folder_error.png new file mode 100644 index 00000000..1af88095 Binary files /dev/null and b/res/icons/folder_error.png differ diff --git a/res/icons/folder_explore.png b/res/icons/folder_explore.png new file mode 100644 index 00000000..0ba93918 Binary files /dev/null and b/res/icons/folder_explore.png differ diff --git a/res/icons/folder_feed.png b/res/icons/folder_feed.png new file mode 100644 index 00000000..d06ee51e Binary files /dev/null and b/res/icons/folder_feed.png differ diff --git a/res/icons/folder_find.png b/res/icons/folder_find.png new file mode 100644 index 00000000..c64e2ee6 Binary files /dev/null and b/res/icons/folder_find.png differ diff --git a/res/icons/folder_go.png b/res/icons/folder_go.png new file mode 100644 index 00000000..34a736f7 Binary files /dev/null and b/res/icons/folder_go.png differ diff --git a/res/icons/folder_heart.png b/res/icons/folder_heart.png new file mode 100644 index 00000000..56d7da1d Binary files /dev/null and b/res/icons/folder_heart.png differ diff --git a/res/icons/folder_image.png b/res/icons/folder_image.png new file mode 100644 index 00000000..d5df75bb Binary files /dev/null and b/res/icons/folder_image.png differ diff --git a/res/icons/folder_key.png b/res/icons/folder_key.png new file mode 100644 index 00000000..fb9b4c2b Binary files /dev/null and b/res/icons/folder_key.png differ diff --git a/res/icons/folder_lightbulb.png b/res/icons/folder_lightbulb.png new file mode 100644 index 00000000..f367a511 Binary files /dev/null and b/res/icons/folder_lightbulb.png differ diff --git a/res/icons/folder_link.png b/res/icons/folder_link.png new file mode 100644 index 00000000..b9b75f6c Binary files /dev/null and b/res/icons/folder_link.png differ diff --git a/res/icons/folder_magnify.png b/res/icons/folder_magnify.png new file mode 100644 index 00000000..0a3e7985 Binary files /dev/null and b/res/icons/folder_magnify.png differ diff --git a/res/icons/folder_page.png b/res/icons/folder_page.png new file mode 100644 index 00000000..1ef6e114 Binary files /dev/null and b/res/icons/folder_page.png differ diff --git a/res/icons/folder_page_white.png b/res/icons/folder_page_white.png new file mode 100644 index 00000000..14d6b618 Binary files /dev/null and b/res/icons/folder_page_white.png differ diff --git a/res/icons/folder_palette.png b/res/icons/folder_palette.png new file mode 100644 index 00000000..ba12fe8a Binary files /dev/null and b/res/icons/folder_palette.png differ diff --git a/res/icons/folder_picture.png b/res/icons/folder_picture.png new file mode 100644 index 00000000..052b3363 Binary files /dev/null and b/res/icons/folder_picture.png differ diff --git a/res/icons/folder_star.png b/res/icons/folder_star.png new file mode 100644 index 00000000..448e46fd Binary files /dev/null and b/res/icons/folder_star.png differ diff --git a/res/icons/folder_table.png b/res/icons/folder_table.png new file mode 100644 index 00000000..473cee35 Binary files /dev/null and b/res/icons/folder_table.png differ diff --git a/res/icons/folder_user.png b/res/icons/folder_user.png new file mode 100644 index 00000000..f021c3e1 Binary files /dev/null and b/res/icons/folder_user.png differ diff --git a/res/icons/folder_wrench.png b/res/icons/folder_wrench.png new file mode 100644 index 00000000..ea3404e0 Binary files /dev/null and b/res/icons/folder_wrench.png differ diff --git a/res/icons/font.png b/res/icons/font.png new file mode 100644 index 00000000..b7960db9 Binary files /dev/null and b/res/icons/font.png differ diff --git a/res/icons/font_add.png b/res/icons/font_add.png new file mode 100644 index 00000000..b709ebae Binary files /dev/null and b/res/icons/font_add.png differ diff --git a/res/icons/font_delete.png b/res/icons/font_delete.png new file mode 100644 index 00000000..1d6124d6 Binary files /dev/null and b/res/icons/font_delete.png differ diff --git a/res/icons/font_go.png b/res/icons/font_go.png new file mode 100644 index 00000000..75eba80d Binary files /dev/null and b/res/icons/font_go.png differ diff --git a/res/icons/group.png b/res/icons/group.png new file mode 100644 index 00000000..7fb4e1f1 Binary files /dev/null and b/res/icons/group.png differ diff --git a/res/icons/group_add.png b/res/icons/group_add.png new file mode 100644 index 00000000..06c5350c Binary files /dev/null and b/res/icons/group_add.png differ diff --git a/res/icons/group_delete.png b/res/icons/group_delete.png new file mode 100644 index 00000000..4489ca23 Binary files /dev/null and b/res/icons/group_delete.png differ diff --git a/res/icons/group_edit.png b/res/icons/group_edit.png new file mode 100644 index 00000000..c88b945b Binary files /dev/null and b/res/icons/group_edit.png differ diff --git a/res/icons/group_error.png b/res/icons/group_error.png new file mode 100644 index 00000000..7364a13c Binary files /dev/null and b/res/icons/group_error.png differ diff --git a/res/icons/group_gear.png b/res/icons/group_gear.png new file mode 100644 index 00000000..2544f2e6 Binary files /dev/null and b/res/icons/group_gear.png differ diff --git a/res/icons/group_go.png b/res/icons/group_go.png new file mode 100644 index 00000000..1f523330 Binary files /dev/null and b/res/icons/group_go.png differ diff --git a/res/icons/group_key.png b/res/icons/group_key.png new file mode 100644 index 00000000..257f111c Binary files /dev/null and b/res/icons/group_key.png differ diff --git a/res/icons/group_link.png b/res/icons/group_link.png new file mode 100644 index 00000000..c77ed881 Binary files /dev/null and b/res/icons/group_link.png differ diff --git a/res/icons/heart.png b/res/icons/heart.png new file mode 100644 index 00000000..d9ee53e5 Binary files /dev/null and b/res/icons/heart.png differ diff --git a/res/icons/heart_add.png b/res/icons/heart_add.png new file mode 100644 index 00000000..d4195ff8 Binary files /dev/null and b/res/icons/heart_add.png differ diff --git a/res/icons/heart_delete.png b/res/icons/heart_delete.png new file mode 100644 index 00000000..ce523e34 Binary files /dev/null and b/res/icons/heart_delete.png differ diff --git a/res/icons/help.png b/res/icons/help.png new file mode 100644 index 00000000..5c870176 Binary files /dev/null and b/res/icons/help.png differ diff --git a/res/icons/hourglass.png b/res/icons/hourglass.png new file mode 100644 index 00000000..57b03ce7 Binary files /dev/null and b/res/icons/hourglass.png differ diff --git a/res/icons/hourglass_add.png b/res/icons/hourglass_add.png new file mode 100644 index 00000000..170dfff1 Binary files /dev/null and b/res/icons/hourglass_add.png differ diff --git a/res/icons/hourglass_delete.png b/res/icons/hourglass_delete.png new file mode 100644 index 00000000..4b1337be Binary files /dev/null and b/res/icons/hourglass_delete.png differ diff --git a/res/icons/hourglass_go.png b/res/icons/hourglass_go.png new file mode 100644 index 00000000..b2d3a98b Binary files /dev/null and b/res/icons/hourglass_go.png differ diff --git a/res/icons/hourglass_link.png b/res/icons/hourglass_link.png new file mode 100644 index 00000000..ecc59b0a Binary files /dev/null and b/res/icons/hourglass_link.png differ diff --git a/res/icons/house.png b/res/icons/house.png new file mode 100644 index 00000000..fed62219 Binary files /dev/null and b/res/icons/house.png differ diff --git a/res/icons/house_go.png b/res/icons/house_go.png new file mode 100644 index 00000000..5457dbd3 Binary files /dev/null and b/res/icons/house_go.png differ diff --git a/res/icons/house_link.png b/res/icons/house_link.png new file mode 100644 index 00000000..be2c2719 Binary files /dev/null and b/res/icons/house_link.png differ diff --git a/res/icons/html.png b/res/icons/html.png new file mode 100644 index 00000000..55d1072e Binary files /dev/null and b/res/icons/html.png differ diff --git a/res/icons/html_add.png b/res/icons/html_add.png new file mode 100644 index 00000000..f1c08b7d Binary files /dev/null and b/res/icons/html_add.png differ diff --git a/res/icons/html_delete.png b/res/icons/html_delete.png new file mode 100644 index 00000000..1bd28489 Binary files /dev/null and b/res/icons/html_delete.png differ diff --git a/res/icons/html_go.png b/res/icons/html_go.png new file mode 100644 index 00000000..a95cede1 Binary files /dev/null and b/res/icons/html_go.png differ diff --git a/res/icons/html_valid.png b/res/icons/html_valid.png new file mode 100644 index 00000000..71cec924 Binary files /dev/null and b/res/icons/html_valid.png differ diff --git a/res/icons/image.png b/res/icons/image.png new file mode 100644 index 00000000..fc3c393c Binary files /dev/null and b/res/icons/image.png differ diff --git a/res/icons/image_add.png b/res/icons/image_add.png new file mode 100644 index 00000000..fc5d6139 Binary files /dev/null and b/res/icons/image_add.png differ diff --git a/res/icons/image_delete.png b/res/icons/image_delete.png new file mode 100644 index 00000000..c260e1d9 Binary files /dev/null and b/res/icons/image_delete.png differ diff --git a/res/icons/image_edit.png b/res/icons/image_edit.png new file mode 100644 index 00000000..0aa4cc65 Binary files /dev/null and b/res/icons/image_edit.png differ diff --git a/res/icons/image_link.png b/res/icons/image_link.png new file mode 100644 index 00000000..4bdb3541 Binary files /dev/null and b/res/icons/image_link.png differ diff --git a/res/icons/images.png b/res/icons/images.png new file mode 100644 index 00000000..184860d1 Binary files /dev/null and b/res/icons/images.png differ diff --git a/res/icons/information.png b/res/icons/information.png new file mode 100644 index 00000000..12cd1aef Binary files /dev/null and b/res/icons/information.png differ diff --git a/res/icons/ipod.png b/res/icons/ipod.png new file mode 100644 index 00000000..3f768da5 Binary files /dev/null and b/res/icons/ipod.png differ diff --git a/res/icons/ipod_cast.png b/res/icons/ipod_cast.png new file mode 100644 index 00000000..6f6d3406 Binary files /dev/null and b/res/icons/ipod_cast.png differ diff --git a/res/icons/ipod_cast_add.png b/res/icons/ipod_cast_add.png new file mode 100644 index 00000000..c3257f5f Binary files /dev/null and b/res/icons/ipod_cast_add.png differ diff --git a/res/icons/ipod_cast_delete.png b/res/icons/ipod_cast_delete.png new file mode 100644 index 00000000..377ab695 Binary files /dev/null and b/res/icons/ipod_cast_delete.png differ diff --git a/res/icons/ipod_sound.png b/res/icons/ipod_sound.png new file mode 100644 index 00000000..fef6e8ba Binary files /dev/null and b/res/icons/ipod_sound.png differ diff --git a/res/icons/joystick.png b/res/icons/joystick.png new file mode 100644 index 00000000..62168f56 Binary files /dev/null and b/res/icons/joystick.png differ diff --git a/res/icons/joystick_add.png b/res/icons/joystick_add.png new file mode 100644 index 00000000..77e71077 Binary files /dev/null and b/res/icons/joystick_add.png differ diff --git a/res/icons/joystick_delete.png b/res/icons/joystick_delete.png new file mode 100644 index 00000000..5d44b592 Binary files /dev/null and b/res/icons/joystick_delete.png differ diff --git a/res/icons/joystick_error.png b/res/icons/joystick_error.png new file mode 100644 index 00000000..b32149e2 Binary files /dev/null and b/res/icons/joystick_error.png differ diff --git a/res/icons/key.png b/res/icons/key.png new file mode 100644 index 00000000..4ec1a928 Binary files /dev/null and b/res/icons/key.png differ diff --git a/res/icons/key_add.png b/res/icons/key_add.png new file mode 100644 index 00000000..d4074039 Binary files /dev/null and b/res/icons/key_add.png differ diff --git a/res/icons/key_delete.png b/res/icons/key_delete.png new file mode 100644 index 00000000..00dec80d Binary files /dev/null and b/res/icons/key_delete.png differ diff --git a/res/icons/key_go.png b/res/icons/key_go.png new file mode 100644 index 00000000..30b0dc31 Binary files /dev/null and b/res/icons/key_go.png differ diff --git a/res/icons/keyboard.png b/res/icons/keyboard.png new file mode 100644 index 00000000..898d402d Binary files /dev/null and b/res/icons/keyboard.png differ diff --git a/res/icons/keyboard_add.png b/res/icons/keyboard_add.png new file mode 100644 index 00000000..26938dd0 Binary files /dev/null and b/res/icons/keyboard_add.png differ diff --git a/res/icons/keyboard_delete.png b/res/icons/keyboard_delete.png new file mode 100644 index 00000000..1786ed5b Binary files /dev/null and b/res/icons/keyboard_delete.png differ diff --git a/res/icons/keyboard_magnify.png b/res/icons/keyboard_magnify.png new file mode 100644 index 00000000..928fc17b Binary files /dev/null and b/res/icons/keyboard_magnify.png differ diff --git a/res/icons/layers.png b/res/icons/layers.png new file mode 100644 index 00000000..00818f63 Binary files /dev/null and b/res/icons/layers.png differ diff --git a/res/icons/layout.png b/res/icons/layout.png new file mode 100644 index 00000000..ea086b04 Binary files /dev/null and b/res/icons/layout.png differ diff --git a/res/icons/layout_add.png b/res/icons/layout_add.png new file mode 100644 index 00000000..62037221 Binary files /dev/null and b/res/icons/layout_add.png differ diff --git a/res/icons/layout_content.png b/res/icons/layout_content.png new file mode 100644 index 00000000..b4aaad9a Binary files /dev/null and b/res/icons/layout_content.png differ diff --git a/res/icons/layout_delete.png b/res/icons/layout_delete.png new file mode 100644 index 00000000..4bd45f13 Binary files /dev/null and b/res/icons/layout_delete.png differ diff --git a/res/icons/layout_edit.png b/res/icons/layout_edit.png new file mode 100644 index 00000000..ab3100b5 Binary files /dev/null and b/res/icons/layout_edit.png differ diff --git a/res/icons/layout_error.png b/res/icons/layout_error.png new file mode 100644 index 00000000..5b5acea9 Binary files /dev/null and b/res/icons/layout_error.png differ diff --git a/res/icons/layout_header.png b/res/icons/layout_header.png new file mode 100644 index 00000000..c6ea7f23 Binary files /dev/null and b/res/icons/layout_header.png differ diff --git a/res/icons/layout_link.png b/res/icons/layout_link.png new file mode 100644 index 00000000..3445d420 Binary files /dev/null and b/res/icons/layout_link.png differ diff --git a/res/icons/layout_sidebar.png b/res/icons/layout_sidebar.png new file mode 100644 index 00000000..3be27bb9 Binary files /dev/null and b/res/icons/layout_sidebar.png differ diff --git a/res/icons/lightbulb.png b/res/icons/lightbulb.png new file mode 100644 index 00000000..d22fde8b Binary files /dev/null and b/res/icons/lightbulb.png differ diff --git a/res/icons/lightbulb_add.png b/res/icons/lightbulb_add.png new file mode 100644 index 00000000..0dd848bd Binary files /dev/null and b/res/icons/lightbulb_add.png differ diff --git a/res/icons/lightbulb_delete.png b/res/icons/lightbulb_delete.png new file mode 100644 index 00000000..f4781daa Binary files /dev/null and b/res/icons/lightbulb_delete.png differ diff --git a/res/icons/lightbulb_off.png b/res/icons/lightbulb_off.png new file mode 100644 index 00000000..e95b8c5b Binary files /dev/null and b/res/icons/lightbulb_off.png differ diff --git a/res/icons/lightning.png b/res/icons/lightning.png new file mode 100644 index 00000000..9680afd1 Binary files /dev/null and b/res/icons/lightning.png differ diff --git a/res/icons/lightning_add.png b/res/icons/lightning_add.png new file mode 100644 index 00000000..dac3c905 Binary files /dev/null and b/res/icons/lightning_add.png differ diff --git a/res/icons/lightning_delete.png b/res/icons/lightning_delete.png new file mode 100644 index 00000000..dfe27705 Binary files /dev/null and b/res/icons/lightning_delete.png differ diff --git a/res/icons/lightning_go.png b/res/icons/lightning_go.png new file mode 100644 index 00000000..29039e6a Binary files /dev/null and b/res/icons/lightning_go.png differ diff --git a/res/icons/link.png b/res/icons/link.png new file mode 100644 index 00000000..25eacb7c Binary files /dev/null and b/res/icons/link.png differ diff --git a/res/icons/link_add.png b/res/icons/link_add.png new file mode 100644 index 00000000..00be352c Binary files /dev/null and b/res/icons/link_add.png differ diff --git a/res/icons/link_break.png b/res/icons/link_break.png new file mode 100644 index 00000000..52357530 Binary files /dev/null and b/res/icons/link_break.png differ diff --git a/res/icons/link_delete.png b/res/icons/link_delete.png new file mode 100644 index 00000000..f66e2974 Binary files /dev/null and b/res/icons/link_delete.png differ diff --git a/res/icons/link_edit.png b/res/icons/link_edit.png new file mode 100644 index 00000000..5b3aed09 Binary files /dev/null and b/res/icons/link_edit.png differ diff --git a/res/icons/link_error.png b/res/icons/link_error.png new file mode 100644 index 00000000..ab694b1a Binary files /dev/null and b/res/icons/link_error.png differ diff --git a/res/icons/link_go.png b/res/icons/link_go.png new file mode 100644 index 00000000..ae8cae80 Binary files /dev/null and b/res/icons/link_go.png differ diff --git a/res/icons/lock.png b/res/icons/lock.png new file mode 100644 index 00000000..2ebc4f6f Binary files /dev/null and b/res/icons/lock.png differ diff --git a/res/icons/lock_add.png b/res/icons/lock_add.png new file mode 100644 index 00000000..a7b566b1 Binary files /dev/null and b/res/icons/lock_add.png differ diff --git a/res/icons/lock_break.png b/res/icons/lock_break.png new file mode 100644 index 00000000..13578ab5 Binary files /dev/null and b/res/icons/lock_break.png differ diff --git a/res/icons/lock_delete.png b/res/icons/lock_delete.png new file mode 100644 index 00000000..ecb50a93 Binary files /dev/null and b/res/icons/lock_delete.png differ diff --git a/res/icons/lock_edit.png b/res/icons/lock_edit.png new file mode 100644 index 00000000..116aa5b7 Binary files /dev/null and b/res/icons/lock_edit.png differ diff --git a/res/icons/lock_go.png b/res/icons/lock_go.png new file mode 100644 index 00000000..8c7c89b2 Binary files /dev/null and b/res/icons/lock_go.png differ diff --git a/res/icons/lock_open.png b/res/icons/lock_open.png new file mode 100644 index 00000000..a471765f Binary files /dev/null and b/res/icons/lock_open.png differ diff --git a/res/icons/lorry.png b/res/icons/lorry.png new file mode 100644 index 00000000..8f95f5a5 Binary files /dev/null and b/res/icons/lorry.png differ diff --git a/res/icons/lorry_add.png b/res/icons/lorry_add.png new file mode 100644 index 00000000..a2c51249 Binary files /dev/null and b/res/icons/lorry_add.png differ diff --git a/res/icons/lorry_delete.png b/res/icons/lorry_delete.png new file mode 100644 index 00000000..66217f52 Binary files /dev/null and b/res/icons/lorry_delete.png differ diff --git a/res/icons/lorry_error.png b/res/icons/lorry_error.png new file mode 100644 index 00000000..3619ead9 Binary files /dev/null and b/res/icons/lorry_error.png differ diff --git a/res/icons/lorry_flatbed.png b/res/icons/lorry_flatbed.png new file mode 100644 index 00000000..8b20f550 Binary files /dev/null and b/res/icons/lorry_flatbed.png differ diff --git a/res/icons/lorry_go.png b/res/icons/lorry_go.png new file mode 100644 index 00000000..1c296a6a Binary files /dev/null and b/res/icons/lorry_go.png differ diff --git a/res/icons/lorry_link.png b/res/icons/lorry_link.png new file mode 100644 index 00000000..5e6663e5 Binary files /dev/null and b/res/icons/lorry_link.png differ diff --git a/res/icons/magifier_zoom_out.png b/res/icons/magifier_zoom_out.png new file mode 100644 index 00000000..81f28199 Binary files /dev/null and b/res/icons/magifier_zoom_out.png differ diff --git a/res/icons/magnifier.png b/res/icons/magnifier.png new file mode 100644 index 00000000..cf3d97f7 Binary files /dev/null and b/res/icons/magnifier.png differ diff --git a/res/icons/magnifier_zoom_in.png b/res/icons/magnifier_zoom_in.png new file mode 100644 index 00000000..af4fe074 Binary files /dev/null and b/res/icons/magnifier_zoom_in.png differ diff --git a/res/icons/male.png b/res/icons/male.png new file mode 100644 index 00000000..25d6ea91 Binary files /dev/null and b/res/icons/male.png differ diff --git a/res/icons/map.png b/res/icons/map.png new file mode 100644 index 00000000..f90ef25e Binary files /dev/null and b/res/icons/map.png differ diff --git a/res/icons/map_add.png b/res/icons/map_add.png new file mode 100644 index 00000000..2b72da06 Binary files /dev/null and b/res/icons/map_add.png differ diff --git a/res/icons/map_delete.png b/res/icons/map_delete.png new file mode 100644 index 00000000..e74402f9 Binary files /dev/null and b/res/icons/map_delete.png differ diff --git a/res/icons/map_edit.png b/res/icons/map_edit.png new file mode 100644 index 00000000..93d4d7e5 Binary files /dev/null and b/res/icons/map_edit.png differ diff --git a/res/icons/map_go.png b/res/icons/map_go.png new file mode 100644 index 00000000..11eab26d Binary files /dev/null and b/res/icons/map_go.png differ diff --git a/res/icons/map_magnify.png b/res/icons/map_magnify.png new file mode 100644 index 00000000..7184c9dd Binary files /dev/null and b/res/icons/map_magnify.png differ diff --git a/res/icons/medal_bronze_1.png b/res/icons/medal_bronze_1.png new file mode 100644 index 00000000..5f8a6d65 Binary files /dev/null and b/res/icons/medal_bronze_1.png differ diff --git a/res/icons/medal_bronze_2.png b/res/icons/medal_bronze_2.png new file mode 100644 index 00000000..623d68c5 Binary files /dev/null and b/res/icons/medal_bronze_2.png differ diff --git a/res/icons/medal_bronze_3.png b/res/icons/medal_bronze_3.png new file mode 100644 index 00000000..ed3f43eb Binary files /dev/null and b/res/icons/medal_bronze_3.png differ diff --git a/res/icons/medal_bronze_add.png b/res/icons/medal_bronze_add.png new file mode 100644 index 00000000..8487b2c1 Binary files /dev/null and b/res/icons/medal_bronze_add.png differ diff --git a/res/icons/medal_bronze_delete.png b/res/icons/medal_bronze_delete.png new file mode 100644 index 00000000..d32aed72 Binary files /dev/null and b/res/icons/medal_bronze_delete.png differ diff --git a/res/icons/medal_gold_1.png b/res/icons/medal_gold_1.png new file mode 100644 index 00000000..87584dc9 Binary files /dev/null and b/res/icons/medal_gold_1.png differ diff --git a/res/icons/medal_gold_2.png b/res/icons/medal_gold_2.png new file mode 100644 index 00000000..fa3a15dd Binary files /dev/null and b/res/icons/medal_gold_2.png differ diff --git a/res/icons/medal_gold_3.png b/res/icons/medal_gold_3.png new file mode 100644 index 00000000..ef1b08b9 Binary files /dev/null and b/res/icons/medal_gold_3.png differ diff --git a/res/icons/medal_gold_add.png b/res/icons/medal_gold_add.png new file mode 100644 index 00000000..dcade0d8 Binary files /dev/null and b/res/icons/medal_gold_add.png differ diff --git a/res/icons/medal_gold_delete.png b/res/icons/medal_gold_delete.png new file mode 100644 index 00000000..84b06d5b Binary files /dev/null and b/res/icons/medal_gold_delete.png differ diff --git a/res/icons/medal_silver_1.png b/res/icons/medal_silver_1.png new file mode 100644 index 00000000..75a64da3 Binary files /dev/null and b/res/icons/medal_silver_1.png differ diff --git a/res/icons/medal_silver_2.png b/res/icons/medal_silver_2.png new file mode 100644 index 00000000..2e0fe75c Binary files /dev/null and b/res/icons/medal_silver_2.png differ diff --git a/res/icons/medal_silver_3.png b/res/icons/medal_silver_3.png new file mode 100644 index 00000000..e385b546 Binary files /dev/null and b/res/icons/medal_silver_3.png differ diff --git a/res/icons/medal_silver_add.png b/res/icons/medal_silver_add.png new file mode 100644 index 00000000..b0633fa0 Binary files /dev/null and b/res/icons/medal_silver_add.png differ diff --git a/res/icons/medal_silver_delete.png b/res/icons/medal_silver_delete.png new file mode 100644 index 00000000..06cab467 Binary files /dev/null and b/res/icons/medal_silver_delete.png differ diff --git a/res/icons/money.png b/res/icons/money.png new file mode 100644 index 00000000..42c52d05 Binary files /dev/null and b/res/icons/money.png differ diff --git a/res/icons/money_add.png b/res/icons/money_add.png new file mode 100644 index 00000000..588fa9d0 Binary files /dev/null and b/res/icons/money_add.png differ diff --git a/res/icons/money_delete.png b/res/icons/money_delete.png new file mode 100644 index 00000000..eae2c524 Binary files /dev/null and b/res/icons/money_delete.png differ diff --git a/res/icons/money_dollar.png b/res/icons/money_dollar.png new file mode 100644 index 00000000..59af1638 Binary files /dev/null and b/res/icons/money_dollar.png differ diff --git a/res/icons/money_euro.png b/res/icons/money_euro.png new file mode 100644 index 00000000..b322ba92 Binary files /dev/null and b/res/icons/money_euro.png differ diff --git a/res/icons/money_pound.png b/res/icons/money_pound.png new file mode 100644 index 00000000..b7113646 Binary files /dev/null and b/res/icons/money_pound.png differ diff --git a/res/icons/money_yen.png b/res/icons/money_yen.png new file mode 100644 index 00000000..228a6778 Binary files /dev/null and b/res/icons/money_yen.png differ diff --git a/res/icons/monitor.png b/res/icons/monitor.png new file mode 100644 index 00000000..d040bd02 Binary files /dev/null and b/res/icons/monitor.png differ diff --git a/res/icons/monitor_add.png b/res/icons/monitor_add.png new file mode 100644 index 00000000..a8180664 Binary files /dev/null and b/res/icons/monitor_add.png differ diff --git a/res/icons/monitor_delete.png b/res/icons/monitor_delete.png new file mode 100644 index 00000000..37332563 Binary files /dev/null and b/res/icons/monitor_delete.png differ diff --git a/res/icons/monitor_edit.png b/res/icons/monitor_edit.png new file mode 100644 index 00000000..f772c562 Binary files /dev/null and b/res/icons/monitor_edit.png differ diff --git a/res/icons/monitor_error.png b/res/icons/monitor_error.png new file mode 100644 index 00000000..270c5018 Binary files /dev/null and b/res/icons/monitor_error.png differ diff --git a/res/icons/monitor_go.png b/res/icons/monitor_go.png new file mode 100644 index 00000000..8af3eda9 Binary files /dev/null and b/res/icons/monitor_go.png differ diff --git a/res/icons/monitor_lightning.png b/res/icons/monitor_lightning.png new file mode 100644 index 00000000..06e53a9d Binary files /dev/null and b/res/icons/monitor_lightning.png differ diff --git a/res/icons/monitor_link.png b/res/icons/monitor_link.png new file mode 100644 index 00000000..a014b025 Binary files /dev/null and b/res/icons/monitor_link.png differ diff --git a/res/icons/mouse.png b/res/icons/mouse.png new file mode 100644 index 00000000..63a92fa9 Binary files /dev/null and b/res/icons/mouse.png differ diff --git a/res/icons/mouse_add.png b/res/icons/mouse_add.png new file mode 100644 index 00000000..65bcab52 Binary files /dev/null and b/res/icons/mouse_add.png differ diff --git a/res/icons/mouse_delete.png b/res/icons/mouse_delete.png new file mode 100644 index 00000000..72865668 Binary files /dev/null and b/res/icons/mouse_delete.png differ diff --git a/res/icons/mouse_error.png b/res/icons/mouse_error.png new file mode 100644 index 00000000..bcc15623 Binary files /dev/null and b/res/icons/mouse_error.png differ diff --git a/res/icons/music.png b/res/icons/music.png new file mode 100644 index 00000000..a8b3ede3 Binary files /dev/null and b/res/icons/music.png differ diff --git a/res/icons/new.png b/res/icons/new.png new file mode 100644 index 00000000..6a9bf037 Binary files /dev/null and b/res/icons/new.png differ diff --git a/res/icons/newspaper.png b/res/icons/newspaper.png new file mode 100644 index 00000000..6a2ecce1 Binary files /dev/null and b/res/icons/newspaper.png differ diff --git a/res/icons/newspaper_add.png b/res/icons/newspaper_add.png new file mode 100644 index 00000000..8140e8c1 Binary files /dev/null and b/res/icons/newspaper_add.png differ diff --git a/res/icons/newspaper_delete.png b/res/icons/newspaper_delete.png new file mode 100644 index 00000000..bde96ce1 Binary files /dev/null and b/res/icons/newspaper_delete.png differ diff --git a/res/icons/newspaper_go.png b/res/icons/newspaper_go.png new file mode 100644 index 00000000..fd614287 Binary files /dev/null and b/res/icons/newspaper_go.png differ diff --git a/res/icons/newspaper_link.png b/res/icons/newspaper_link.png new file mode 100644 index 00000000..99e57cba Binary files /dev/null and b/res/icons/newspaper_link.png differ diff --git a/res/icons/note.png b/res/icons/note.png new file mode 100644 index 00000000..244e6ca0 Binary files /dev/null and b/res/icons/note.png differ diff --git a/res/icons/note_add.png b/res/icons/note_add.png new file mode 100644 index 00000000..abdad91e Binary files /dev/null and b/res/icons/note_add.png differ diff --git a/res/icons/note_delete.png b/res/icons/note_delete.png new file mode 100644 index 00000000..8a1f0ff5 Binary files /dev/null and b/res/icons/note_delete.png differ diff --git a/res/icons/note_edit.png b/res/icons/note_edit.png new file mode 100644 index 00000000..291bfc76 Binary files /dev/null and b/res/icons/note_edit.png differ diff --git a/res/icons/note_error.png b/res/icons/note_error.png new file mode 100644 index 00000000..896dadfd Binary files /dev/null and b/res/icons/note_error.png differ diff --git a/res/icons/note_go.png b/res/icons/note_go.png new file mode 100644 index 00000000..49e54fd8 Binary files /dev/null and b/res/icons/note_go.png differ diff --git a/res/icons/overlays.png b/res/icons/overlays.png new file mode 100644 index 00000000..ab3100b5 Binary files /dev/null and b/res/icons/overlays.png differ diff --git a/res/icons/package.png b/res/icons/package.png new file mode 100644 index 00000000..da3c2a2d Binary files /dev/null and b/res/icons/package.png differ diff --git a/res/icons/package_add.png b/res/icons/package_add.png new file mode 100644 index 00000000..9c8a9da4 Binary files /dev/null and b/res/icons/package_add.png differ diff --git a/res/icons/package_delete.png b/res/icons/package_delete.png new file mode 100644 index 00000000..86f7fbc2 Binary files /dev/null and b/res/icons/package_delete.png differ diff --git a/res/icons/package_go.png b/res/icons/package_go.png new file mode 100644 index 00000000..aace63ad Binary files /dev/null and b/res/icons/package_go.png differ diff --git a/res/icons/package_green.png b/res/icons/package_green.png new file mode 100644 index 00000000..25b28bb6 Binary files /dev/null and b/res/icons/package_green.png differ diff --git a/res/icons/package_link.png b/res/icons/package_link.png new file mode 100644 index 00000000..48e7ab55 Binary files /dev/null and b/res/icons/package_link.png differ diff --git a/res/icons/page.png b/res/icons/page.png new file mode 100644 index 00000000..03ddd799 Binary files /dev/null and b/res/icons/page.png differ diff --git a/res/icons/page_add.png b/res/icons/page_add.png new file mode 100644 index 00000000..d5bfa071 Binary files /dev/null and b/res/icons/page_add.png differ diff --git a/res/icons/page_attach.png b/res/icons/page_attach.png new file mode 100644 index 00000000..89ee2da0 Binary files /dev/null and b/res/icons/page_attach.png differ diff --git a/res/icons/page_code.png b/res/icons/page_code.png new file mode 100644 index 00000000..f7ea9041 Binary files /dev/null and b/res/icons/page_code.png differ diff --git a/res/icons/page_copy.png b/res/icons/page_copy.png new file mode 100644 index 00000000..195dc6d6 Binary files /dev/null and b/res/icons/page_copy.png differ diff --git a/res/icons/page_delete.png b/res/icons/page_delete.png new file mode 100644 index 00000000..3141467c Binary files /dev/null and b/res/icons/page_delete.png differ diff --git a/res/icons/page_edit.png b/res/icons/page_edit.png new file mode 100644 index 00000000..046811ed Binary files /dev/null and b/res/icons/page_edit.png differ diff --git a/res/icons/page_error.png b/res/icons/page_error.png new file mode 100644 index 00000000..f07f449a Binary files /dev/null and b/res/icons/page_error.png differ diff --git a/res/icons/page_excel.png b/res/icons/page_excel.png new file mode 100644 index 00000000..eb6158eb Binary files /dev/null and b/res/icons/page_excel.png differ diff --git a/res/icons/page_find.png b/res/icons/page_find.png new file mode 100644 index 00000000..2f193889 Binary files /dev/null and b/res/icons/page_find.png differ diff --git a/res/icons/page_gear.png b/res/icons/page_gear.png new file mode 100644 index 00000000..8e83281c Binary files /dev/null and b/res/icons/page_gear.png differ diff --git a/res/icons/page_go.png b/res/icons/page_go.png new file mode 100644 index 00000000..80fe1ed0 Binary files /dev/null and b/res/icons/page_go.png differ diff --git a/res/icons/page_green.png b/res/icons/page_green.png new file mode 100644 index 00000000..de8e003f Binary files /dev/null and b/res/icons/page_green.png differ diff --git a/res/icons/page_key.png b/res/icons/page_key.png new file mode 100644 index 00000000..d6626cb0 Binary files /dev/null and b/res/icons/page_key.png differ diff --git a/res/icons/page_lightning.png b/res/icons/page_lightning.png new file mode 100644 index 00000000..7e568703 Binary files /dev/null and b/res/icons/page_lightning.png differ diff --git a/res/icons/page_link.png b/res/icons/page_link.png new file mode 100644 index 00000000..312eab09 Binary files /dev/null and b/res/icons/page_link.png differ diff --git a/res/icons/page_paintbrush.png b/res/icons/page_paintbrush.png new file mode 100644 index 00000000..246a2f0b Binary files /dev/null and b/res/icons/page_paintbrush.png differ diff --git a/res/icons/page_paste.png b/res/icons/page_paste.png new file mode 100644 index 00000000..968f073f Binary files /dev/null and b/res/icons/page_paste.png differ diff --git a/res/icons/page_red.png b/res/icons/page_red.png new file mode 100644 index 00000000..0b18247d Binary files /dev/null and b/res/icons/page_red.png differ diff --git a/res/icons/page_refresh.png b/res/icons/page_refresh.png new file mode 100644 index 00000000..cf347c7d Binary files /dev/null and b/res/icons/page_refresh.png differ diff --git a/res/icons/page_save.png b/res/icons/page_save.png new file mode 100644 index 00000000..caea546a Binary files /dev/null and b/res/icons/page_save.png differ diff --git a/res/icons/page_white.png b/res/icons/page_white.png new file mode 100644 index 00000000..8b8b1ca0 Binary files /dev/null and b/res/icons/page_white.png differ diff --git a/res/icons/page_white_acrobat.png b/res/icons/page_white_acrobat.png new file mode 100644 index 00000000..8f8095e4 Binary files /dev/null and b/res/icons/page_white_acrobat.png differ diff --git a/res/icons/page_white_actionscript.png b/res/icons/page_white_actionscript.png new file mode 100644 index 00000000..159b2407 Binary files /dev/null and b/res/icons/page_white_actionscript.png differ diff --git a/res/icons/page_white_add.png b/res/icons/page_white_add.png new file mode 100644 index 00000000..aa23dde3 Binary files /dev/null and b/res/icons/page_white_add.png differ diff --git a/res/icons/page_white_c.png b/res/icons/page_white_c.png new file mode 100644 index 00000000..34a05ccc Binary files /dev/null and b/res/icons/page_white_c.png differ diff --git a/res/icons/page_white_camera.png b/res/icons/page_white_camera.png new file mode 100644 index 00000000..f501a593 Binary files /dev/null and b/res/icons/page_white_camera.png differ diff --git a/res/icons/page_white_cd.png b/res/icons/page_white_cd.png new file mode 100644 index 00000000..848bdaf3 Binary files /dev/null and b/res/icons/page_white_cd.png differ diff --git a/res/icons/page_white_code.png b/res/icons/page_white_code.png new file mode 100644 index 00000000..0c76bd12 Binary files /dev/null and b/res/icons/page_white_code.png differ diff --git a/res/icons/page_white_code_red.png b/res/icons/page_white_code_red.png new file mode 100644 index 00000000..87a69145 Binary files /dev/null and b/res/icons/page_white_code_red.png differ diff --git a/res/icons/page_white_coldfusion.png b/res/icons/page_white_coldfusion.png new file mode 100644 index 00000000..c66011fb Binary files /dev/null and b/res/icons/page_white_coldfusion.png differ diff --git a/res/icons/page_white_compressed.png b/res/icons/page_white_compressed.png new file mode 100644 index 00000000..2b6b1007 Binary files /dev/null and b/res/icons/page_white_compressed.png differ diff --git a/res/icons/page_white_copy.png b/res/icons/page_white_copy.png new file mode 100644 index 00000000..a9f31a27 Binary files /dev/null and b/res/icons/page_white_copy.png differ diff --git a/res/icons/page_white_cplusplus.png b/res/icons/page_white_cplusplus.png new file mode 100644 index 00000000..a87cf847 Binary files /dev/null and b/res/icons/page_white_cplusplus.png differ diff --git a/res/icons/page_white_csharp.png b/res/icons/page_white_csharp.png new file mode 100644 index 00000000..ffb8fc93 Binary files /dev/null and b/res/icons/page_white_csharp.png differ diff --git a/res/icons/page_white_cup.png b/res/icons/page_white_cup.png new file mode 100644 index 00000000..0a7d6f4a Binary files /dev/null and b/res/icons/page_white_cup.png differ diff --git a/res/icons/page_white_database.png b/res/icons/page_white_database.png new file mode 100644 index 00000000..bddba1f9 Binary files /dev/null and b/res/icons/page_white_database.png differ diff --git a/res/icons/page_white_delete.png b/res/icons/page_white_delete.png new file mode 100644 index 00000000..af1ecaf2 Binary files /dev/null and b/res/icons/page_white_delete.png differ diff --git a/res/icons/page_white_dvd.png b/res/icons/page_white_dvd.png new file mode 100644 index 00000000..4cc537af Binary files /dev/null and b/res/icons/page_white_dvd.png differ diff --git a/res/icons/page_white_edit.png b/res/icons/page_white_edit.png new file mode 100644 index 00000000..b93e7760 Binary files /dev/null and b/res/icons/page_white_edit.png differ diff --git a/res/icons/page_white_error.png b/res/icons/page_white_error.png new file mode 100644 index 00000000..9fc5a0a1 Binary files /dev/null and b/res/icons/page_white_error.png differ diff --git a/res/icons/page_white_excel.png b/res/icons/page_white_excel.png new file mode 100644 index 00000000..b977d7e5 Binary files /dev/null and b/res/icons/page_white_excel.png differ diff --git a/res/icons/page_white_find.png b/res/icons/page_white_find.png new file mode 100644 index 00000000..58184363 Binary files /dev/null and b/res/icons/page_white_find.png differ diff --git a/res/icons/page_white_flash.png b/res/icons/page_white_flash.png new file mode 100644 index 00000000..5769120b Binary files /dev/null and b/res/icons/page_white_flash.png differ diff --git a/res/icons/page_white_freehand.png b/res/icons/page_white_freehand.png new file mode 100644 index 00000000..8d719df5 Binary files /dev/null and b/res/icons/page_white_freehand.png differ diff --git a/res/icons/page_white_gear.png b/res/icons/page_white_gear.png new file mode 100644 index 00000000..106f5aa3 Binary files /dev/null and b/res/icons/page_white_gear.png differ diff --git a/res/icons/page_white_get.png b/res/icons/page_white_get.png new file mode 100644 index 00000000..e4a1ecba Binary files /dev/null and b/res/icons/page_white_get.png differ diff --git a/res/icons/page_white_go.png b/res/icons/page_white_go.png new file mode 100644 index 00000000..7e62a924 Binary files /dev/null and b/res/icons/page_white_go.png differ diff --git a/res/icons/page_white_h.png b/res/icons/page_white_h.png new file mode 100644 index 00000000..e902abb0 Binary files /dev/null and b/res/icons/page_white_h.png differ diff --git a/res/icons/page_white_horizontal.png b/res/icons/page_white_horizontal.png new file mode 100644 index 00000000..1d2d0a49 Binary files /dev/null and b/res/icons/page_white_horizontal.png differ diff --git a/res/icons/page_white_key.png b/res/icons/page_white_key.png new file mode 100644 index 00000000..d6164845 Binary files /dev/null and b/res/icons/page_white_key.png differ diff --git a/res/icons/page_white_lightning.png b/res/icons/page_white_lightning.png new file mode 100644 index 00000000..7215d1e8 Binary files /dev/null and b/res/icons/page_white_lightning.png differ diff --git a/res/icons/page_white_link.png b/res/icons/page_white_link.png new file mode 100644 index 00000000..bf7bd1c9 Binary files /dev/null and b/res/icons/page_white_link.png differ diff --git a/res/icons/page_white_magnify.png b/res/icons/page_white_magnify.png new file mode 100644 index 00000000..f6b74cc4 Binary files /dev/null and b/res/icons/page_white_magnify.png differ diff --git a/res/icons/page_white_medal.png b/res/icons/page_white_medal.png new file mode 100644 index 00000000..d3fffb6d Binary files /dev/null and b/res/icons/page_white_medal.png differ diff --git a/res/icons/page_white_office.png b/res/icons/page_white_office.png new file mode 100644 index 00000000..a65bcb3e Binary files /dev/null and b/res/icons/page_white_office.png differ diff --git a/res/icons/page_white_paint.png b/res/icons/page_white_paint.png new file mode 100644 index 00000000..23a37b89 Binary files /dev/null and b/res/icons/page_white_paint.png differ diff --git a/res/icons/page_white_paintbrush.png b/res/icons/page_white_paintbrush.png new file mode 100644 index 00000000..f907e44b Binary files /dev/null and b/res/icons/page_white_paintbrush.png differ diff --git a/res/icons/page_white_paste.png b/res/icons/page_white_paste.png new file mode 100644 index 00000000..5b2cbb3f Binary files /dev/null and b/res/icons/page_white_paste.png differ diff --git a/res/icons/page_white_php.png b/res/icons/page_white_php.png new file mode 100644 index 00000000..7868a259 Binary files /dev/null and b/res/icons/page_white_php.png differ diff --git a/res/icons/page_white_picture.png b/res/icons/page_white_picture.png new file mode 100644 index 00000000..134b6693 Binary files /dev/null and b/res/icons/page_white_picture.png differ diff --git a/res/icons/page_white_powerpoint.png b/res/icons/page_white_powerpoint.png new file mode 100644 index 00000000..c4eff038 Binary files /dev/null and b/res/icons/page_white_powerpoint.png differ diff --git a/res/icons/page_white_put.png b/res/icons/page_white_put.png new file mode 100644 index 00000000..884ffd6f Binary files /dev/null and b/res/icons/page_white_put.png differ diff --git a/res/icons/page_white_ruby.png b/res/icons/page_white_ruby.png new file mode 100644 index 00000000..f59b7c43 Binary files /dev/null and b/res/icons/page_white_ruby.png differ diff --git a/res/icons/page_white_stack.png b/res/icons/page_white_stack.png new file mode 100644 index 00000000..44084add Binary files /dev/null and b/res/icons/page_white_stack.png differ diff --git a/res/icons/page_white_star.png b/res/icons/page_white_star.png new file mode 100644 index 00000000..3a1441c9 Binary files /dev/null and b/res/icons/page_white_star.png differ diff --git a/res/icons/page_white_swoosh.png b/res/icons/page_white_swoosh.png new file mode 100644 index 00000000..e7708292 Binary files /dev/null and b/res/icons/page_white_swoosh.png differ diff --git a/res/icons/page_white_text.png b/res/icons/page_white_text.png new file mode 100644 index 00000000..813f712f Binary files /dev/null and b/res/icons/page_white_text.png differ diff --git a/res/icons/page_white_text_width.png b/res/icons/page_white_text_width.png new file mode 100644 index 00000000..d9cf1325 Binary files /dev/null and b/res/icons/page_white_text_width.png differ diff --git a/res/icons/page_white_tux.png b/res/icons/page_white_tux.png new file mode 100644 index 00000000..52699bfe Binary files /dev/null and b/res/icons/page_white_tux.png differ diff --git a/res/icons/page_white_vector.png b/res/icons/page_white_vector.png new file mode 100644 index 00000000..4a05955b Binary files /dev/null and b/res/icons/page_white_vector.png differ diff --git a/res/icons/page_white_visualstudio.png b/res/icons/page_white_visualstudio.png new file mode 100644 index 00000000..a0a433df Binary files /dev/null and b/res/icons/page_white_visualstudio.png differ diff --git a/res/icons/page_white_width.png b/res/icons/page_white_width.png new file mode 100644 index 00000000..1eb88094 Binary files /dev/null and b/res/icons/page_white_width.png differ diff --git a/res/icons/page_white_word.png b/res/icons/page_white_word.png new file mode 100644 index 00000000..ae8ecbf4 Binary files /dev/null and b/res/icons/page_white_word.png differ diff --git a/res/icons/page_white_world.png b/res/icons/page_white_world.png new file mode 100644 index 00000000..6ed2490e Binary files /dev/null and b/res/icons/page_white_world.png differ diff --git a/res/icons/page_white_wrench.png b/res/icons/page_white_wrench.png new file mode 100644 index 00000000..fecadd08 Binary files /dev/null and b/res/icons/page_white_wrench.png differ diff --git a/res/icons/page_white_zip.png b/res/icons/page_white_zip.png new file mode 100644 index 00000000..fd4bbccd Binary files /dev/null and b/res/icons/page_white_zip.png differ diff --git a/res/icons/page_word.png b/res/icons/page_word.png new file mode 100644 index 00000000..834cdfaf Binary files /dev/null and b/res/icons/page_word.png differ diff --git a/res/icons/page_world.png b/res/icons/page_world.png new file mode 100644 index 00000000..b8895dde Binary files /dev/null and b/res/icons/page_world.png differ diff --git a/res/icons/paintbrush.png b/res/icons/paintbrush.png new file mode 100644 index 00000000..a3ecf877 Binary files /dev/null and b/res/icons/paintbrush.png differ diff --git a/res/icons/paintcan.png b/res/icons/paintcan.png new file mode 100644 index 00000000..f82a8865 Binary files /dev/null and b/res/icons/paintcan.png differ diff --git a/res/icons/palette.png b/res/icons/palette.png new file mode 100644 index 00000000..73c5b3f2 Binary files /dev/null and b/res/icons/palette.png differ diff --git a/res/icons/paste_plain.png b/res/icons/paste_plain.png new file mode 100644 index 00000000..c0490eb7 Binary files /dev/null and b/res/icons/paste_plain.png differ diff --git a/res/icons/paste_word.png b/res/icons/paste_word.png new file mode 100644 index 00000000..f6b87f82 Binary files /dev/null and b/res/icons/paste_word.png differ diff --git a/res/icons/pencil.png b/res/icons/pencil.png new file mode 100644 index 00000000..0bfecd50 Binary files /dev/null and b/res/icons/pencil.png differ diff --git a/res/icons/pencil_add.png b/res/icons/pencil_add.png new file mode 100644 index 00000000..902bbe61 Binary files /dev/null and b/res/icons/pencil_add.png differ diff --git a/res/icons/pencil_delete.png b/res/icons/pencil_delete.png new file mode 100644 index 00000000..d8944e6e Binary files /dev/null and b/res/icons/pencil_delete.png differ diff --git a/res/icons/pencil_go.png b/res/icons/pencil_go.png new file mode 100644 index 00000000..937bded9 Binary files /dev/null and b/res/icons/pencil_go.png differ diff --git a/res/icons/phone.png b/res/icons/phone.png new file mode 100644 index 00000000..c39f162f Binary files /dev/null and b/res/icons/phone.png differ diff --git a/res/icons/phone_add.png b/res/icons/phone_add.png new file mode 100644 index 00000000..d3555e02 Binary files /dev/null and b/res/icons/phone_add.png differ diff --git a/res/icons/phone_delete.png b/res/icons/phone_delete.png new file mode 100644 index 00000000..bbe4f8ab Binary files /dev/null and b/res/icons/phone_delete.png differ diff --git a/res/icons/phone_sound.png b/res/icons/phone_sound.png new file mode 100644 index 00000000..7fdf1c58 Binary files /dev/null and b/res/icons/phone_sound.png differ diff --git a/res/icons/photo.png b/res/icons/photo.png new file mode 100644 index 00000000..6c2aaaaa Binary files /dev/null and b/res/icons/photo.png differ diff --git a/res/icons/photo_add.png b/res/icons/photo_add.png new file mode 100644 index 00000000..63cc355c Binary files /dev/null and b/res/icons/photo_add.png differ diff --git a/res/icons/photo_delete.png b/res/icons/photo_delete.png new file mode 100644 index 00000000..18b67df4 Binary files /dev/null and b/res/icons/photo_delete.png differ diff --git a/res/icons/photo_link.png b/res/icons/photo_link.png new file mode 100644 index 00000000..e6bb35fb Binary files /dev/null and b/res/icons/photo_link.png differ diff --git a/res/icons/photos.png b/res/icons/photos.png new file mode 100644 index 00000000..8836fe6c Binary files /dev/null and b/res/icons/photos.png differ diff --git a/res/icons/picture.png b/res/icons/picture.png new file mode 100644 index 00000000..4a158fef Binary files /dev/null and b/res/icons/picture.png differ diff --git a/res/icons/picture_add.png b/res/icons/picture_add.png new file mode 100644 index 00000000..d6d3f856 Binary files /dev/null and b/res/icons/picture_add.png differ diff --git a/res/icons/picture_delete.png b/res/icons/picture_delete.png new file mode 100644 index 00000000..cca9f535 Binary files /dev/null and b/res/icons/picture_delete.png differ diff --git a/res/icons/picture_edit.png b/res/icons/picture_edit.png new file mode 100644 index 00000000..9a70c349 Binary files /dev/null and b/res/icons/picture_edit.png differ diff --git a/res/icons/picture_empty.png b/res/icons/picture_empty.png new file mode 100644 index 00000000..abd2b9bb Binary files /dev/null and b/res/icons/picture_empty.png differ diff --git a/res/icons/picture_error.png b/res/icons/picture_error.png new file mode 100644 index 00000000..d41d90d6 Binary files /dev/null and b/res/icons/picture_error.png differ diff --git a/res/icons/picture_go.png b/res/icons/picture_go.png new file mode 100644 index 00000000..27c63c5a Binary files /dev/null and b/res/icons/picture_go.png differ diff --git a/res/icons/picture_key.png b/res/icons/picture_key.png new file mode 100644 index 00000000..667086c0 Binary files /dev/null and b/res/icons/picture_key.png differ diff --git a/res/icons/picture_link.png b/res/icons/picture_link.png new file mode 100644 index 00000000..42dca744 Binary files /dev/null and b/res/icons/picture_link.png differ diff --git a/res/icons/picture_save.png b/res/icons/picture_save.png new file mode 100644 index 00000000..777fb5d2 Binary files /dev/null and b/res/icons/picture_save.png differ diff --git a/res/icons/pictures.png b/res/icons/pictures.png new file mode 100644 index 00000000..d9591c13 Binary files /dev/null and b/res/icons/pictures.png differ diff --git a/res/icons/pilcrow.png b/res/icons/pilcrow.png new file mode 100644 index 00000000..95704fba Binary files /dev/null and b/res/icons/pilcrow.png differ diff --git a/res/icons/pill.png b/res/icons/pill.png new file mode 100644 index 00000000..f2bdef6b Binary files /dev/null and b/res/icons/pill.png differ diff --git a/res/icons/pill_add.png b/res/icons/pill_add.png new file mode 100644 index 00000000..ac9c2df6 Binary files /dev/null and b/res/icons/pill_add.png differ diff --git a/res/icons/pill_delete.png b/res/icons/pill_delete.png new file mode 100644 index 00000000..c61592e8 Binary files /dev/null and b/res/icons/pill_delete.png differ diff --git a/res/icons/pill_go.png b/res/icons/pill_go.png new file mode 100644 index 00000000..e5c07d41 Binary files /dev/null and b/res/icons/pill_go.png differ diff --git a/res/icons/play.png b/res/icons/play.png new file mode 100644 index 00000000..014b6c54 Binary files /dev/null and b/res/icons/play.png differ diff --git a/res/icons/plugin.png b/res/icons/plugin.png new file mode 100644 index 00000000..6187b15a Binary files /dev/null and b/res/icons/plugin.png differ diff --git a/res/icons/plugin_add.png b/res/icons/plugin_add.png new file mode 100644 index 00000000..ae43690e Binary files /dev/null and b/res/icons/plugin_add.png differ diff --git a/res/icons/plugin_delete.png b/res/icons/plugin_delete.png new file mode 100644 index 00000000..d9c3376d Binary files /dev/null and b/res/icons/plugin_delete.png differ diff --git a/res/icons/plugin_disabled.png b/res/icons/plugin_disabled.png new file mode 100644 index 00000000..f4f6be59 Binary files /dev/null and b/res/icons/plugin_disabled.png differ diff --git a/res/icons/plugin_edit.png b/res/icons/plugin_edit.png new file mode 100644 index 00000000..b6cb0ecf Binary files /dev/null and b/res/icons/plugin_edit.png differ diff --git a/res/icons/plugin_error.png b/res/icons/plugin_error.png new file mode 100644 index 00000000..cff65d7f Binary files /dev/null and b/res/icons/plugin_error.png differ diff --git a/res/icons/plugin_go.png b/res/icons/plugin_go.png new file mode 100644 index 00000000..41da9913 Binary files /dev/null and b/res/icons/plugin_go.png differ diff --git a/res/icons/plugin_link.png b/res/icons/plugin_link.png new file mode 100644 index 00000000..445c1886 Binary files /dev/null and b/res/icons/plugin_link.png differ diff --git a/res/icons/printer.png b/res/icons/printer.png new file mode 100644 index 00000000..a350d187 Binary files /dev/null and b/res/icons/printer.png differ diff --git a/res/icons/printer_add.png b/res/icons/printer_add.png new file mode 100644 index 00000000..d228d058 Binary files /dev/null and b/res/icons/printer_add.png differ diff --git a/res/icons/printer_delete.png b/res/icons/printer_delete.png new file mode 100644 index 00000000..1d8605f2 Binary files /dev/null and b/res/icons/printer_delete.png differ diff --git a/res/icons/printer_empty.png b/res/icons/printer_empty.png new file mode 100644 index 00000000..94e8c161 Binary files /dev/null and b/res/icons/printer_empty.png differ diff --git a/res/icons/printer_error.png b/res/icons/printer_error.png new file mode 100644 index 00000000..279ebb0e Binary files /dev/null and b/res/icons/printer_error.png differ diff --git a/res/icons/rainbow.png b/res/icons/rainbow.png new file mode 100644 index 00000000..5ede989a Binary files /dev/null and b/res/icons/rainbow.png differ diff --git a/res/icons/report.png b/res/icons/report.png new file mode 100644 index 00000000..779ad58e Binary files /dev/null and b/res/icons/report.png differ diff --git a/res/icons/report_add.png b/res/icons/report_add.png new file mode 100644 index 00000000..d5eac9bc Binary files /dev/null and b/res/icons/report_add.png differ diff --git a/res/icons/report_delete.png b/res/icons/report_delete.png new file mode 100644 index 00000000..dcce0b64 Binary files /dev/null and b/res/icons/report_delete.png differ diff --git a/res/icons/report_disk.png b/res/icons/report_disk.png new file mode 100644 index 00000000..1c856cd6 Binary files /dev/null and b/res/icons/report_disk.png differ diff --git a/res/icons/report_edit.png b/res/icons/report_edit.png new file mode 100644 index 00000000..c61a6d84 Binary files /dev/null and b/res/icons/report_edit.png differ diff --git a/res/icons/report_go.png b/res/icons/report_go.png new file mode 100644 index 00000000..f35a9793 Binary files /dev/null and b/res/icons/report_go.png differ diff --git a/res/icons/report_key.png b/res/icons/report_key.png new file mode 100644 index 00000000..90b758e8 Binary files /dev/null and b/res/icons/report_key.png differ diff --git a/res/icons/report_link.png b/res/icons/report_link.png new file mode 100644 index 00000000..23f2611e Binary files /dev/null and b/res/icons/report_link.png differ diff --git a/res/icons/report_magnify.png b/res/icons/report_magnify.png new file mode 100644 index 00000000..aeaa8895 Binary files /dev/null and b/res/icons/report_magnify.png differ diff --git a/res/icons/report_picture.png b/res/icons/report_picture.png new file mode 100644 index 00000000..3a9a7e5e Binary files /dev/null and b/res/icons/report_picture.png differ diff --git a/res/icons/report_user.png b/res/icons/report_user.png new file mode 100644 index 00000000..7766edd7 Binary files /dev/null and b/res/icons/report_user.png differ diff --git a/res/icons/report_word.png b/res/icons/report_word.png new file mode 100644 index 00000000..99513424 Binary files /dev/null and b/res/icons/report_word.png differ diff --git a/res/icons/resultset_first.png b/res/icons/resultset_first.png new file mode 100644 index 00000000..b03eaf8b Binary files /dev/null and b/res/icons/resultset_first.png differ diff --git a/res/icons/resultset_last.png b/res/icons/resultset_last.png new file mode 100644 index 00000000..8ec89478 Binary files /dev/null and b/res/icons/resultset_last.png differ diff --git a/res/icons/resultset_next.png b/res/icons/resultset_next.png new file mode 100644 index 00000000..e252606d Binary files /dev/null and b/res/icons/resultset_next.png differ diff --git a/res/icons/resultset_previous.png b/res/icons/resultset_previous.png new file mode 100644 index 00000000..18f9cc10 Binary files /dev/null and b/res/icons/resultset_previous.png differ diff --git a/res/icons/rosette.png b/res/icons/rosette.png new file mode 100644 index 00000000..f233bc77 Binary files /dev/null and b/res/icons/rosette.png differ diff --git a/res/icons/rss.png b/res/icons/rss.png new file mode 100644 index 00000000..1dc6ff30 Binary files /dev/null and b/res/icons/rss.png differ diff --git a/res/icons/rss_add.png b/res/icons/rss_add.png new file mode 100644 index 00000000..b590beb7 Binary files /dev/null and b/res/icons/rss_add.png differ diff --git a/res/icons/rss_delete.png b/res/icons/rss_delete.png new file mode 100644 index 00000000..9deb738d Binary files /dev/null and b/res/icons/rss_delete.png differ diff --git a/res/icons/rss_go.png b/res/icons/rss_go.png new file mode 100644 index 00000000..43a86bff Binary files /dev/null and b/res/icons/rss_go.png differ diff --git a/res/icons/rss_valid.png b/res/icons/rss_valid.png new file mode 100644 index 00000000..a6d0b0e8 Binary files /dev/null and b/res/icons/rss_valid.png differ diff --git a/res/icons/ruby.png b/res/icons/ruby.png new file mode 100644 index 00000000..f763a168 Binary files /dev/null and b/res/icons/ruby.png differ diff --git a/res/icons/ruby_add.png b/res/icons/ruby_add.png new file mode 100644 index 00000000..a2cd648f Binary files /dev/null and b/res/icons/ruby_add.png differ diff --git a/res/icons/ruby_delete.png b/res/icons/ruby_delete.png new file mode 100644 index 00000000..30022630 Binary files /dev/null and b/res/icons/ruby_delete.png differ diff --git a/res/icons/ruby_gear.png b/res/icons/ruby_gear.png new file mode 100644 index 00000000..4a10590b Binary files /dev/null and b/res/icons/ruby_gear.png differ diff --git a/res/icons/ruby_get.png b/res/icons/ruby_get.png new file mode 100644 index 00000000..f5203c7e Binary files /dev/null and b/res/icons/ruby_get.png differ diff --git a/res/icons/ruby_go.png b/res/icons/ruby_go.png new file mode 100644 index 00000000..d8d276e3 Binary files /dev/null and b/res/icons/ruby_go.png differ diff --git a/res/icons/ruby_key.png b/res/icons/ruby_key.png new file mode 100644 index 00000000..451cfebe Binary files /dev/null and b/res/icons/ruby_key.png differ diff --git a/res/icons/ruby_link.png b/res/icons/ruby_link.png new file mode 100644 index 00000000..bf4be526 Binary files /dev/null and b/res/icons/ruby_link.png differ diff --git a/res/icons/ruby_put.png b/res/icons/ruby_put.png new file mode 100644 index 00000000..e026323c Binary files /dev/null and b/res/icons/ruby_put.png differ diff --git a/res/icons/script.png b/res/icons/script.png new file mode 100644 index 00000000..0f9ed4d4 Binary files /dev/null and b/res/icons/script.png differ diff --git a/res/icons/script_add.png b/res/icons/script_add.png new file mode 100644 index 00000000..d650552d Binary files /dev/null and b/res/icons/script_add.png differ diff --git a/res/icons/script_code.png b/res/icons/script_code.png new file mode 100644 index 00000000..63fe6cef Binary files /dev/null and b/res/icons/script_code.png differ diff --git a/res/icons/script_code_red.png b/res/icons/script_code_red.png new file mode 100644 index 00000000..8fcf0f09 Binary files /dev/null and b/res/icons/script_code_red.png differ diff --git a/res/icons/script_delete.png b/res/icons/script_delete.png new file mode 100644 index 00000000..e6500ced Binary files /dev/null and b/res/icons/script_delete.png differ diff --git a/res/icons/script_edit.png b/res/icons/script_edit.png new file mode 100644 index 00000000..b4d31ce2 Binary files /dev/null and b/res/icons/script_edit.png differ diff --git a/res/icons/script_error.png b/res/icons/script_error.png new file mode 100644 index 00000000..04919548 Binary files /dev/null and b/res/icons/script_error.png differ diff --git a/res/icons/script_gear.png b/res/icons/script_gear.png new file mode 100644 index 00000000..56fcf84a Binary files /dev/null and b/res/icons/script_gear.png differ diff --git a/res/icons/script_go.png b/res/icons/script_go.png new file mode 100644 index 00000000..8e154e23 Binary files /dev/null and b/res/icons/script_go.png differ diff --git a/res/icons/script_key.png b/res/icons/script_key.png new file mode 100644 index 00000000..49bb24d7 Binary files /dev/null and b/res/icons/script_key.png differ diff --git a/res/icons/script_lightning.png b/res/icons/script_lightning.png new file mode 100644 index 00000000..b3fa18ce Binary files /dev/null and b/res/icons/script_lightning.png differ diff --git a/res/icons/script_link.png b/res/icons/script_link.png new file mode 100644 index 00000000..bdeb9852 Binary files /dev/null and b/res/icons/script_link.png differ diff --git a/res/icons/script_palette.png b/res/icons/script_palette.png new file mode 100644 index 00000000..6d46962d Binary files /dev/null and b/res/icons/script_palette.png differ diff --git a/res/icons/script_save.png b/res/icons/script_save.png new file mode 100644 index 00000000..36216d82 Binary files /dev/null and b/res/icons/script_save.png differ diff --git a/res/icons/server.png b/res/icons/server.png new file mode 100644 index 00000000..720a237c Binary files /dev/null and b/res/icons/server.png differ diff --git a/res/icons/server_add.png b/res/icons/server_add.png new file mode 100644 index 00000000..3f10a3a9 Binary files /dev/null and b/res/icons/server_add.png differ diff --git a/res/icons/server_chart.png b/res/icons/server_chart.png new file mode 100644 index 00000000..1128d3f3 Binary files /dev/null and b/res/icons/server_chart.png differ diff --git a/res/icons/server_compressed.png b/res/icons/server_compressed.png new file mode 100644 index 00000000..bf49fad9 Binary files /dev/null and b/res/icons/server_compressed.png differ diff --git a/res/icons/server_connect.png b/res/icons/server_connect.png new file mode 100644 index 00000000..49b26914 Binary files /dev/null and b/res/icons/server_connect.png differ diff --git a/res/icons/server_database.png b/res/icons/server_database.png new file mode 100644 index 00000000..b24e826c Binary files /dev/null and b/res/icons/server_database.png differ diff --git a/res/icons/server_delete.png b/res/icons/server_delete.png new file mode 100644 index 00000000..61e740fe Binary files /dev/null and b/res/icons/server_delete.png differ diff --git a/res/icons/server_edit.png b/res/icons/server_edit.png new file mode 100644 index 00000000..dc762537 Binary files /dev/null and b/res/icons/server_edit.png differ diff --git a/res/icons/server_error.png b/res/icons/server_error.png new file mode 100644 index 00000000..f6402563 Binary files /dev/null and b/res/icons/server_error.png differ diff --git a/res/icons/server_go.png b/res/icons/server_go.png new file mode 100644 index 00000000..540c8e26 Binary files /dev/null and b/res/icons/server_go.png differ diff --git a/res/icons/server_key.png b/res/icons/server_key.png new file mode 100644 index 00000000..ecd51742 Binary files /dev/null and b/res/icons/server_key.png differ diff --git a/res/icons/server_lightning.png b/res/icons/server_lightning.png new file mode 100644 index 00000000..b0f4e46c Binary files /dev/null and b/res/icons/server_lightning.png differ diff --git a/res/icons/server_link.png b/res/icons/server_link.png new file mode 100644 index 00000000..e8821dfd Binary files /dev/null and b/res/icons/server_link.png differ diff --git a/res/icons/server_uncompressed.png b/res/icons/server_uncompressed.png new file mode 100644 index 00000000..86e8325b Binary files /dev/null and b/res/icons/server_uncompressed.png differ diff --git a/res/icons/shading.png b/res/icons/shading.png new file mode 100644 index 00000000..09275f9c Binary files /dev/null and b/res/icons/shading.png differ diff --git a/res/icons/shape_align_bottom.png b/res/icons/shape_align_bottom.png new file mode 100644 index 00000000..55d26940 Binary files /dev/null and b/res/icons/shape_align_bottom.png differ diff --git a/res/icons/shape_align_center.png b/res/icons/shape_align_center.png new file mode 100644 index 00000000..efe9a98e Binary files /dev/null and b/res/icons/shape_align_center.png differ diff --git a/res/icons/shape_align_left.png b/res/icons/shape_align_left.png new file mode 100644 index 00000000..aaedc41b Binary files /dev/null and b/res/icons/shape_align_left.png differ diff --git a/res/icons/shape_align_middle.png b/res/icons/shape_align_middle.png new file mode 100644 index 00000000..d350dd88 Binary files /dev/null and b/res/icons/shape_align_middle.png differ diff --git a/res/icons/shape_align_right.png b/res/icons/shape_align_right.png new file mode 100644 index 00000000..ff556b6a Binary files /dev/null and b/res/icons/shape_align_right.png differ diff --git a/res/icons/shape_align_top.png b/res/icons/shape_align_top.png new file mode 100644 index 00000000..1181b43f Binary files /dev/null and b/res/icons/shape_align_top.png differ diff --git a/res/icons/shape_flip_horizontal.png b/res/icons/shape_flip_horizontal.png new file mode 100644 index 00000000..8667c81f Binary files /dev/null and b/res/icons/shape_flip_horizontal.png differ diff --git a/res/icons/shape_flip_vertical.png b/res/icons/shape_flip_vertical.png new file mode 100644 index 00000000..0bd66d19 Binary files /dev/null and b/res/icons/shape_flip_vertical.png differ diff --git a/res/icons/shape_group.png b/res/icons/shape_group.png new file mode 100644 index 00000000..bb2ff516 Binary files /dev/null and b/res/icons/shape_group.png differ diff --git a/res/icons/shape_handles.png b/res/icons/shape_handles.png new file mode 100644 index 00000000..ce27fe3a Binary files /dev/null and b/res/icons/shape_handles.png differ diff --git a/res/icons/shape_move_back.png b/res/icons/shape_move_back.png new file mode 100644 index 00000000..a216ffd3 Binary files /dev/null and b/res/icons/shape_move_back.png differ diff --git a/res/icons/shape_move_backwards.png b/res/icons/shape_move_backwards.png new file mode 100644 index 00000000..ee3f9b27 Binary files /dev/null and b/res/icons/shape_move_backwards.png differ diff --git a/res/icons/shape_move_forwards.png b/res/icons/shape_move_forwards.png new file mode 100644 index 00000000..cfe44932 Binary files /dev/null and b/res/icons/shape_move_forwards.png differ diff --git a/res/icons/shape_move_front.png b/res/icons/shape_move_front.png new file mode 100644 index 00000000..b4a4e3b7 Binary files /dev/null and b/res/icons/shape_move_front.png differ diff --git a/res/icons/shape_rotate_anticlockwise.png b/res/icons/shape_rotate_anticlockwise.png new file mode 100644 index 00000000..07a30206 Binary files /dev/null and b/res/icons/shape_rotate_anticlockwise.png differ diff --git a/res/icons/shape_rotate_clockwise.png b/res/icons/shape_rotate_clockwise.png new file mode 100644 index 00000000..b99db7d7 Binary files /dev/null and b/res/icons/shape_rotate_clockwise.png differ diff --git a/res/icons/shape_square.png b/res/icons/shape_square.png new file mode 100644 index 00000000..33af0460 Binary files /dev/null and b/res/icons/shape_square.png differ diff --git a/res/icons/shape_square_add.png b/res/icons/shape_square_add.png new file mode 100644 index 00000000..31edfce5 Binary files /dev/null and b/res/icons/shape_square_add.png differ diff --git a/res/icons/shape_square_delete.png b/res/icons/shape_square_delete.png new file mode 100644 index 00000000..ede912de Binary files /dev/null and b/res/icons/shape_square_delete.png differ diff --git a/res/icons/shape_square_edit.png b/res/icons/shape_square_edit.png new file mode 100644 index 00000000..d28dc6b1 Binary files /dev/null and b/res/icons/shape_square_edit.png differ diff --git a/res/icons/shape_square_error.png b/res/icons/shape_square_error.png new file mode 100644 index 00000000..0d0dcfa9 Binary files /dev/null and b/res/icons/shape_square_error.png differ diff --git a/res/icons/shape_square_go.png b/res/icons/shape_square_go.png new file mode 100644 index 00000000..5a2ad901 Binary files /dev/null and b/res/icons/shape_square_go.png differ diff --git a/res/icons/shape_square_key.png b/res/icons/shape_square_key.png new file mode 100644 index 00000000..c34b982a Binary files /dev/null and b/res/icons/shape_square_key.png differ diff --git a/res/icons/shape_square_link.png b/res/icons/shape_square_link.png new file mode 100644 index 00000000..b885fcc6 Binary files /dev/null and b/res/icons/shape_square_link.png differ diff --git a/res/icons/shape_ungroup.png b/res/icons/shape_ungroup.png new file mode 100644 index 00000000..3a6f369a Binary files /dev/null and b/res/icons/shape_ungroup.png differ diff --git a/res/icons/shield.png b/res/icons/shield.png new file mode 100644 index 00000000..3cb4e257 Binary files /dev/null and b/res/icons/shield.png differ diff --git a/res/icons/shield_add.png b/res/icons/shield_add.png new file mode 100644 index 00000000..e20a1b4a Binary files /dev/null and b/res/icons/shield_add.png differ diff --git a/res/icons/shield_delete.png b/res/icons/shield_delete.png new file mode 100644 index 00000000..22823a70 Binary files /dev/null and b/res/icons/shield_delete.png differ diff --git a/res/icons/shield_go.png b/res/icons/shield_go.png new file mode 100644 index 00000000..e9bd8522 Binary files /dev/null and b/res/icons/shield_go.png differ diff --git a/res/icons/sitemap.png b/res/icons/sitemap.png new file mode 100644 index 00000000..ca779f32 Binary files /dev/null and b/res/icons/sitemap.png differ diff --git a/res/icons/sitemap_color.png b/res/icons/sitemap_color.png new file mode 100644 index 00000000..c64582bc Binary files /dev/null and b/res/icons/sitemap_color.png differ diff --git a/res/icons/sound.png b/res/icons/sound.png new file mode 100644 index 00000000..6056d234 Binary files /dev/null and b/res/icons/sound.png differ diff --git a/res/icons/sound_add.png b/res/icons/sound_add.png new file mode 100644 index 00000000..965c503c Binary files /dev/null and b/res/icons/sound_add.png differ diff --git a/res/icons/sound_delete.png b/res/icons/sound_delete.png new file mode 100644 index 00000000..ab9577aa Binary files /dev/null and b/res/icons/sound_delete.png differ diff --git a/res/icons/sound_low.png b/res/icons/sound_low.png new file mode 100644 index 00000000..4d918633 Binary files /dev/null and b/res/icons/sound_low.png differ diff --git a/res/icons/sound_mute.png b/res/icons/sound_mute.png new file mode 100644 index 00000000..b652d2a7 Binary files /dev/null and b/res/icons/sound_mute.png differ diff --git a/res/icons/sound_none.png b/res/icons/sound_none.png new file mode 100644 index 00000000..b497ebd5 Binary files /dev/null and b/res/icons/sound_none.png differ diff --git a/res/icons/spellcheck.png b/res/icons/spellcheck.png new file mode 100644 index 00000000..ebc632d9 Binary files /dev/null and b/res/icons/spellcheck.png differ diff --git a/res/icons/sport_8ball.png b/res/icons/sport_8ball.png new file mode 100644 index 00000000..4f627b76 Binary files /dev/null and b/res/icons/sport_8ball.png differ diff --git a/res/icons/sport_basketball.png b/res/icons/sport_basketball.png new file mode 100644 index 00000000..f7a000b9 Binary files /dev/null and b/res/icons/sport_basketball.png differ diff --git a/res/icons/sport_football.png b/res/icons/sport_football.png new file mode 100644 index 00000000..199f0f7f Binary files /dev/null and b/res/icons/sport_football.png differ diff --git a/res/icons/sport_golf.png b/res/icons/sport_golf.png new file mode 100644 index 00000000..e21fa44c Binary files /dev/null and b/res/icons/sport_golf.png differ diff --git a/res/icons/sport_raquet.png b/res/icons/sport_raquet.png new file mode 100644 index 00000000..f5e0f0c2 Binary files /dev/null and b/res/icons/sport_raquet.png differ diff --git a/res/icons/sport_shuttlecock.png b/res/icons/sport_shuttlecock.png new file mode 100644 index 00000000..917287fa Binary files /dev/null and b/res/icons/sport_shuttlecock.png differ diff --git a/res/icons/sport_soccer.png b/res/icons/sport_soccer.png new file mode 100644 index 00000000..3eb1828b Binary files /dev/null and b/res/icons/sport_soccer.png differ diff --git a/res/icons/sport_tennis.png b/res/icons/sport_tennis.png new file mode 100644 index 00000000..e88a6efa Binary files /dev/null and b/res/icons/sport_tennis.png differ diff --git a/res/icons/star.png b/res/icons/star.png new file mode 100644 index 00000000..b88c8578 Binary files /dev/null and b/res/icons/star.png differ diff --git a/res/icons/status_away.png b/res/icons/status_away.png new file mode 100644 index 00000000..70bcbcca Binary files /dev/null and b/res/icons/status_away.png differ diff --git a/res/icons/status_busy.png b/res/icons/status_busy.png new file mode 100644 index 00000000..987c806f Binary files /dev/null and b/res/icons/status_busy.png differ diff --git a/res/icons/status_offline.png b/res/icons/status_offline.png new file mode 100644 index 00000000..a88261a6 Binary files /dev/null and b/res/icons/status_offline.png differ diff --git a/res/icons/status_online.png b/res/icons/status_online.png new file mode 100644 index 00000000..947bd4b6 Binary files /dev/null and b/res/icons/status_online.png differ diff --git a/res/icons/stop.png b/res/icons/stop.png new file mode 100644 index 00000000..0cfd5859 Binary files /dev/null and b/res/icons/stop.png differ diff --git a/res/icons/style.png b/res/icons/style.png new file mode 100644 index 00000000..81e41de7 Binary files /dev/null and b/res/icons/style.png differ diff --git a/res/icons/style_add.png b/res/icons/style_add.png new file mode 100644 index 00000000..e0369c6b Binary files /dev/null and b/res/icons/style_add.png differ diff --git a/res/icons/style_delete.png b/res/icons/style_delete.png new file mode 100644 index 00000000..640f187e Binary files /dev/null and b/res/icons/style_delete.png differ diff --git a/res/icons/style_edit.png b/res/icons/style_edit.png new file mode 100644 index 00000000..25bb5b67 Binary files /dev/null and b/res/icons/style_edit.png differ diff --git a/res/icons/style_go.png b/res/icons/style_go.png new file mode 100644 index 00000000..25d6181a Binary files /dev/null and b/res/icons/style_go.png differ diff --git a/res/icons/sum.png b/res/icons/sum.png new file mode 100644 index 00000000..fd7b32e4 Binary files /dev/null and b/res/icons/sum.png differ diff --git a/res/icons/tab.png b/res/icons/tab.png new file mode 100644 index 00000000..3d8207fd Binary files /dev/null and b/res/icons/tab.png differ diff --git a/res/icons/tab_add.png b/res/icons/tab_add.png new file mode 100644 index 00000000..d3b99364 Binary files /dev/null and b/res/icons/tab_add.png differ diff --git a/res/icons/tab_delete.png b/res/icons/tab_delete.png new file mode 100644 index 00000000..100da2f1 Binary files /dev/null and b/res/icons/tab_delete.png differ diff --git a/res/icons/tab_edit.png b/res/icons/tab_edit.png new file mode 100644 index 00000000..4c09c0fd Binary files /dev/null and b/res/icons/tab_edit.png differ diff --git a/res/icons/tab_go.png b/res/icons/tab_go.png new file mode 100644 index 00000000..844ce04b Binary files /dev/null and b/res/icons/tab_go.png differ diff --git a/res/icons/table.png b/res/icons/table.png new file mode 100644 index 00000000..abcd9368 Binary files /dev/null and b/res/icons/table.png differ diff --git a/res/icons/table_add.png b/res/icons/table_add.png new file mode 100644 index 00000000..2a3e5c4d Binary files /dev/null and b/res/icons/table_add.png differ diff --git a/res/icons/table_delete.png b/res/icons/table_delete.png new file mode 100644 index 00000000..b85916d9 Binary files /dev/null and b/res/icons/table_delete.png differ diff --git a/res/icons/table_edit.png b/res/icons/table_edit.png new file mode 100644 index 00000000..bfcb0249 Binary files /dev/null and b/res/icons/table_edit.png differ diff --git a/res/icons/table_error.png b/res/icons/table_error.png new file mode 100644 index 00000000..589e92b5 Binary files /dev/null and b/res/icons/table_error.png differ diff --git a/res/icons/table_gear.png b/res/icons/table_gear.png new file mode 100644 index 00000000..cfc2702a Binary files /dev/null and b/res/icons/table_gear.png differ diff --git a/res/icons/table_go.png b/res/icons/table_go.png new file mode 100644 index 00000000..0528dfa2 Binary files /dev/null and b/res/icons/table_go.png differ diff --git a/res/icons/table_key.png b/res/icons/table_key.png new file mode 100644 index 00000000..34e23e24 Binary files /dev/null and b/res/icons/table_key.png differ diff --git a/res/icons/table_lightning.png b/res/icons/table_lightning.png new file mode 100644 index 00000000..612612b5 Binary files /dev/null and b/res/icons/table_lightning.png differ diff --git a/res/icons/table_link.png b/res/icons/table_link.png new file mode 100644 index 00000000..decac8a6 Binary files /dev/null and b/res/icons/table_link.png differ diff --git a/res/icons/table_multiple.png b/res/icons/table_multiple.png new file mode 100644 index 00000000..d76448e3 Binary files /dev/null and b/res/icons/table_multiple.png differ diff --git a/res/icons/table_refresh.png b/res/icons/table_refresh.png new file mode 100644 index 00000000..ab92010c Binary files /dev/null and b/res/icons/table_refresh.png differ diff --git a/res/icons/table_relationship.png b/res/icons/table_relationship.png new file mode 100644 index 00000000..28b8505c Binary files /dev/null and b/res/icons/table_relationship.png differ diff --git a/res/icons/table_row_delete.png b/res/icons/table_row_delete.png new file mode 100644 index 00000000..54c69691 Binary files /dev/null and b/res/icons/table_row_delete.png differ diff --git a/res/icons/table_row_insert.png b/res/icons/table_row_insert.png new file mode 100644 index 00000000..ff5925ef Binary files /dev/null and b/res/icons/table_row_insert.png differ diff --git a/res/icons/table_save.png b/res/icons/table_save.png new file mode 100644 index 00000000..25b74d18 Binary files /dev/null and b/res/icons/table_save.png differ diff --git a/res/icons/table_sort.png b/res/icons/table_sort.png new file mode 100644 index 00000000..ed6785a6 Binary files /dev/null and b/res/icons/table_sort.png differ diff --git a/res/icons/tag.png b/res/icons/tag.png new file mode 100644 index 00000000..e093032a Binary files /dev/null and b/res/icons/tag.png differ diff --git a/res/icons/tag_blue.png b/res/icons/tag_blue.png new file mode 100644 index 00000000..9757fc6e Binary files /dev/null and b/res/icons/tag_blue.png differ diff --git a/res/icons/tag_blue_add.png b/res/icons/tag_blue_add.png new file mode 100644 index 00000000..f135248f Binary files /dev/null and b/res/icons/tag_blue_add.png differ diff --git a/res/icons/tag_blue_delete.png b/res/icons/tag_blue_delete.png new file mode 100644 index 00000000..9fbae672 Binary files /dev/null and b/res/icons/tag_blue_delete.png differ diff --git a/res/icons/tag_blue_edit.png b/res/icons/tag_blue_edit.png new file mode 100644 index 00000000..2a9f6266 Binary files /dev/null and b/res/icons/tag_blue_edit.png differ diff --git a/res/icons/tag_green.png b/res/icons/tag_green.png new file mode 100644 index 00000000..83ec984b Binary files /dev/null and b/res/icons/tag_green.png differ diff --git a/res/icons/tag_orange.png b/res/icons/tag_orange.png new file mode 100644 index 00000000..454a59f3 Binary files /dev/null and b/res/icons/tag_orange.png differ diff --git a/res/icons/tag_pink.png b/res/icons/tag_pink.png new file mode 100644 index 00000000..76e2296c Binary files /dev/null and b/res/icons/tag_pink.png differ diff --git a/res/icons/tag_purple.png b/res/icons/tag_purple.png new file mode 100644 index 00000000..ebaf0e87 Binary files /dev/null and b/res/icons/tag_purple.png differ diff --git a/res/icons/tag_red.png b/res/icons/tag_red.png new file mode 100644 index 00000000..6ebb37d2 Binary files /dev/null and b/res/icons/tag_red.png differ diff --git a/res/icons/tag_yellow.png b/res/icons/tag_yellow.png new file mode 100644 index 00000000..83d12924 Binary files /dev/null and b/res/icons/tag_yellow.png differ diff --git a/res/icons/telephone.png b/res/icons/telephone.png new file mode 100644 index 00000000..cecc436f Binary files /dev/null and b/res/icons/telephone.png differ diff --git a/res/icons/telephone_add.png b/res/icons/telephone_add.png new file mode 100644 index 00000000..5591cfc4 Binary files /dev/null and b/res/icons/telephone_add.png differ diff --git a/res/icons/telephone_delete.png b/res/icons/telephone_delete.png new file mode 100644 index 00000000..0013268e Binary files /dev/null and b/res/icons/telephone_delete.png differ diff --git a/res/icons/telephone_edit.png b/res/icons/telephone_edit.png new file mode 100644 index 00000000..bcf6d7ec Binary files /dev/null and b/res/icons/telephone_edit.png differ diff --git a/res/icons/telephone_error.png b/res/icons/telephone_error.png new file mode 100644 index 00000000..d3ec3a11 Binary files /dev/null and b/res/icons/telephone_error.png differ diff --git a/res/icons/telephone_go.png b/res/icons/telephone_go.png new file mode 100644 index 00000000..395c8fbf Binary files /dev/null and b/res/icons/telephone_go.png differ diff --git a/res/icons/telephone_key.png b/res/icons/telephone_key.png new file mode 100644 index 00000000..cef5dec4 Binary files /dev/null and b/res/icons/telephone_key.png differ diff --git a/res/icons/telephone_link.png b/res/icons/telephone_link.png new file mode 100644 index 00000000..ef1ee5dd Binary files /dev/null and b/res/icons/telephone_link.png differ diff --git a/res/icons/television.png b/res/icons/television.png new file mode 100644 index 00000000..1738a4f1 Binary files /dev/null and b/res/icons/television.png differ diff --git a/res/icons/television_add.png b/res/icons/television_add.png new file mode 100644 index 00000000..2baaad99 Binary files /dev/null and b/res/icons/television_add.png differ diff --git a/res/icons/television_delete.png b/res/icons/television_delete.png new file mode 100644 index 00000000..b9a58602 Binary files /dev/null and b/res/icons/television_delete.png differ diff --git a/res/icons/text_align_center.png b/res/icons/text_align_center.png new file mode 100644 index 00000000..57beb381 Binary files /dev/null and b/res/icons/text_align_center.png differ diff --git a/res/icons/text_align_justify.png b/res/icons/text_align_justify.png new file mode 100644 index 00000000..2fbdd692 Binary files /dev/null and b/res/icons/text_align_justify.png differ diff --git a/res/icons/text_align_left.png b/res/icons/text_align_left.png new file mode 100644 index 00000000..6c8fcc11 Binary files /dev/null and b/res/icons/text_align_left.png differ diff --git a/res/icons/text_align_right.png b/res/icons/text_align_right.png new file mode 100644 index 00000000..a1502571 Binary files /dev/null and b/res/icons/text_align_right.png differ diff --git a/res/icons/text_allcaps.png b/res/icons/text_allcaps.png new file mode 100644 index 00000000..280fd442 Binary files /dev/null and b/res/icons/text_allcaps.png differ diff --git a/res/icons/text_bold.png b/res/icons/text_bold.png new file mode 100644 index 00000000..889ae80e Binary files /dev/null and b/res/icons/text_bold.png differ diff --git a/res/icons/text_columns.png b/res/icons/text_columns.png new file mode 100644 index 00000000..97b2e035 Binary files /dev/null and b/res/icons/text_columns.png differ diff --git a/res/icons/text_dropcaps.png b/res/icons/text_dropcaps.png new file mode 100644 index 00000000..dd65786a Binary files /dev/null and b/res/icons/text_dropcaps.png differ diff --git a/res/icons/text_heading_1.png b/res/icons/text_heading_1.png new file mode 100644 index 00000000..9c122e91 Binary files /dev/null and b/res/icons/text_heading_1.png differ diff --git a/res/icons/text_heading_2.png b/res/icons/text_heading_2.png new file mode 100644 index 00000000..fbd87657 Binary files /dev/null and b/res/icons/text_heading_2.png differ diff --git a/res/icons/text_heading_3.png b/res/icons/text_heading_3.png new file mode 100644 index 00000000..c7836cf0 Binary files /dev/null and b/res/icons/text_heading_3.png differ diff --git a/res/icons/text_heading_4.png b/res/icons/text_heading_4.png new file mode 100644 index 00000000..4e929eaf Binary files /dev/null and b/res/icons/text_heading_4.png differ diff --git a/res/icons/text_heading_5.png b/res/icons/text_heading_5.png new file mode 100644 index 00000000..30cabebf Binary files /dev/null and b/res/icons/text_heading_5.png differ diff --git a/res/icons/text_heading_6.png b/res/icons/text_heading_6.png new file mode 100644 index 00000000..058170a2 Binary files /dev/null and b/res/icons/text_heading_6.png differ diff --git a/res/icons/text_horizontalrule.png b/res/icons/text_horizontalrule.png new file mode 100644 index 00000000..8dd1da1c Binary files /dev/null and b/res/icons/text_horizontalrule.png differ diff --git a/res/icons/text_indent.png b/res/icons/text_indent.png new file mode 100644 index 00000000..93645323 Binary files /dev/null and b/res/icons/text_indent.png differ diff --git a/res/icons/text_indent_remove.png b/res/icons/text_indent_remove.png new file mode 100644 index 00000000..1651b074 Binary files /dev/null and b/res/icons/text_indent_remove.png differ diff --git a/res/icons/text_italic.png b/res/icons/text_italic.png new file mode 100644 index 00000000..8482ac8c Binary files /dev/null and b/res/icons/text_italic.png differ diff --git a/res/icons/text_kerning.png b/res/icons/text_kerning.png new file mode 100644 index 00000000..377def64 Binary files /dev/null and b/res/icons/text_kerning.png differ diff --git a/res/icons/text_letter_omega.png b/res/icons/text_letter_omega.png new file mode 100644 index 00000000..5075ec6b Binary files /dev/null and b/res/icons/text_letter_omega.png differ diff --git a/res/icons/text_letterspacing.png b/res/icons/text_letterspacing.png new file mode 100644 index 00000000..41390f54 Binary files /dev/null and b/res/icons/text_letterspacing.png differ diff --git a/res/icons/text_linespacing.png b/res/icons/text_linespacing.png new file mode 100644 index 00000000..1a91cbdd Binary files /dev/null and b/res/icons/text_linespacing.png differ diff --git a/res/icons/text_list_bullets.png b/res/icons/text_list_bullets.png new file mode 100644 index 00000000..4a8672bd Binary files /dev/null and b/res/icons/text_list_bullets.png differ diff --git a/res/icons/text_list_numbers.png b/res/icons/text_list_numbers.png new file mode 100644 index 00000000..33b0b8df Binary files /dev/null and b/res/icons/text_list_numbers.png differ diff --git a/res/icons/text_lowercase.png b/res/icons/text_lowercase.png new file mode 100644 index 00000000..382a102e Binary files /dev/null and b/res/icons/text_lowercase.png differ diff --git a/res/icons/text_padding_bottom.png b/res/icons/text_padding_bottom.png new file mode 100644 index 00000000..4880c43a Binary files /dev/null and b/res/icons/text_padding_bottom.png differ diff --git a/res/icons/text_padding_left.png b/res/icons/text_padding_left.png new file mode 100644 index 00000000..b55482ee Binary files /dev/null and b/res/icons/text_padding_left.png differ diff --git a/res/icons/text_padding_right.png b/res/icons/text_padding_right.png new file mode 100644 index 00000000..106edae5 Binary files /dev/null and b/res/icons/text_padding_right.png differ diff --git a/res/icons/text_padding_top.png b/res/icons/text_padding_top.png new file mode 100644 index 00000000..c5c45b2d Binary files /dev/null and b/res/icons/text_padding_top.png differ diff --git a/res/icons/text_replace.png b/res/icons/text_replace.png new file mode 100644 index 00000000..877f82fe Binary files /dev/null and b/res/icons/text_replace.png differ diff --git a/res/icons/text_signature.png b/res/icons/text_signature.png new file mode 100644 index 00000000..c72fd808 Binary files /dev/null and b/res/icons/text_signature.png differ diff --git a/res/icons/text_smallcaps.png b/res/icons/text_smallcaps.png new file mode 100644 index 00000000..5b98a6e1 Binary files /dev/null and b/res/icons/text_smallcaps.png differ diff --git a/res/icons/text_strikethrough.png b/res/icons/text_strikethrough.png new file mode 100644 index 00000000..612058a7 Binary files /dev/null and b/res/icons/text_strikethrough.png differ diff --git a/res/icons/text_subscript.png b/res/icons/text_subscript.png new file mode 100644 index 00000000..1a2b0101 Binary files /dev/null and b/res/icons/text_subscript.png differ diff --git a/res/icons/text_superscript.png b/res/icons/text_superscript.png new file mode 100644 index 00000000..2fb2a7c7 Binary files /dev/null and b/res/icons/text_superscript.png differ diff --git a/res/icons/text_underline.png b/res/icons/text_underline.png new file mode 100644 index 00000000..90d0df28 Binary files /dev/null and b/res/icons/text_underline.png differ diff --git a/res/icons/text_uppercase.png b/res/icons/text_uppercase.png new file mode 100644 index 00000000..8dcc2dbb Binary files /dev/null and b/res/icons/text_uppercase.png differ diff --git a/res/icons/textfield.png b/res/icons/textfield.png new file mode 100644 index 00000000..d37e7304 Binary files /dev/null and b/res/icons/textfield.png differ diff --git a/res/icons/textfield_add.png b/res/icons/textfield_add.png new file mode 100644 index 00000000..204de723 Binary files /dev/null and b/res/icons/textfield_add.png differ diff --git a/res/icons/textfield_delete.png b/res/icons/textfield_delete.png new file mode 100644 index 00000000..c7bd58b2 Binary files /dev/null and b/res/icons/textfield_delete.png differ diff --git a/res/icons/textfield_key.png b/res/icons/textfield_key.png new file mode 100644 index 00000000..a9d5e4f8 Binary files /dev/null and b/res/icons/textfield_key.png differ diff --git a/res/icons/textfield_rename.png b/res/icons/textfield_rename.png new file mode 100644 index 00000000..4e3688ed Binary files /dev/null and b/res/icons/textfield_rename.png differ diff --git a/res/icons/thumb_down.png b/res/icons/thumb_down.png new file mode 100644 index 00000000..3c832d4c Binary files /dev/null and b/res/icons/thumb_down.png differ diff --git a/res/icons/thumb_up.png b/res/icons/thumb_up.png new file mode 100644 index 00000000..2bd16ccf Binary files /dev/null and b/res/icons/thumb_up.png differ diff --git a/res/icons/tick.png b/res/icons/tick.png new file mode 100644 index 00000000..a9925a06 Binary files /dev/null and b/res/icons/tick.png differ diff --git a/res/icons/time.png b/res/icons/time.png new file mode 100644 index 00000000..911da3f1 Binary files /dev/null and b/res/icons/time.png differ diff --git a/res/icons/time_add.png b/res/icons/time_add.png new file mode 100644 index 00000000..dcc45cb2 Binary files /dev/null and b/res/icons/time_add.png differ diff --git a/res/icons/time_delete.png b/res/icons/time_delete.png new file mode 100644 index 00000000..5bf8313c Binary files /dev/null and b/res/icons/time_delete.png differ diff --git a/res/icons/time_go.png b/res/icons/time_go.png new file mode 100644 index 00000000..d451ee06 Binary files /dev/null and b/res/icons/time_go.png differ diff --git a/res/icons/timeline_marker.png b/res/icons/timeline_marker.png new file mode 100644 index 00000000..a3fbddf8 Binary files /dev/null and b/res/icons/timeline_marker.png differ diff --git a/res/icons/transmit.png b/res/icons/transmit.png new file mode 100644 index 00000000..f54bf736 Binary files /dev/null and b/res/icons/transmit.png differ diff --git a/res/icons/transmit_add.png b/res/icons/transmit_add.png new file mode 100644 index 00000000..b7fd4e68 Binary files /dev/null and b/res/icons/transmit_add.png differ diff --git a/res/icons/transmit_blue.png b/res/icons/transmit_blue.png new file mode 100644 index 00000000..7b1142fc Binary files /dev/null and b/res/icons/transmit_blue.png differ diff --git a/res/icons/transmit_delete.png b/res/icons/transmit_delete.png new file mode 100644 index 00000000..3d72be2a Binary files /dev/null and b/res/icons/transmit_delete.png differ diff --git a/res/icons/transmit_edit.png b/res/icons/transmit_edit.png new file mode 100644 index 00000000..eb9a3dd5 Binary files /dev/null and b/res/icons/transmit_edit.png differ diff --git a/res/icons/transmit_error.png b/res/icons/transmit_error.png new file mode 100644 index 00000000..fd1d4499 Binary files /dev/null and b/res/icons/transmit_error.png differ diff --git a/res/icons/transmit_go.png b/res/icons/transmit_go.png new file mode 100644 index 00000000..10137e55 Binary files /dev/null and b/res/icons/transmit_go.png differ diff --git a/res/icons/tux.png b/res/icons/tux.png new file mode 100644 index 00000000..bbefe2ec Binary files /dev/null and b/res/icons/tux.png differ diff --git a/res/icons/user.png b/res/icons/user.png new file mode 100644 index 00000000..79f35ccb Binary files /dev/null and b/res/icons/user.png differ diff --git a/res/icons/user_add.png b/res/icons/user_add.png new file mode 100644 index 00000000..deae99bc Binary files /dev/null and b/res/icons/user_add.png differ diff --git a/res/icons/user_comment.png b/res/icons/user_comment.png new file mode 100644 index 00000000..e54ebeba Binary files /dev/null and b/res/icons/user_comment.png differ diff --git a/res/icons/user_delete.png b/res/icons/user_delete.png new file mode 100644 index 00000000..acbb5630 Binary files /dev/null and b/res/icons/user_delete.png differ diff --git a/res/icons/user_edit.png b/res/icons/user_edit.png new file mode 100644 index 00000000..c1974cda Binary files /dev/null and b/res/icons/user_edit.png differ diff --git a/res/icons/user_female.png b/res/icons/user_female.png new file mode 100644 index 00000000..7c71de03 Binary files /dev/null and b/res/icons/user_female.png differ diff --git a/res/icons/user_go.png b/res/icons/user_go.png new file mode 100644 index 00000000..0468cf08 Binary files /dev/null and b/res/icons/user_go.png differ diff --git a/res/icons/user_gray.png b/res/icons/user_gray.png new file mode 100644 index 00000000..8fd539e9 Binary files /dev/null and b/res/icons/user_gray.png differ diff --git a/res/icons/user_green.png b/res/icons/user_green.png new file mode 100644 index 00000000..30383c2d Binary files /dev/null and b/res/icons/user_green.png differ diff --git a/res/icons/user_orange.png b/res/icons/user_orange.png new file mode 100644 index 00000000..b818127d Binary files /dev/null and b/res/icons/user_orange.png differ diff --git a/res/icons/user_red.png b/res/icons/user_red.png new file mode 100644 index 00000000..c6f66e8b Binary files /dev/null and b/res/icons/user_red.png differ diff --git a/res/icons/user_suit.png b/res/icons/user_suit.png new file mode 100644 index 00000000..b3454e15 Binary files /dev/null and b/res/icons/user_suit.png differ diff --git a/res/icons/vcard.png b/res/icons/vcard.png new file mode 100644 index 00000000..c02f315d Binary files /dev/null and b/res/icons/vcard.png differ diff --git a/res/icons/vcard_add.png b/res/icons/vcard_add.png new file mode 100644 index 00000000..2a684538 Binary files /dev/null and b/res/icons/vcard_add.png differ diff --git a/res/icons/vcard_delete.png b/res/icons/vcard_delete.png new file mode 100644 index 00000000..b194b971 Binary files /dev/null and b/res/icons/vcard_delete.png differ diff --git a/res/icons/vcard_edit.png b/res/icons/vcard_edit.png new file mode 100644 index 00000000..ab0f6e73 Binary files /dev/null and b/res/icons/vcard_edit.png differ diff --git a/res/icons/vector.png b/res/icons/vector.png new file mode 100644 index 00000000..a1291c2d Binary files /dev/null and b/res/icons/vector.png differ diff --git a/res/icons/vector_add.png b/res/icons/vector_add.png new file mode 100644 index 00000000..988770f4 Binary files /dev/null and b/res/icons/vector_add.png differ diff --git a/res/icons/vector_delete.png b/res/icons/vector_delete.png new file mode 100644 index 00000000..ca139e0f Binary files /dev/null and b/res/icons/vector_delete.png differ diff --git a/res/icons/wand.png b/res/icons/wand.png new file mode 100644 index 00000000..44ccbf81 Binary files /dev/null and b/res/icons/wand.png differ diff --git a/res/icons/weather_clouds.png b/res/icons/weather_clouds.png new file mode 100644 index 00000000..3f73eaa1 Binary files /dev/null and b/res/icons/weather_clouds.png differ diff --git a/res/icons/weather_cloudy.png b/res/icons/weather_cloudy.png new file mode 100644 index 00000000..5856e1d0 Binary files /dev/null and b/res/icons/weather_cloudy.png differ diff --git a/res/icons/weather_lightning.png b/res/icons/weather_lightning.png new file mode 100644 index 00000000..1d42b367 Binary files /dev/null and b/res/icons/weather_lightning.png differ diff --git a/res/icons/weather_rain.png b/res/icons/weather_rain.png new file mode 100644 index 00000000..cb3d54d0 Binary files /dev/null and b/res/icons/weather_rain.png differ diff --git a/res/icons/weather_snow.png b/res/icons/weather_snow.png new file mode 100644 index 00000000..45bbdf19 Binary files /dev/null and b/res/icons/weather_snow.png differ diff --git a/res/icons/weather_sun.png b/res/icons/weather_sun.png new file mode 100644 index 00000000..0156c266 Binary files /dev/null and b/res/icons/weather_sun.png differ diff --git a/res/icons/webcam.png b/res/icons/webcam.png new file mode 100644 index 00000000..af71c306 Binary files /dev/null and b/res/icons/webcam.png differ diff --git a/res/icons/webcam_add.png b/res/icons/webcam_add.png new file mode 100644 index 00000000..f02fcfa9 Binary files /dev/null and b/res/icons/webcam_add.png differ diff --git a/res/icons/webcam_delete.png b/res/icons/webcam_delete.png new file mode 100644 index 00000000..bd6277f5 Binary files /dev/null and b/res/icons/webcam_delete.png differ diff --git a/res/icons/webcam_error.png b/res/icons/webcam_error.png new file mode 100644 index 00000000..2faa7067 Binary files /dev/null and b/res/icons/webcam_error.png differ diff --git a/res/icons/world.png b/res/icons/world.png new file mode 100644 index 00000000..68f21d30 Binary files /dev/null and b/res/icons/world.png differ diff --git a/res/icons/world_add.png b/res/icons/world_add.png new file mode 100644 index 00000000..6d0d7f74 Binary files /dev/null and b/res/icons/world_add.png differ diff --git a/res/icons/world_delete.png b/res/icons/world_delete.png new file mode 100644 index 00000000..ffcd1156 Binary files /dev/null and b/res/icons/world_delete.png differ diff --git a/res/icons/world_edit.png b/res/icons/world_edit.png new file mode 100644 index 00000000..00794d40 Binary files /dev/null and b/res/icons/world_edit.png differ diff --git a/res/icons/world_go.png b/res/icons/world_go.png new file mode 100644 index 00000000..aee9c97f Binary files /dev/null and b/res/icons/world_go.png differ diff --git a/res/icons/world_link.png b/res/icons/world_link.png new file mode 100644 index 00000000..b8edc126 Binary files /dev/null and b/res/icons/world_link.png differ diff --git a/res/icons/wrench.png b/res/icons/wrench.png new file mode 100644 index 00000000..5c8213fe Binary files /dev/null and b/res/icons/wrench.png differ diff --git a/res/icons/wrench_orange.png b/res/icons/wrench_orange.png new file mode 100644 index 00000000..565a9330 Binary files /dev/null and b/res/icons/wrench_orange.png differ diff --git a/res/icons/xhtml.png b/res/icons/xhtml.png new file mode 100644 index 00000000..da5dbf20 Binary files /dev/null and b/res/icons/xhtml.png differ diff --git a/res/icons/xhtml_add.png b/res/icons/xhtml_add.png new file mode 100644 index 00000000..bbaf784f Binary files /dev/null and b/res/icons/xhtml_add.png differ diff --git a/res/icons/xhtml_delete.png b/res/icons/xhtml_delete.png new file mode 100644 index 00000000..157b5201 Binary files /dev/null and b/res/icons/xhtml_delete.png differ diff --git a/res/icons/xhtml_go.png b/res/icons/xhtml_go.png new file mode 100644 index 00000000..43cf8144 Binary files /dev/null and b/res/icons/xhtml_go.png differ diff --git a/res/icons/xhtml_valid.png b/res/icons/xhtml_valid.png new file mode 100644 index 00000000..d2e1cfbe Binary files /dev/null and b/res/icons/xhtml_valid.png differ diff --git a/res/icons/zoom.png b/res/icons/zoom.png new file mode 100644 index 00000000..908612e3 Binary files /dev/null and b/res/icons/zoom.png differ diff --git a/res/icons/zoom_in.png b/res/icons/zoom_in.png new file mode 100644 index 00000000..cdf0a52f Binary files /dev/null and b/res/icons/zoom_in.png differ diff --git a/res/icons/zoom_out.png b/res/icons/zoom_out.png new file mode 100644 index 00000000..07bf98a7 Binary files /dev/null and b/res/icons/zoom_out.png differ diff --git a/res/images/Busy.gif b/res/images/Busy.gif new file mode 100644 index 00000000..c69e9372 Binary files /dev/null and b/res/images/Busy.gif differ diff --git a/res/images/Construction.gif b/res/images/Construction.gif new file mode 100644 index 00000000..d64d9b79 Binary files /dev/null and b/res/images/Construction.gif differ diff --git a/res/images/Header.png b/res/images/Header.png new file mode 100644 index 00000000..3622bc48 Binary files /dev/null and b/res/images/Header.png differ diff --git a/res/images/HeaderIcon_MetaInfo.png b/res/images/HeaderIcon_MetaInfo.png new file mode 100644 index 00000000..35436438 Binary files /dev/null and b/res/images/HeaderIcon_MetaInfo.png differ diff --git a/res/images/Label.png b/res/images/Label.png new file mode 100644 index 00000000..d5746e20 Binary files /dev/null and b/res/images/Label.png differ diff --git a/res/images/Loading.gif b/res/images/Loading.gif new file mode 100644 index 00000000..62419472 Binary files /dev/null and b/res/images/Loading.gif differ diff --git a/res/images/Loading2.gif b/res/images/Loading2.gif new file mode 100644 index 00000000..d84f6537 Binary files /dev/null and b/res/images/Loading2.gif differ diff --git a/res/images/Logo.png b/res/images/Logo.png new file mode 100644 index 00000000..8d53a6fe Binary files /dev/null and b/res/images/Logo.png differ diff --git a/res/images/Splash.png b/res/images/Splash.png new file mode 100644 index 00000000..8182ce69 Binary files /dev/null and b/res/images/Splash.png differ diff --git a/res/images/Splash2.png b/res/images/Splash2.png new file mode 100644 index 00000000..a91c139e Binary files /dev/null and b/res/images/Splash2.png differ diff --git a/res/images/Thumb.png b/res/images/Thumb.png new file mode 100644 index 00000000..ac2ad3f7 Binary files /dev/null and b/res/images/Thumb.png differ diff --git a/res/sounds/uuaarrgh.wav b/res/sounds/uuaarrgh.wav new file mode 100644 index 00000000..a26a3421 Binary files /dev/null and b/res/sounds/uuaarrgh.wav differ diff --git a/res/tools/MAC.exe b/res/tools/MAC.exe new file mode 100644 index 00000000..b7a292b7 Binary files /dev/null and b/res/tools/MAC.exe differ diff --git a/res/tools/alac.exe b/res/tools/alac.exe new file mode 100644 index 00000000..e7662b51 Binary files /dev/null and b/res/tools/alac.exe differ diff --git a/res/tools/faad.exe b/res/tools/faad.exe new file mode 100644 index 00000000..d3defe1f Binary files /dev/null and b/res/tools/faad.exe differ diff --git a/res/tools/flac.exe b/res/tools/flac.exe new file mode 100644 index 00000000..def7f8a2 Binary files /dev/null and b/res/tools/flac.exe differ diff --git a/res/tools/gpgv.exe b/res/tools/gpgv.exe new file mode 100644 index 00000000..3b2800d9 Binary files /dev/null and b/res/tools/gpgv.exe differ diff --git a/res/tools/lame.exe b/res/tools/lame.exe new file mode 100644 index 00000000..67986b4b Binary files /dev/null and b/res/tools/lame.exe differ diff --git a/res/tools/mediainfo_icl11.exe b/res/tools/mediainfo_icl11.exe new file mode 100644 index 00000000..3c5554e7 Binary files /dev/null and b/res/tools/mediainfo_icl11.exe differ diff --git a/res/tools/mediainfo_msvc9.exe b/res/tools/mediainfo_msvc9.exe new file mode 100644 index 00000000..c8eec8d4 Binary files /dev/null and b/res/tools/mediainfo_msvc9.exe differ diff --git a/res/tools/mpcdec.exe b/res/tools/mpcdec.exe new file mode 100644 index 00000000..1675124a Binary files /dev/null and b/res/tools/mpcdec.exe differ diff --git a/res/tools/mpg123.exe b/res/tools/mpg123.exe new file mode 100644 index 00000000..c1d04b18 Binary files /dev/null and b/res/tools/mpg123.exe differ diff --git a/res/tools/oggdec.exe b/res/tools/oggdec.exe new file mode 100644 index 00000000..c5ee9055 Binary files /dev/null and b/res/tools/oggdec.exe differ diff --git a/res/tools/oggenc2_gen.exe b/res/tools/oggenc2_gen.exe new file mode 100644 index 00000000..be76fd9a Binary files /dev/null and b/res/tools/oggenc2_gen.exe differ diff --git a/res/tools/oggenc2_p4.exe b/res/tools/oggenc2_p4.exe new file mode 100644 index 00000000..e30e429c Binary files /dev/null and b/res/tools/oggenc2_p4.exe differ diff --git a/res/tools/selfdelete.exe b/res/tools/selfdelete.exe new file mode 100644 index 00000000..4df039a8 Binary files /dev/null and b/res/tools/selfdelete.exe differ diff --git a/res/tools/shorten.exe b/res/tools/shorten.exe new file mode 100644 index 00000000..04fa97a8 Binary files /dev/null and b/res/tools/shorten.exe differ diff --git a/res/tools/speexdec.exe b/res/tools/speexdec.exe new file mode 100644 index 00000000..ea46ecec Binary files /dev/null and b/res/tools/speexdec.exe differ diff --git a/res/tools/takc.exe b/res/tools/takc.exe new file mode 100644 index 00000000..0fb71d14 Binary files /dev/null and b/res/tools/takc.exe differ diff --git a/res/tools/ttaenc.exe b/res/tools/ttaenc.exe new file mode 100644 index 00000000..598e21d1 Binary files /dev/null and b/res/tools/ttaenc.exe differ diff --git a/res/tools/valdec.exe b/res/tools/valdec.exe new file mode 100644 index 00000000..d310fa60 Binary files /dev/null and b/res/tools/valdec.exe differ diff --git a/res/tools/volumax.exe b/res/tools/volumax.exe new file mode 100644 index 00000000..77ede9b7 Binary files /dev/null and b/res/tools/volumax.exe differ diff --git a/res/tools/wget.exe b/res/tools/wget.exe new file mode 100644 index 00000000..a4e8ed9c Binary files /dev/null and b/res/tools/wget.exe differ diff --git a/res/tools/wupdate.exe b/res/tools/wupdate.exe new file mode 100644 index 00000000..78071da8 Binary files /dev/null and b/res/tools/wupdate.exe differ diff --git a/res/tools/wvunpack.exe b/res/tools/wvunpack.exe new file mode 100644 index 00000000..6b1a3700 Binary files /dev/null and b/res/tools/wvunpack.exe differ diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp new file mode 100644 index 00000000..ea5ceded --- /dev/null +++ b/src/Dialog_MainWindow.cpp @@ -0,0 +1,500 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Dialog_MainWindow.h" + +//LameXP includes +#include "Global.h" +#include "Resource.h" +#include "Dialog_WorkingBanner.h" +#include "Dialog_MetaInfo.h" +#include "Thread_FileAnalyzer.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//Win32 includes +#include + +//////////////////////////////////////////////////////////// +// Constructor +//////////////////////////////////////////////////////////// + +MainWindow::MainWindow(QWidget *parent) +: QMainWindow(parent) +{ + //Init the dialog, from the .ui file + setupUi(this); + + //Register meta types + qRegisterMetaType("AudioFileModel"); + + //Update window title + if(lamexp_version_demo()) + { + setWindowTitle(windowTitle().append(" [DEMO VERSION]")); + } + + //Enabled main buttons + connect(buttonAbout, SIGNAL(clicked()), this, SLOT(aboutButtonClicked())); + connect(buttonStart, SIGNAL(clicked()), this, SLOT(encodeButtonClicked())); + + //Setup tab widget + tabWidget->setCurrentIndex(0); + connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabPageChanged(int))); + + //Setup "Source" tab + m_fileListModel = new FileListModel(); + sourceFileView->setModel(m_fileListModel); + sourceFileView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents); + sourceFileView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); + connect(buttonAddFiles, SIGNAL(clicked()), this, SLOT(addFilesButtonClicked())); + connect(buttonRemoveFile, SIGNAL(clicked()), this, SLOT(removeFileButtonClicked())); + connect(buttonClearFiles, SIGNAL(clicked()), this, SLOT(clearFilesButtonClicked())); + connect(buttonFileUp, SIGNAL(clicked()), this, SLOT(fileUpButtonClicked())); + connect(buttonFileDown, SIGNAL(clicked()), this, SLOT(fileDownButtonClicked())); + connect(buttonEditMeta, SIGNAL(clicked()), this, SLOT(editMetaButtonClicked())); + + //Setup "Output" tab + m_fileSystemModel = new QFileSystemModel(); + m_fileSystemModel->setFilter(QDir::Dirs | QDir::NoDotAndDotDot); + m_fileSystemModel->setRootPath(m_fileSystemModel->rootPath()); + outputFolderView->setModel(m_fileSystemModel); + outputFolderView->header()->setStretchLastSection(true); + outputFolderView->header()->hideSection(1); + outputFolderView->header()->hideSection(2); + outputFolderView->header()->hideSection(3); + outputFolderView->setHeaderHidden(true); + outputFolderView->setAnimated(true); + connect(outputFolderView, SIGNAL(clicked(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex))); + outputFolderView->setCurrentIndex(m_fileSystemModel->index(QDesktopServices::storageLocation(QDesktopServices::MusicLocation))); + outputFolderViewClicked(outputFolderView->currentIndex()); + connect(buttonMakeFolder, SIGNAL(clicked()), this, SLOT(makeFolderButtonClicked())); + connect(buttonGotoHome, SIGNAL(clicked()), SLOT(gotoHomeFolderButtonClicked())); + connect(buttonGotoDesktop, SIGNAL(clicked()), this, SLOT(gotoDesktopButtonClicked())); + connect(buttonGotoMusic, SIGNAL(clicked()), this, SLOT(gotoMusicFolderButtonClicked())); + + //Activate file menu actions + connect(actionOpenFolder, SIGNAL(triggered()), this, SLOT(openFolderActionActivated())); + + //Activate view menu actions + m_tabActionGroup = new QActionGroup(this); + m_tabActionGroup->addAction(actionSourceFiles); + m_tabActionGroup->addAction(actionOutputDirectory); + m_tabActionGroup->addAction(actionCompression); + m_tabActionGroup->addAction(actionMetaData); + m_tabActionGroup->addAction(actionAdvancedOptions); + actionSourceFiles->setChecked(true); + connect(m_tabActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(tabActionActivated(QAction*))); + + //Activate help menu actions + connect(actionCheckUpdates, SIGNAL(triggered()), this, SLOT(checkUpdatesActionActivated())); + connect(actionVisitHomepage, SIGNAL(triggered()), this, SLOT(visitHomepageActionActivated())); + + //Center window in screen + QRect desktopRect = QApplication::desktop()->screenGeometry(); + QRect thisRect = this->geometry(); + move((desktopRect.width() - thisRect.width()) / 2, (desktopRect.height() - thisRect.height()) / 2); + setMinimumSize(thisRect.width(), thisRect.height()); + + //Create banner + m_banner = new WorkingBanner(this); +} + +//////////////////////////////////////////////////////////// +// Destructor +//////////////////////////////////////////////////////////// + +MainWindow::~MainWindow(void) +{ + LAMEXP_DELETE(m_tabActionGroup); + LAMEXP_DELETE(m_fileListModel); + LAMEXP_DELETE(m_banner); +} + +//////////////////////////////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////////////////////////////// + +/*NONE*/ + +//////////////////////////////////////////////////////////// +// Slots +//////////////////////////////////////////////////////////// + +/* + * About button + */ +void MainWindow::aboutButtonClicked(void) +{ + QString aboutText; + + aboutText += "LameXP - Audio Encoder Front-end
"; + aboutText += "Copyright (C) 2004-2010 LoRd_MuldeR <MuldeR2@GMX.de>
"; + aboutText += QString().sprintf("Version %d.%02d %s, Build %d [%s]

", lamexp_version_major(), lamexp_version_minor(), lamexp_version_release(), lamexp_version_build(), lamexp_version_date().toString(Qt::ISODate).toLatin1().constData()); + aboutText += "Please visit http://mulder.dummwiedeutsch.de/ for news and updates!


"; + aboutText += "This program is free software; you can redistribute it and/or
"; + aboutText += "modify it under the terms of the GNU General Public License
"; + aboutText += "as published by the Free Software Foundation; either version 2
"; + aboutText += "of the License, or (at your option) any later version.

"; + aboutText += "This program is distributed in the hope that it will be useful,
"; + aboutText += "but WITHOUT ANY WARRANTY; without even the implied warranty of
"; + aboutText += "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
"; + aboutText += "GNU General Public License for more details.

"; + aboutText += "You should have received a copy of the GNU General Public License
"; + aboutText += "along with this program; if not, write to the Free Software
"; + aboutText += "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


"; + aboutText += "This software uses the 'slick' icon set by http://www.famfamfam.com/.
"; + aboutText += "Released under the Creative Commons Attribution 2.5 License.
"; + + QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); + PlaySound(MAKEINTRESOURCE(IDR_WAVE_ABOUT), GetModuleHandle(NULL), SND_RESOURCE | SND_SYNC); + QApplication::restoreOverrideCursor(); + + while(1) + { + switch(QMessageBox::information(this, "About LameXP", aboutText, " More about... ", " About Qt... ", " Discard ")) + { + case 0: + { + QString moreAboutText; + moreAboutText += "The following third-party software is used in LameXP:

"; + moreAboutText += "LAME - OpenSource mp3 Encoder
Released under the terms of the GNU Leser General Public License.
http://lame.sourceforge.net/

"; + moreAboutText += "OggEnc - Ogg Vorbis Encoder
Completely open and patent-free audio encoding technology.
http://www.vorbis.com/

"; + moreAboutText += "Nero AAC reference MPEG-4 Encoder
Freeware state-of-the-art HE-AAC encoder with 2-Pass support.
http://www.nero.com/eng/technologies-aac-codec.html
"; + QMessageBox::information(this, "About third-party tools", moreAboutText, "Discard"); + break; + } + case 1: + QMessageBox::aboutQt(this); + break; + default: + return; + } + } +} + +/* + * Encode button + */ +void MainWindow::encodeButtonClicked(void) +{ + QMessageBox::warning(this, "LameXP", "Not implemented yet, please try again with a later version!"); +} + +/* + * Add file(s) button + */ +void MainWindow::addFilesButtonClicked(void) +{ + tabWidget->setCurrentIndex(0); + QStringList selectedFiles = QFileDialog::getOpenFileNames(this, "Add file(s)", QString(), "All supported files (*.*)"); + + if(selectedFiles.isEmpty()) + { + return; + } + + FileAnalyzer *analyzer = new FileAnalyzer(selectedFiles); + connect(analyzer, SIGNAL(fileSelected(QString)), m_banner, SLOT(setText(QString)), Qt::QueuedConnection); + connect(analyzer, SIGNAL(fileAnalyzed(AudioFileModel)), m_fileListModel, SLOT(addFile(AudioFileModel)), Qt::QueuedConnection); + + m_banner->show("Adding file(s), please wait...", analyzer); + LAMEXP_DELETE(analyzer); + + sourceFileView->scrollToBottom(); + m_banner->close(); +} + +/* + * Open folder action + */ +void MainWindow::openFolderActionActivated(void) +{ + QString selectedFolder = QFileDialog::getExistingDirectory(this, "Add folder", QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); + + if(!selectedFolder.isEmpty()) + { + QDir sourceDir(selectedFolder); + QFileInfoList fileInfoList = sourceDir.entryInfoList(QDir::Files); + QStringList fileList; + + while(!fileInfoList.isEmpty()) + { + fileList << fileInfoList.takeFirst().absoluteFilePath(); + } + + FileAnalyzer *analyzer = new FileAnalyzer(fileList); + connect(analyzer, SIGNAL(fileSelected(QString)), m_banner, SLOT(setText(QString)), Qt::QueuedConnection); + connect(analyzer, SIGNAL(fileAnalyzed(AudioFileModel)), m_fileListModel, SLOT(addFile(AudioFileModel)), Qt::QueuedConnection); + + m_banner->show("Adding folder, please wait...", analyzer); + LAMEXP_DELETE(analyzer); + + sourceFileView->scrollToBottom(); + m_banner->close(); + } +} + +/* + * Remove file button + */ +void MainWindow::removeFileButtonClicked(void) +{ + if(sourceFileView->currentIndex().isValid()) + { + int iRow = sourceFileView->currentIndex().row(); + m_fileListModel->removeFile(sourceFileView->currentIndex()); + sourceFileView->selectRow(iRow < m_fileListModel->rowCount() ? iRow : m_fileListModel->rowCount()-1); + } +} + +/* + * Clear files button + */ +void MainWindow::clearFilesButtonClicked(void) +{ + m_fileListModel->clearFiles(); +} + +/* + * Move file up button + */ +void MainWindow::fileUpButtonClicked(void) +{ + if(sourceFileView->currentIndex().isValid()) + { + int iRow = sourceFileView->currentIndex().row() - 1; + m_fileListModel->moveFile(sourceFileView->currentIndex(), -1); + sourceFileView->selectRow(iRow >= 0 ? iRow : 0); + } +} + +/* + * Move file down button + */ +void MainWindow::fileDownButtonClicked(void) +{ + if(sourceFileView->currentIndex().isValid()) + { + int iRow = sourceFileView->currentIndex().row() + 1; + m_fileListModel->moveFile(sourceFileView->currentIndex(), 1); + sourceFileView->selectRow(iRow < m_fileListModel->rowCount() ? iRow : m_fileListModel->rowCount()-1); + } +} + +/* + * Edit meta button + */ +void MainWindow::editMetaButtonClicked(void) +{ + int iResult = 0; + MetaInfoDialog *metaInfoDialog = new MetaInfoDialog(this); + QModelIndex index = sourceFileView->currentIndex(); + + while(index.isValid()) + { + if(iResult > 0) + { + index = m_fileListModel->index(index.row() + 1, index.column()); + sourceFileView->selectRow(index.row()); + } + if(iResult < 0) + { + index = m_fileListModel->index(index.row() - 1, index.column()); + sourceFileView->selectRow(index.row()); + } + + AudioFileModel file = m_fileListModel->getFile(index); + iResult = metaInfoDialog->exec(file, index.row() > 0, index.row() < m_fileListModel->rowCount() - 1); + m_fileListModel->setFile(index, file); + + if(!iResult) break; + } + + LAMEXP_DELETE(metaInfoDialog); +} + +/* + * Tab page changed + */ +void MainWindow::tabPageChanged(int idx) +{ + switch(idx) + { + case 0: + actionSourceFiles->setChecked(true); + break; + case 1: + actionOutputDirectory->setChecked(true); + break; + case 2: + actionCompression->setChecked(true); + break; + case 3: + actionMetaData->setChecked(true); + break; + case 4: + actionAdvancedOptions->setChecked(true); + break; + } +} + +/* + * Tab action triggered + */ +void MainWindow::tabActionActivated(QAction *action) +{ + int idx = -1; + + if(actionSourceFiles == action) idx = 0; + else if(actionOutputDirectory == action) idx = 1; + else if(actionCompression == action) idx = 2; + else if(actionMetaData == action) idx = 3; + else if(actionAdvancedOptions == action) idx = 4; + + if(idx >= 0) + { + tabWidget->setCurrentIndex(idx); + } +} + +/* + * Output folder changed + */ +void MainWindow::outputFolderViewClicked(const QModelIndex &index) +{ + QString selectedDir = m_fileSystemModel->filePath(index); + if(selectedDir.length() < 3) selectedDir.append(QDir::separator()); + outputFolderLabel->setText(selectedDir); +} + + +/* + * Goto desktop button + */ +void MainWindow::gotoDesktopButtonClicked(void) +{ + outputFolderView->setCurrentIndex(m_fileSystemModel->index(QDesktopServices::storageLocation(QDesktopServices::DesktopLocation))); + outputFolderViewClicked(outputFolderView->currentIndex()); + outputFolderView->setFocus(); +} + +/* + * Goto home folder button + */ +void MainWindow::gotoHomeFolderButtonClicked(void) +{ + outputFolderView->setCurrentIndex(m_fileSystemModel->index(QDesktopServices::storageLocation(QDesktopServices::HomeLocation))); + outputFolderViewClicked(outputFolderView->currentIndex()); + outputFolderView->setFocus(); +} + +/* + * Goto music folder button + */ +void MainWindow::gotoMusicFolderButtonClicked(void) +{ + outputFolderView->setCurrentIndex(m_fileSystemModel->index(QDesktopServices::storageLocation(QDesktopServices::MusicLocation))); + outputFolderViewClicked(outputFolderView->currentIndex()); + outputFolderView->setFocus(); +} + +/* + * Make folder button + */ +void MainWindow::makeFolderButtonClicked(void) +{ + QDir basePath(m_fileSystemModel->filePath(outputFolderView->currentIndex())); + + bool bApplied = true; + QString folderName = QInputDialog::getText(this, "New Folder", "Enter the name of the new folder:", QLineEdit::Normal, "New folder", &bApplied, Qt::WindowStaysOnTopHint).simplified(); + + if(bApplied) + { + folderName.remove(":", Qt::CaseInsensitive); + folderName.remove("/", Qt::CaseInsensitive); + folderName.remove("\\", Qt::CaseInsensitive); + folderName.remove("?", Qt::CaseInsensitive); + folderName.remove("*", Qt::CaseInsensitive); + folderName.remove("<", Qt::CaseInsensitive); + folderName.remove(">", Qt::CaseInsensitive); + + int i = 1; + QString newFolder = folderName; + + while(basePath.exists(newFolder)) + { + newFolder = QString(folderName).append(QString().sprintf(" (%d)", ++i)); + } + + if(basePath.mkdir(newFolder)) + { + QDir createdDir = basePath; + if(createdDir.cd(newFolder)) + { + outputFolderView->setCurrentIndex(m_fileSystemModel->index(createdDir.absolutePath())); + outputFolderViewClicked(outputFolderView->currentIndex()); + outputFolderView->setFocus(); + } + } + else + { + QMessageBox::warning(this, "Failed to create folder", QString("The folder '%1' could not be created!").arg(newFolder)); + } + } +} + + +/* + * Visit homepage action + */ +void MainWindow::visitHomepageActionActivated(void) +{ + QDesktopServices::openUrl(QUrl("http://mulder.dummwiedeutsch.de/")); +} + +/* + * Check for updates action + */ +void MainWindow::checkUpdatesActionActivated(void) +{ + m_banner->show("Checking for updates, please be patient..."); + + for(int i = 0; i < 300; i++) + { + QApplication::processEvents(); + Sleep(5); + } + + m_banner->close(); + + QMessageBox::information(this, "Update Check", "Your version of LameXP is still up-to-date. There are no updates available.\nPlease remember to check for updates at regular intervals!"); +} + diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h new file mode 100644 index 00000000..6739f158 --- /dev/null +++ b/src/Dialog_MainWindow.h @@ -0,0 +1,65 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "../tmp/UIC_MainWindow.h" + +#include "Model_FileList.h" + +//Class declarations +class QFileSystemModel; +class WorkingBanner; + +class MainWindow: public QMainWindow, private Ui::MainWindow +{ + Q_OBJECT + +public: + MainWindow(QWidget *parent = 0); + ~MainWindow(void); + +private slots: + void aboutButtonClicked(void); + void encodeButtonClicked(void); + void addFilesButtonClicked(void); + void clearFilesButtonClicked(void); + void removeFileButtonClicked(void); + void fileDownButtonClicked(void); + void fileUpButtonClicked(void); + void editMetaButtonClicked(void); + void tabPageChanged(int idx); + void tabActionActivated(QAction *action); + void outputFolderViewClicked(const QModelIndex &index); + void makeFolderButtonClicked(void); + void gotoHomeFolderButtonClicked(void); + void gotoDesktopButtonClicked(void); + void gotoMusicFolderButtonClicked(void); + void checkUpdatesActionActivated(void); + void visitHomepageActionActivated(void); + void openFolderActionActivated(void); + +private: + FileListModel *m_fileListModel; + QFileSystemModel *m_fileSystemModel; + QActionGroup *m_tabActionGroup; + WorkingBanner *m_banner; +}; diff --git a/src/Dialog_MetaInfo.cpp b/src/Dialog_MetaInfo.cpp new file mode 100644 index 00000000..2e5b86b7 --- /dev/null +++ b/src/Dialog_MetaInfo.cpp @@ -0,0 +1,86 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Dialog_MetaInfo.h" + +#include "Global.h" +#include "Model_MetaInfo.h" + +#include +#include +#include + +MetaInfoDialog::MetaInfoDialog(QWidget *parent) + : QDialog(parent) +{ + //Init the dialog, from the .ui file + setupUi(this); + + //Fix size + setMinimumSize(this->size()); + setMaximumHeight(this->height()); + + //Setup table view + tableView->verticalHeader()->setVisible(false); + tableView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents); + tableView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); + tableView->horizontalHeader()->setStretchLastSection(true); + + //Enable up/down button + connect(upButton, SIGNAL(clicked()), this, SLOT(upButtonClicked())); + connect(downButton, SIGNAL(clicked()), this, SLOT(downButtonClicked())); + connect(editButton, SIGNAL(clicked()), this, SLOT(editButtonClicked())); +} + +MetaInfoDialog::~MetaInfoDialog(void) +{ +} + +int MetaInfoDialog::exec(AudioFileModel &audioFile, bool allowUp, bool allowDown) +{ + MetaInfoModel *model = new MetaInfoModel(&audioFile); + tableView->setModel(model); + setWindowTitle(QString("Meta Information: %1").arg(QFileInfo(audioFile.filePath()).fileName())); + upButton->setEnabled(allowUp); + downButton->setEnabled(allowDown); + + int iResult = QDialog::exec(); + + tableView->setModel(NULL); + LAMEXP_DELETE(model); + + return iResult; +} + +void MetaInfoDialog::upButtonClicked(void) +{ + done(-1); +} + +void MetaInfoDialog::downButtonClicked(void) +{ + done(+1); +} + +void MetaInfoDialog::editButtonClicked(void) +{ + dynamic_cast(tableView->model())->editItem(tableView->currentIndex(), this); +} diff --git a/src/Dialog_MetaInfo.h b/src/Dialog_MetaInfo.h new file mode 100644 index 00000000..5fb9012f --- /dev/null +++ b/src/Dialog_MetaInfo.h @@ -0,0 +1,44 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include +#include "../tmp/UIC_MetaInfo.h" + +#include "Model_AudioFile.h" + +class MetaInfoDialog : public QDialog, private Ui::MetaInfo +{ + Q_OBJECT + +public: + MetaInfoDialog(QWidget *parent); + ~MetaInfoDialog(void); + + int exec(AudioFileModel &audioFile, bool allowUp, bool allowDown); + +private slots: + void upButtonClicked(void); + void downButtonClicked(void); + void editButtonClicked(void); + +}; diff --git a/src/Dialog_SplashScreen.cpp b/src/Dialog_SplashScreen.cpp new file mode 100644 index 00000000..8ef9ded0 --- /dev/null +++ b/src/Dialog_SplashScreen.cpp @@ -0,0 +1,132 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Dialog_SplashScreen.h" + +#include "Global.h" + +#include +#include +#include +#include + +#define EPS (1.0E-5) + +//////////////////////////////////////////////////////////// +// Constructor +//////////////////////////////////////////////////////////// + +SplashScreen::SplashScreen(QWidget *parent) + : QFrame(parent, Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint) +{ + //Init the dialog, from the .ui file + setupUi(this); + + //Start animation + m_working = new QMovie(":/images/Loading.gif"); + labelLoading->setMovie(m_working); + m_working->start(); + + //Set wait cursor + setCursor(Qt::WaitCursor); + + //Prevent close + m_canClose = false; +} + +//////////////////////////////////////////////////////////// +// Destructor +//////////////////////////////////////////////////////////// + +SplashScreen::~SplashScreen(void) +{ + if(m_working) + { + m_working->stop(); + delete m_working; + m_working = NULL; + } +} + +//////////////////////////////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////////////////////////////// + +void SplashScreen::showSplash(QThread *thread) +{ + SplashScreen *splashScreen = new SplashScreen(); + + //Show splash + splashScreen->m_canClose = false; + splashScreen->setWindowOpacity(0.0); + splashScreen->show(); + QApplication::processEvents(); + + //Start the thread + thread->start(); + + //Fade in + for(double d = 0.0; d <= 1.0 + EPS; d = d + 0.01) + { + splashScreen->setWindowOpacity(d); + QApplication::processEvents(); + Sleep(6); + } + + //Loop while thread is running + while(thread->isRunning()) + { + QApplication::processEvents(QEventLoop::AllEvents | QEventLoop::WaitForMoreEvents); + } + + //Fade out + for(double d = 1.0; d >= 0.0; d = d - 0.01) + { + splashScreen->setWindowOpacity(d); + QApplication::processEvents(); + Sleep(6); + } + + //Hide splash + splashScreen->m_canClose = true; + splashScreen->close(); + + LAMEXP_DELETE(splashScreen); +} + +//////////////////////////////////////////////////////////// +// EVENTS +//////////////////////////////////////////////////////////// + +void SplashScreen::keyPressEvent(QKeyEvent *event) +{ + event->ignore(); +} + +void SplashScreen::keyReleaseEvent(QKeyEvent *event) +{ + event->ignore(); +} + +void SplashScreen::closeEvent(QCloseEvent *event) +{ + if(!m_canClose) event->ignore(); +} diff --git a/src/Dialog_SplashScreen.h b/src/Dialog_SplashScreen.h new file mode 100644 index 00000000..9a24785b --- /dev/null +++ b/src/Dialog_SplashScreen.h @@ -0,0 +1,48 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "../tmp/UIC_SplashScreen.h" + +//////////////////////////////////////////////////////////// +// Splash Frame +//////////////////////////////////////////////////////////// + +class SplashScreen: public QFrame, private Ui::SplashScreen +{ + Q_OBJECT + +public: + SplashScreen(QWidget *parent = 0); + ~SplashScreen(void); + + static void showSplash(QThread *thread); + +private: + QMovie *m_working; + bool m_canClose; + +protected: + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + void closeEvent(QCloseEvent *event); +}; diff --git a/src/Dialog_WorkingBanner.cpp b/src/Dialog_WorkingBanner.cpp new file mode 100644 index 00000000..a240f9f9 --- /dev/null +++ b/src/Dialog_WorkingBanner.cpp @@ -0,0 +1,145 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Dialog_WorkingBanner.h" + +#include "Global.h" + +#include +#include +#include +#include +#include + +#define EPS (1.0E-5) + +//////////////////////////////////////////////////////////// +// Constructor +//////////////////////////////////////////////////////////// + +WorkingBanner::WorkingBanner(QWidget *parent) +: QDialog(parent, Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint) +{ + //Init the dialog, from the .ui file + setupUi(this); + setModal(true); + + //Start animation + m_working = new QMovie(":/images/Busy.gif"); + labelWorking->setMovie(m_working); + m_working->start(); + + //Set wait cursor + setCursor(Qt::WaitCursor); +} + +//////////////////////////////////////////////////////////// +// Destructor +//////////////////////////////////////////////////////////// + +WorkingBanner::~WorkingBanner(void) +{ + if(m_working) + { + m_working->stop(); + delete m_working; + m_working = NULL; + } +} + +//////////////////////////////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////////////////////////////// + +void WorkingBanner::show(const QString &text) +{ + m_canClose = false; + QDialog::show(); + setText(text); + QApplication::processEvents(); +} + +void WorkingBanner::close(void) +{ + m_canClose = true; + QDialog::close(); +} + +void WorkingBanner::show(const QString &text, QThread *thread) +{ + //Show splash + this->show(text); + + //Start the thread + thread->start(); + + //Loop while thread is running + while(thread->isRunning()) + { + QApplication::processEvents(QEventLoop::AllEvents | QEventLoop::WaitForMoreEvents); + } + + //Hide splash + this->close(); +} + +//////////////////////////////////////////////////////////// +// EVENTS +//////////////////////////////////////////////////////////// + +void WorkingBanner::keyPressEvent(QKeyEvent *event) +{ + event->ignore(); +} + +void WorkingBanner::keyReleaseEvent(QKeyEvent *event) +{ + event->ignore(); +} + +void WorkingBanner::closeEvent(QCloseEvent *event) +{ + if(!m_canClose) event->ignore(); +} + +//////////////////////////////////////////////////////////// +// SLOTS +//////////////////////////////////////////////////////////// + +void WorkingBanner::setText(const QString &text) +{ + QFontMetrics metrics(labelStatus->font()); + if(metrics.width(text) <= labelStatus->width()) + { + labelStatus->setText(text); + } + else + { + QString choppedText = text.simplified().append("..."); + while(metrics.width(choppedText) > labelStatus->width() && choppedText.length() > 8) + { + choppedText.chop(4); + choppedText = choppedText.trimmed(); + choppedText.append("..."); + } + labelStatus->setText(choppedText); + } +} diff --git a/src/Dialog_WorkingBanner.h b/src/Dialog_WorkingBanner.h new file mode 100644 index 00000000..d5200167 --- /dev/null +++ b/src/Dialog_WorkingBanner.h @@ -0,0 +1,53 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "../tmp/UIC_WorkingBanner.h" + +//////////////////////////////////////////////////////////// +// Splash Frame +//////////////////////////////////////////////////////////// + +class WorkingBanner: public QDialog, private Ui::WorkingBanner +{ + Q_OBJECT + +public: + WorkingBanner(QWidget *parent = 0); + ~WorkingBanner(void); + + void show(const QString &text); + void show(const QString &text, QThread *thread); + void close(void); + +private: + QMovie *m_working; + bool m_canClose; + +public slots: + void setText(const QString &text); + +protected: + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + void closeEvent(QCloseEvent *event); +}; diff --git a/src/Genres.h b/src/Genres.h new file mode 100644 index 00000000..6de306c0 --- /dev/null +++ b/src/Genres.h @@ -0,0 +1,173 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +const static char *g_lamexp_generes[] = +{ + "Blues", + "Classic Rock", + "Country", + "Dance", + "Disco", + "Funk", + "Grunge", + "Hip-Hop", + "Jazz", + "Metal", + "New Age", + "Oldies", + "Other", + "Pop", + "R&B", + "Rap", + "Reggae", + "Rock", + "Techno", + "Industrial", + "Alternative", + "Ska", + "Death Metal", + "Pranks", + "Soundtrack", + "Euro-Techno", + "Ambient", + "Trip-Hop", + "Vocal", + "Jazz+Funk", + "Fusion", + "Trance", + "Classical", + "Instrumental", + "Acid", + "House", + "Game", + "Sound Clip", + "Gospel", + "Noise", + "Alternative Rock", + "Bass", + "Soul", + "Punk", + "Space", + "Meditative", + "Instrumental Pop", + "Instrumental Rock", + "Ethnic", + "Gothic", + "Darkwave", + "Techno-Industrial", + "Electronic", + "Pop-Folk", + "Eurodance", + "Dream", + "Southern Rock", + "Comedy", + "Cult", + "Gangsta", + "Top 40", + "Christian Rap", + "Pop/Funk", + "Jungle", + "Native US", + "Cabaret", + "New Wave", + "Psychadelic", + "Rave", + "Showtunes", + "Trailer", + "Lo-Fi", + "Tribal", + "Acid Punk", + "Acid Jazz", + "Polka", + "Retro", + "Musical", + "Rock & Roll", + "Hard Rock", + "Folk", + "Folk-Rock", + "National Folk", + "Swing", + "Fast Fusion", + "Bebob", + "Latin", + "Revival", + "Celtic", + "Bluegrass", + "Avantgarde", + "Gothic Rock", + "Progressive Rock", + "Psychedelic Rock", + "Symphonic Rock", + "Slow Rock", + "Big Band", + "Chorus", + "Easy Listening", + "Acoustic", + "Humour", + "Speech", + "Chanson", + "Opera", + "Chamber Music", + "Sonata", + "Symphony", + "Booty Bass", + "Primus", + "Porn Groove", + "Satire", + "Slow Jam", + "Club", + "Tango", + "Samba", + "Folklore", + "Ballad", + "Power Ballad", + "Rhytmic Soul", + "Freestyle", + "Duet", + "Punk Rock", + "Drum Solo", + "Acapella", + "Euro-House", + "Dance Hall", + "Goa", + "Drum & Bass", + "Club-House", + "Hardcore", + "Terror", + "Indie", + "BritPop", + "Negerpunk", + "Polsk Punk", + "Beat", + "Christian Gangsta", + "Heavy Metal", + "Black Metal", + "Crossover", + "Contemporary C", + "Christian Rock", + "Merengue", + "Salsa", + "Thrash Metal", + "Anime", + "JPop", + "SynthPop", + NULL +}; diff --git a/src/Global.cpp b/src/Global.cpp new file mode 100644 index 00000000..6b31d2c6 --- /dev/null +++ b/src/Global.cpp @@ -0,0 +1,340 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Global.h" + +//Qt includes +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//LameXP includes +#include "LockedFile.h" + + +/////////////////////////////////////////////////////////////////////////////// +// GLOBAL VARS +/////////////////////////////////////////////////////////////////////////////// + +//Build version +static const unsigned int g_lamexp_version_major = 4; +static const unsigned int g_lamexp_version_minor = 0; +static const unsigned int g_lamexp_version_build = 4; +static const char *g_lamexp_version_release = "Pre-Alpha"; + +//Build date +static QDate g_lamexp_version_date; +static const char *g_lamexp_months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; +static const char *g_lamexp_version_raw_date = __DATE__; + +//Special folders +static QString g_lamexp_temp_folder; + +//Tools +static QMap g_lamexp_tool_registry; + +//Shared memory +static const char *g_lamexp_sharedmem_uuid = "{21A68A42-6923-43bb-9CF6-64BF151942EE}"; +static QSharedMemory *g_lamexp_sharedmem_ptr = NULL; + +/////////////////////////////////////////////////////////////////////////////// +// GLOBAL FUNCTIONS +/////////////////////////////////////////////////////////////////////////////// + +/* + * Version getters + */ +unsigned int lamexp_version_major(void) { return g_lamexp_version_major; } +unsigned int lamexp_version_minor(void) { return g_lamexp_version_minor; } +unsigned int lamexp_version_build(void) { return g_lamexp_version_build; } +const char *lamexp_version_release(void) { return g_lamexp_version_release; } +bool lamexp_version_demo(void) { return !(strstr(g_lamexp_version_release, "Final") || strstr(g_lamexp_version_release, "Hotfix")); } + +/* + * Get build date date + */ +const QDate &lamexp_version_date(void) +{ + if(!g_lamexp_version_date.isValid()) + { + char temp[32]; + int date[3]; + + char *this_token = NULL; + char *next_token = NULL; + + strcpy_s(temp, 32, g_lamexp_version_raw_date); + this_token = strtok_s(temp, " ", &next_token); + + for(int i = 0; i < 3; i++) + { + date[i] = -1; + if(this_token) + { + for(int j = 0; j < 12; j++) + { + if(!_strcmpi(this_token, g_lamexp_months[j])) + { + date[i] = j+1; + break; + } + } + if(date[i] < 0) + { + date[i] = atoi(this_token); + } + this_token = strtok_s(NULL, " ", &next_token); + } + } + + if(date[0] >= 0 && date[1] >= 0 && date[2] >= 0) + { + g_lamexp_version_date = QDate(date[2], date[0], date[1]); + } + } + + return g_lamexp_version_date; +} + +/* + * Initialize Qt framework + */ +bool lamexp_init_qt(int argc, char* argv[]) +{ + static bool qt_initialized = false; + + //Don't initialized again, if done already + if(qt_initialized) + { + return true; + } + + //Check Qt version + qDebug("Using Qt Framework v%s, compiled with Qt v%s", qVersion(), QT_VERSION_STR); + QT_REQUIRE_VERSION(argc, argv, QT_VERSION_STR); + + //Check the Windows version + switch(QSysInfo::WindowsVersion) + { + case QSysInfo::WV_2000: + qDebug("Running on Windows 2000 (not offically supported!).\n"); + break; + case QSysInfo::WV_XP: + qDebug("Running on Windows XP.\n\n"); + break; + case QSysInfo::WV_2003: + qDebug("Running on Windows Server 2003 or Windows XP Professional x64 Edition.\n"); + break; + case QSysInfo::WV_VISTA: + qDebug("Running on Windows Vista or Windows Server 200.8\n"); + break; + case QSysInfo::WV_WINDOWS7: + qDebug("Running on Windows 7 or Windows Server 2008 R2.\n"); + break; + default: + qFatal("Unsupported OS, only Windows 2000 or later is supported!"); + break; + } + + //Create Qt application instance and setup version info + QApplication *application = new QApplication(argc, argv); + application->setApplicationName("LameXP - Audio Encoder Front-End"); + application->setApplicationVersion(QString().sprintf("%d.%02d.%04d", lamexp_version_major(), lamexp_version_minor(), lamexp_version_build())); + application->setOrganizationName("LoRd_MuldeR"); + application->setOrganizationDomain("mulder.dummwiedeutsch.de"); + application->setWindowIcon(QIcon(":/MainIcon.ico")); + + //Load plugins from application directory + QCoreApplication::setLibraryPaths(QStringList() << QApplication::applicationDirPath()); + + //Check for supported image formats + QList supportedFormats = QImageReader::supportedImageFormats(); + if(!(supportedFormats.contains("png") && supportedFormats.contains("gif") && supportedFormats.contains("ico"))) + { + qFatal("Qt initialization error: At least one image format plugin is missing!"); + return false; + } + + //Change application look + QApplication::setStyle(new QPlastiqueStyle()); + + //Done + qt_initialized = true; + return true; +} + +/* + * Check for running instances of LameXP + */ +bool lamexp_check_instances(void) +{ + if(g_lamexp_sharedmem_ptr) + { + return true; + } + + QSharedMemory *sharedMemory = new QSharedMemory(g_lamexp_sharedmem_uuid, NULL); + + if(!sharedMemory->create(1048576)) + { + if(sharedMemory->error() == QSharedMemory::AlreadyExists) + { + LAMEXP_DELETE(sharedMemory); + qWarning("Another instance of LameXP is already running on this computer!"); + QMessageBox::warning(NULL, "LameXP", "LameXP is already running. Please use the running instance!"); + return false; + } + else + { + QString errorMessage = sharedMemory->errorString(); + LAMEXP_DELETE(sharedMemory); + qFatal("Failed to create shared memory: %s", errorMessage.toLatin1().constData()); + return false; + } + } + + g_lamexp_sharedmem_ptr = sharedMemory; + return true; +} + +/* + * Get LameXP temp folder + */ +const QString &lamexp_temp_folder(void) +{ + if(g_lamexp_temp_folder.isEmpty()) + { + QDir tempFolder(QDir::tempPath()); + QString uuid = QUuid::createUuid().toString(); + tempFolder.mkdir(uuid); + + if(tempFolder.cd(uuid)) + { + g_lamexp_temp_folder = tempFolder.absolutePath(); + } + else + { + g_lamexp_temp_folder = QDir::tempPath(); + } + } + + return g_lamexp_temp_folder; +} + +/* + * Clean folder + */ +bool lamexp_clean_folder(const QString folderPath) +{ + QDir tempFolder(folderPath); + QFileInfoList entryList = tempFolder.entryInfoList(); + + for(int i = 0; i < entryList.count(); i++) + { + if(entryList.at(i).fileName().compare(".") == 0 || entryList.at(i).fileName().compare("..") == 0) + { + continue; + } + + if(entryList.at(i).isDir()) + { + lamexp_clean_folder(entryList.at(i).absoluteFilePath()); + } + else + { + QFile::remove(entryList.at(i).absoluteFilePath()); + } + } + + tempFolder.rmdir("."); + return !tempFolder.exists(); +} + +/* + * Finalization function (Clean-up) + */ +void lamexp_finalization(void) +{ + //Free all tools + while(!g_lamexp_tool_registry.isEmpty()) + { + QStringList keys = g_lamexp_tool_registry.keys(); + for(int i = 0; i < keys.count(); i++) + { + delete g_lamexp_tool_registry.take(keys.at(i)); + } + } + + //Delete temporary files + if(!g_lamexp_temp_folder.isEmpty()) + { + for(int i = 0; i < 100; i++) + { + if(lamexp_clean_folder(g_lamexp_temp_folder)) break; + Sleep(125); + } + g_lamexp_temp_folder.clear(); + } + + //Destroy Qt application object + QCoreApplication *application = QApplication::instance(); + LAMEXP_DELETE(application); + + //Detach from shared memory + LAMEXP_DELETE(g_lamexp_sharedmem_ptr); +} + +/* + * Register tool + */ +void lamexp_register_tool(const QString &toolName, LockedFile *file) +{ + if(g_lamexp_tool_registry.contains(toolName)) + { + throw "lamexp_register_tool: Tool is already registered!"; + } + + g_lamexp_tool_registry.insert(toolName, file); +} + +/* + * Register tool + */ +const QString lamexp_lookup_tool(const QString &toolName) +{ + if(g_lamexp_tool_registry.contains(toolName)) + { + return g_lamexp_tool_registry.value(toolName)->filePath(); + } + else + { + return QString(); + } +} \ No newline at end of file diff --git a/src/Global.h b/src/Global.h new file mode 100644 index 00000000..3364addf --- /dev/null +++ b/src/Global.h @@ -0,0 +1,75 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +//MSVC +#include "Targetver.h" + +//Stdlib +#include +#include + +//Win32 +#include + +//Class declarations +class QString; +class LockedFile; +class QDate; + +//LameXP version info +unsigned int lamexp_version_major(void); +unsigned int lamexp_version_minor(void); +unsigned int lamexp_version_build(void); +const QDate &lamexp_version_date(void); +const char *lamexp_version_release(void); +bool lamexp_version_demo(void); + +//Public functions +bool lamexp_init_qt(int argc, char* argv[]); +bool lamexp_check_instances(void); +void lamexp_register_tool(const QString &toolName, LockedFile *file); +const QString lamexp_lookup_tool(const QString &toolName); +void lamexp_finalization(void); +const QString &lamexp_temp_folder(void); + +//Auxiliary functions +bool lamexp_clean_folder(const QString folderPath); + +//Helper macros +#define LAMEXP_DELETE(PTR) if(PTR) { delete PTR; PTR = NULL; } +#define LAMEXP_CLOSE(HANDLE) if(HANDLE != NULL && HANDLE != INVALID_HANDLE_VALUE) { CloseHandle(HANDLE); HANDLE = NULL; } +#define QWCHAR(STR) reinterpret_cast(STR.utf16()) +#define LAMEXP_DYNCAST(OUT,CLASS,SRC) try { OUT = dynamic_cast(SRC); } catch(std::bad_cast) { OUT = NULL; } + +//Check for debug build +#if defined(_DEBUG) || defined(QT_DEBUG) +#define LAMEXP_CHECK_DEBUG_BUILD \ + qWarning("---------------------------------------------------------"); \ + qWarning("DEBUG BUILD: DO NOT RELEASE THIS BINARY TO THE PUBLIC !!!"); \ + qWarning("---------------------------------------------------------\n"); +#else +#define LAMEXP_CHECK_DEBUG_BUILD \ + if(IsDebuggerPresent()) { \ + FatalAppExit(0, L"Not a debug build. Please unload debugger and try again!"); \ + TerminateProcess(GetCurrentProcess, -1); } +#endif diff --git a/src/LockedFile.cpp b/src/LockedFile.cpp new file mode 100644 index 00000000..c6bc44dc --- /dev/null +++ b/src/LockedFile.cpp @@ -0,0 +1,99 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "LockedFile.h" +#include "Global.h" + +#include +#include +#include +#include +#include + +LockedFile::LockedFile(const QString &resourcePath, const QString &outPath, const QByteArray &expectedHash) +{ + m_fileHandle = NULL; + + QResource resource(resourcePath); + QFile outFile(outPath); + + m_filePath = QFileInfo(outFile).absoluteFilePath(); + outFile.open(QIODevice::WriteOnly); + + //Write data to file + if(outFile.isOpen() && outFile.isWritable() && resource.isValid()) + { + if(outFile.write(reinterpret_cast(resource.data()), resource.size()) != resource.size()) + { + QFile::remove(QFileInfo(outFile).absoluteFilePath()); + char error_msg[256]; + strcpy_s(error_msg, 256, QString("File '%1' could not be written!").arg(QFileInfo(outFile).fileName()).toLatin1().constData()); + throw error_msg; + } + outFile.close(); + } + else + { + char error_msg[256]; + strcpy_s(error_msg, 256, QString("File '%1' could not be created!").arg(QFileInfo(outFile).fileName()).toLatin1().constData()); + throw error_msg; + } + + //Now lock the file + m_fileHandle = CreateFileW(QWCHAR(QDir::toNativeSeparators(m_filePath)), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL); + + if(m_fileHandle == INVALID_HANDLE_VALUE) + { + QFile::remove(QFileInfo(outFile).absoluteFilePath()); + char error_msg[256]; + strcpy_s(error_msg, 256, QString("File '%1' could not be locked!").arg(QFileInfo(outFile).fileName()).toLatin1().constData()); + throw error_msg; + } + + //Verify file contents + outFile.open(QIODevice::ReadOnly); + QCryptographicHash fileHash(QCryptographicHash::Sha1); + if(outFile.isOpen() && outFile.isReadable()) + { + fileHash.addData(outFile.readAll()); + outFile.close(); + } + + if(_stricmp(fileHash.result().toHex().constData(), expectedHash.constData())) + { + qWarning("\nFile checksum error:\n Expected = %040s\n Detected = %040s\n", expectedHash.constData(), fileHash.result().toHex().constData()); + LAMEXP_CLOSE(m_fileHandle); + QFile::remove(QFileInfo(outFile).absoluteFilePath()); + char error_msg[256]; + strcpy_s(error_msg, 256, QString("File '%1' is corruputed, take care!").arg(QFileInfo(outFile).fileName()).toLatin1().constData()); + throw error_msg; + } +} + +LockedFile::~LockedFile(void) +{ + LAMEXP_CLOSE(m_fileHandle); +} + +const QString &LockedFile::filePath() +{ + return m_filePath; +} \ No newline at end of file diff --git a/src/LockedFile.h b/src/LockedFile.h new file mode 100644 index 00000000..17064499 --- /dev/null +++ b/src/LockedFile.h @@ -0,0 +1,37 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include + +class LockedFile +{ +public: + LockedFile(const QString &resourcePath, const QString &outPath, const QByteArray &expectedHash = QByteArray()); + ~LockedFile(void); + + const QString &filePath(); + +private: + QString m_filePath; + void *m_fileHandle; +}; diff --git a/src/Main.cpp b/src/Main.cpp new file mode 100644 index 00000000..847c5a6e --- /dev/null +++ b/src/Main.cpp @@ -0,0 +1,174 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +//LameXP includes +#include "Global.h" +#include "Dialog_SplashScreen.h" +#include "Dialog_MainWindow.h" +#include "Thread_Initialization.h" + +//Qt includes +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////////// +// Main function +/////////////////////////////////////////////////////////////////////////////// + +int lamexp_main(int argc, char* argv[]) +{ + //Print version info + SetConsoleTitle(L"LameXP - Audio Encoder Front-End | DO NOT CLOSE CONSOLE !!!"); + qDebug("\nLameXP - Audio Encoder Front-End"); + qDebug("Version %d.%02d %s, Build %d [%s], MSVC compiler v%02d.%02d", lamexp_version_major(), lamexp_version_minor(), lamexp_version_release(), lamexp_version_build(), lamexp_version_date().toString(Qt::ISODate).toLatin1().constData(), _MSC_VER / 100, _MSC_VER % 100); + qDebug("Copyright (C) 2004-2010 LoRd_MuldeR \n"); + + //print license info + qDebug("This program is free software: you can redistribute it and/or modify"); + qDebug("it under the terms of the GNU General Public License ."); + qDebug("This program comes with ABSOLUTELY NO WARRANTY.\n"); + + //Print warning, if this is a "debug" build + LAMEXP_CHECK_DEBUG_BUILD; + + //Initialize Qt + lamexp_init_qt(argc, argv); + + //Check for expiration + if(lamexp_version_demo()) + { + QDate expireDate = lamexp_version_date().addDays(14); + qWarning(QString("Note: This demo (pre-release) version of LameXP will expire at %1.\n").arg(expireDate.toString(Qt::ISODate)).toLatin1().constData()); + if(QDate::currentDate() >= expireDate) + { + QMessageBox::warning(NULL, "LameXP - Expired", QString("This demo (pre-release) version of LameXP has expired at %1.").arg(expireDate.toString()), "Exit Program"); + return 0; + } + } + + //Check for multiple instances + if(!lamexp_check_instances()) return 0; + + //Show splash screen + InitializationThread *poInitializationThread = new InitializationThread(); + SplashScreen::showSplash(poInitializationThread); + LAMEXP_DELETE(poInitializationThread); + + //Show main window + MainWindow *poMainWindow = new MainWindow(); + poMainWindow->show(); + int iResult = QApplication::instance()->exec(); + LAMEXP_DELETE(poMainWindow); + + //Final clean-up + qDebug("Shutting down, please wait...\n"); + + //Terminate + return iResult; +} + +/////////////////////////////////////////////////////////////////////////////// +// Message Handler +/////////////////////////////////////////////////////////////////////////////// + +static void lamexp_message_handler(QtMsgType type, const char *msg) +{ + static HANDLE hConsole = NULL; + + if(!hConsole) + { + hConsole = CreateFile(L"CONOUT$", GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL); + } + + CONSOLE_SCREEN_BUFFER_INFO bufferInfo; + GetConsoleScreenBufferInfo(hConsole, &bufferInfo); + + switch(type) + { + case QtCriticalMsg: + case QtFatalMsg: + fflush(stdout); + fflush(stderr); + SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY); + fprintf(stderr, "\nCRITICAL ERROR !!!\n%s\n\n", msg); + MessageBoxA(NULL, msg, "LameXP - CRITICAL ERROR", MB_ICONERROR | MB_TOPMOST | MB_TASKMODAL); + break; + case QtWarningMsg: + SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY); + fprintf(stderr, "%s\n", msg); + fflush(stderr); + break; + default: + SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY); + fprintf(stderr, "%s\n", msg); + fflush(stderr); + break; + } + + SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED); + + if(type == QtCriticalMsg || type == QtFatalMsg) + { + FatalAppExit(0, L"The application has encountered a critical error and will exit now!"); + TerminateProcess(GetCurrentProcess(), -1); + } + } + + +/////////////////////////////////////////////////////////////////////////////// +// Applicaton entry point +/////////////////////////////////////////////////////////////////////////////// + +int main(int argc, char* argv[]) +{ + try + { + qInstallMsgHandler(lamexp_message_handler); + int iResult = lamexp_main(argc, argv); + lamexp_finalization(); + return iResult; + } + catch(char *error) + { + fflush(stdout); + fflush(stderr); + fprintf(stderr, "\nEXCEPTION ERROR: %s\n", error); + FatalAppExit(0, L"Unhandeled exception error, application will exit!"); + TerminateProcess(GetCurrentProcess(), -1); + } + catch(int error) + { + fflush(stdout); + fflush(stderr); + fprintf(stderr, "\nEXCEPTION ERROR: Error code 0x%X\n", error); + FatalAppExit(0, L"Unhandeled exception error, application will exit!"); + TerminateProcess(GetCurrentProcess(), -1); + } + catch(...) + { + fflush(stdout); + fflush(stderr); + fprintf(stderr, "\nEXCEPTION ERROR !!!\n"); + FatalAppExit(0, L"Unhandeled exception error, application will exit!"); + TerminateProcess(GetCurrentProcess(), -1); + } +} diff --git a/src/Model_AudioFile.cpp b/src/Model_AudioFile.cpp new file mode 100644 index 00000000..a3c9bae2 --- /dev/null +++ b/src/Model_AudioFile.cpp @@ -0,0 +1,307 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Model_AudioFile.h" + +#include + +//////////////////////////////////////////////////////////// +// Constructor & Destructor +//////////////////////////////////////////////////////////// + +AudioFileModel::AudioFileModel(const QString &path, const QString &name) +{ + m_filePath = path; + m_fileName = name; + m_fileYear = 0; + m_filePosition = 0; + m_fileDuration = 0; + m_formatAudioSamplerate = 0; + m_formatAudioChannels = 0; + m_formatAudioBitdepth = 0; +} + +AudioFileModel::~AudioFileModel(void) +{ +} + +//////////////////////////////////////////////////////////// +// Public Functions +//////////////////////////////////////////////////////////// + +// --------------------------------- +// Getter methods +// --------------------------------- + +const QString &AudioFileModel::filePath(void) const +{ + return m_filePath; +} + +const QString &AudioFileModel::fileName(void) const +{ + return m_fileName; +} + +const QString &AudioFileModel::fileArtist(void) const +{ + return m_fileArtist; +} + +const QString &AudioFileModel::fileAlbum(void) const +{ + return m_fileAlbum; +} + +const QString &AudioFileModel::fileGenre(void) const +{ + return m_fileGenre; +} + +const QString &AudioFileModel::fileComment(void) const +{ + return m_fileComment; +} + +unsigned int AudioFileModel::fileYear(void) const +{ + return m_fileYear; +} + +unsigned int AudioFileModel::filePosition(void) const +{ + return m_filePosition; +} + +unsigned int AudioFileModel::fileDuration(void) const +{ + return m_fileDuration; +} + +const QString &AudioFileModel::formatContainerType(void) const +{ + return m_formatContainerType; +} + +const QString &AudioFileModel::formatContainerProfile(void) const +{ + return m_formatContainerProfile; +} + +const QString &AudioFileModel::formatAudioType(void) const +{ + return m_formatAudioType; +} + +const QString &AudioFileModel::formatAudioProfile(void) const +{ + return m_formatAudioProfile; +} + +const QString &AudioFileModel::formatAudioVersion(void) const +{ + return m_formatAudioVersion; +} + +unsigned int AudioFileModel::formatAudioSamplerate(void) const +{ + return m_formatAudioSamplerate; +} + +unsigned int AudioFileModel::formatAudioChannels(void) const +{ + return m_formatAudioChannels; +} + +unsigned int AudioFileModel::formatAudioBitdepth(void) const +{ + return m_formatAudioBitdepth; +} + +const QString AudioFileModel::fileDurationInfo(void) const +{ + if(m_fileDuration) + { + QTime time = QTime().addSecs(m_fileDuration); + return time.toString("hh:mm:ss"); + } + else + { + return QString(); + } +} + +const QString AudioFileModel::formatContainerInfo(void) const +{ + if(!m_formatContainerType.isEmpty()) + { + QString info = m_formatContainerType; + if(!m_formatContainerProfile.isEmpty()) info.append(" (Profile: ").append(m_formatContainerProfile).append(")"); + return info; + } + else + { + return QString(); + } +} + +const QString AudioFileModel::formatAudioBaseInfo(void) const +{ + if(m_formatAudioSamplerate || m_formatAudioChannels || m_formatAudioBitdepth) + { + QString info; + if(m_formatAudioChannels) + { + if(!info.isEmpty()) info.append(", "); + info.append("Channels: ").append(QString::number(m_formatAudioChannels)); + } + if(m_formatAudioSamplerate) + { + if(!info.isEmpty()) info.append(", "); + info.append("Samplerate: ").append(QString::number(m_formatAudioSamplerate)).append(" Hz"); + } + if(m_formatAudioBitdepth) + { + if(!info.isEmpty()) info.append(", "); + info.append("Bitdepth: ").append(QString::number(m_formatAudioBitdepth)).append(" Bit"); + } + return info; + } + else + { + return QString(); + } +} + +const QString AudioFileModel::formatAudioCompressInfo(void) const +{ + if(!m_formatAudioType.isEmpty()) + { + QString info; + if(!m_formatAudioProfile.isEmpty() || !m_formatAudioVersion.isEmpty()) + { + info.append("Type: "); + } + info.append(m_formatAudioType); + if(!m_formatAudioProfile.isEmpty()) + { + info.append(", Profile: ").append(m_formatAudioProfile); + } + if(!m_formatAudioVersion.isEmpty()) + { + info.append(", Version: ").append(m_formatAudioVersion); + } + return info; + } + else + { + return QString(); + } +} + +// --------------------------------- +// Setter methods +// --------------------------------- + +void AudioFileModel::setFilePath(const QString &path) +{ + m_filePath = path; +} + +void AudioFileModel::setFileName(const QString &name) +{ + m_fileName = name; +} + +void AudioFileModel::setFileArtist(const QString &artist) +{ + m_fileArtist = artist; +} + +void AudioFileModel::setFileAlbum(const QString &album) +{ + m_fileAlbum = album; +} + +void AudioFileModel::setFileGenre(const QString &genre) +{ + m_fileGenre = genre; +} + +void AudioFileModel::setFileComment(const QString &comment) +{ + m_fileComment = comment; +} + +void AudioFileModel::setFileYear(unsigned int year) +{ + m_fileYear = year; +} + +void AudioFileModel::setFilePosition(unsigned int position) +{ + m_filePosition = position; +} + +void AudioFileModel::setFileDuration(unsigned int duration) +{ + m_fileDuration = duration; +} + +void AudioFileModel::setFormatContainerType(const QString &type) +{ + m_formatContainerType = type; +} + +void AudioFileModel::setFormatContainerProfile(const QString &profile) +{ + m_formatContainerProfile = profile; +} + +void AudioFileModel::setFormatAudioType(const QString &type) +{ + m_formatAudioType = type; +} + +void AudioFileModel::setFormatAudioProfile(const QString &profile) +{ + m_formatAudioProfile = profile; +} + +void AudioFileModel::setFormatAudioVersion(const QString &version) +{ + m_formatAudioVersion = version; +} + +void AudioFileModel::setFormatAudioSamplerate(unsigned int samplerate) +{ + m_formatAudioSamplerate = samplerate; +} + +void AudioFileModel::setFormatAudioChannels(unsigned int channels) +{ + m_formatAudioChannels = channels; +} + +void AudioFileModel::setFormatAudioBitdepth(unsigned int bitdepth) +{ + m_formatAudioBitdepth = bitdepth; +} diff --git a/src/Model_AudioFile.h b/src/Model_AudioFile.h new file mode 100644 index 00000000..162f2ff7 --- /dev/null +++ b/src/Model_AudioFile.h @@ -0,0 +1,103 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include + +class AudioFileModel +{ + +public: + AudioFileModel(const QString &path = QString(), const QString &name = QString()); + ~AudioFileModel(void); + + //----------------------- + //Getters + //----------------------- + + const QString &filePath(void) const; + const QString &fileName(void) const; + const QString &fileArtist(void) const; + const QString &fileAlbum(void) const; + const QString &fileGenre(void) const; + const QString &fileComment(void) const; + unsigned int fileYear(void) const; + unsigned int filePosition(void) const; + unsigned int fileDuration(void) const; + + const QString &formatContainerType(void) const; + const QString &formatContainerProfile(void) const; + const QString &formatAudioType(void) const; + const QString &formatAudioProfile(void) const; + const QString &formatAudioVersion(void) const; + unsigned int formatAudioSamplerate(void) const; + unsigned int formatAudioChannels(void) const; + unsigned int formatAudioBitdepth(void) const; + + const QString fileDurationInfo(void) const; + const QString formatContainerInfo(void) const; + const QString formatAudioBaseInfo(void) const; + const QString formatAudioCompressInfo(void) const; + + //----------------------- + //Setters + //----------------------- + + void setFilePath(const QString &path); + void setFileName(const QString &name); + void setFileArtist(const QString &artist); + void setFileAlbum(const QString &album); + void setFileGenre(const QString &genre); + void setFileComment(const QString &comment); + void setFileYear(unsigned int year); + void setFilePosition(unsigned int position); + void setFileDuration(unsigned int duration); + + void setFormatContainerType(const QString &type); + void setFormatContainerProfile(const QString &profile); + void setFormatAudioType(const QString &type); + void setFormatAudioProfile(const QString &profile); + void setFormatAudioVersion(const QString &version); + void setFormatAudioSamplerate(unsigned int samplerate); + void setFormatAudioChannels(unsigned int channels); + void setFormatAudioBitdepth(unsigned int bitdepth); + +private: + QString m_filePath; + QString m_fileName; + QString m_fileArtist; + QString m_fileAlbum; + QString m_fileGenre; + QString m_fileComment; + unsigned int m_fileYear; + unsigned int m_filePosition; + unsigned int m_fileDuration; + + QString m_formatContainerType; + QString m_formatContainerProfile; + QString m_formatAudioType; + QString m_formatAudioProfile; + QString m_formatAudioVersion; + unsigned int m_formatAudioSamplerate; + unsigned int m_formatAudioChannels; + unsigned int m_formatAudioBitdepth; +}; diff --git a/src/Model_FileList.cpp b/src/Model_FileList.cpp new file mode 100644 index 00000000..0cb510ef --- /dev/null +++ b/src/Model_FileList.cpp @@ -0,0 +1,220 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Model_FileList.h" + +#include + +//////////////////////////////////////////////////////////// +// Constructor & Destructor +//////////////////////////////////////////////////////////// + +FileListModel::FileListModel(void) + : m_fileIcon(":/icons/page_white_cd.png") +{ + m_fileList.append(AudioFileModel("C:/Music/Buckethead - Crime Slunk Scene/The Fairy and the Devil.ogg", "The Fairy and the Devil")); +} + +FileListModel::~FileListModel(void) +{ +} + +//////////////////////////////////////////////////////////// +// Public Functions +//////////////////////////////////////////////////////////// + +int FileListModel::columnCount(const QModelIndex &parent) const +{ + return 2; +} + +int FileListModel::rowCount(const QModelIndex &parent) const +{ + return m_fileList.count(); +} + +QVariant FileListModel::data(const QModelIndex &index, int role) const +{ + if((role == Qt::DisplayRole || role == Qt::ToolTipRole) && index.row() < m_fileList.count() && index.row() >= 0) + { + switch(index.column()) + { + case 0: + return m_fileList.at(index.row()).fileName(); + break; + case 1: + return m_fileList.at(index.row()).filePath(); + break; + default: + return QVariant(); + break; + } + } + else if(role == Qt::DecorationRole && index.column() == 0) + { + return m_fileIcon; + } + else + { + return QVariant(); + } +} + +QVariant FileListModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(role == Qt::DisplayRole) + { + if(orientation == Qt::Horizontal) + { + switch(section) + { + case 0: + return QVariant("Title"); + break; + case 1: + return QVariant("Full Path"); + break; + default: + return QVariant(); + break; + } + } + else + { + if(m_fileList.count() < 10) + { + return QVariant(QString().sprintf("%d", section + 1)); + } + else if(m_fileList.count() < 100) + { + return QVariant(QString().sprintf("%02d", section + 1)); + } + else if(m_fileList.count() < 1000) + { + return QVariant(QString().sprintf("%03d", section + 1)); + } + else + { + return QVariant(QString().sprintf("%04d", section + 1)); + } + } + } + else + { + return QVariant(); + } +} + +void FileListModel::addFile(const QString &filePath) +{ + QFileInfo fileInfo(filePath); + + for(int i = 0; i < m_fileList.count(); i++) + { + if(m_fileList.at(i).filePath().compare(fileInfo.absoluteFilePath(), Qt::CaseInsensitive) == 0) + { + return; + } + } + + beginResetModel(); + m_fileList.append(AudioFileModel(fileInfo.absoluteFilePath(), fileInfo.baseName())); + endResetModel(); +} + +void FileListModel::addFile(const AudioFileModel &file) +{ + for(int i = 0; i < m_fileList.count(); i++) + { + if(m_fileList.at(i).filePath().compare(file.filePath(), Qt::CaseInsensitive) == 0) + { + return; + } + } + + beginResetModel(); + m_fileList.append(file); + endResetModel(); +} + +bool FileListModel::removeFile(const QModelIndex &index) +{ + if(index.row() >= 0 && index.row() < m_fileList.count()) + { + beginResetModel(); + m_fileList.removeAt(index.row()); + endResetModel(); + return true; + } + else + { + return false; + } +} + +void FileListModel::clearFiles(void) +{ + beginResetModel(); + m_fileList.clear(); + endResetModel(); +} + +bool FileListModel::moveFile(const QModelIndex &index, int delta) +{ + if(delta != 0 && index.row() >= 0 && index.row() < m_fileList.count() && index.row() + delta >= 0 && index.row() + delta < m_fileList.count()) + { + beginResetModel(); + m_fileList.move(index.row(), index.row() + delta); + endResetModel(); + return true; + } + else + { + return false; + } +} + +AudioFileModel FileListModel::getFile(const QModelIndex &index) +{ + if(index.row() >= 0 && index.row() < m_fileList.count()) + { + return m_fileList.at(index.row()); + } + else + { + return AudioFileModel(); + } +} + +bool FileListModel::setFile(const QModelIndex &index, const AudioFileModel &audioFile) +{ + if(index.row() >= 0 && index.row() < m_fileList.count()) + { + beginResetModel(); + m_fileList.replace(index.row(), audioFile); + endResetModel(); + return true; + } + else + { + return false; + } +} diff --git a/src/Model_FileList.h b/src/Model_FileList.h new file mode 100644 index 00000000..a3456b9b --- /dev/null +++ b/src/Model_FileList.h @@ -0,0 +1,57 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "Model_AudioFile.h" + +#include +#include + +class FileListModel : public QAbstractTableModel +{ + Q_OBJECT + +public: + FileListModel(void); + ~FileListModel(void); + + //Model functions + int columnCount(const QModelIndex &parent = QModelIndex()) const; + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + + //Edit functions + bool removeFile(const QModelIndex &index); + void clearFiles(void); + bool moveFile(const QModelIndex &index, int delta); + AudioFileModel getFile(const QModelIndex &index); + bool setFile(const QModelIndex &index, const AudioFileModel &audioFile); + +public slots: + void addFile(const QString &filePath); + void addFile(const AudioFileModel &file); + +private: + QList m_fileList; + const QIcon m_fileIcon; +}; diff --git a/src/Model_MetaInfo.cpp b/src/Model_MetaInfo.cpp new file mode 100644 index 00000000..0bab3be7 --- /dev/null +++ b/src/Model_MetaInfo.cpp @@ -0,0 +1,315 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Model_MetaInfo.h" +#include "Genres.h" + +#include +#include + +#define CHECK1(STR) (STR.isEmpty() ? "(Unknown)" : STR) +#define CHECK2(VAL) ((VAL > 0) ? QString::number(VAL) : "(Unknown)") +#define CHECK3(STR) (STR.isEmpty() ? Qt::darkGray : QVariant()) +#define CHECK4(VAL) ((VAL == 0) ? Qt::darkGray : QVariant()) + +//////////////////////////////////////////////////////////// +// Constructor & Destructor +//////////////////////////////////////////////////////////// + +MetaInfoModel::MetaInfoModel(AudioFileModel *file) +{ + m_audioFile = file; +} + +MetaInfoModel::~MetaInfoModel(void) +{ +} + +//////////////////////////////////////////////////////////// +// Public Functions +//////////////////////////////////////////////////////////// + +int MetaInfoModel::columnCount(const QModelIndex &parent) const +{ + return 2; +} + +int MetaInfoModel::rowCount(const QModelIndex &parent) const +{ + return 12; +} + +QVariant MetaInfoModel::data(const QModelIndex &index, int role) const +{ + if(role == Qt::DisplayRole) + { + switch(index.row()) + { + case 0: + return (!index.column()) ? "Full Path" : CHECK1(m_audioFile->filePath()); + break; + case 1: + return (!index.column()) ? "Format" : CHECK1(m_audioFile->formatAudioBaseInfo()); + break; + case 2: + return (!index.column()) ? "Container" : CHECK1(m_audioFile->formatContainerInfo()); + break; + case 3: + return (!index.column()) ? "Compression" : CHECK1(m_audioFile->formatAudioCompressInfo()); + break; + case 4: + return (!index.column()) ? "Duration" : CHECK1(m_audioFile->fileDurationInfo()); + break; + case 5: + return (!index.column()) ? "Title" : CHECK1(m_audioFile->fileName()); + break; + case 6: + return (!index.column()) ? "Artist" : CHECK1(m_audioFile->fileArtist()); + break; + case 7: + return (!index.column()) ? "Album" : CHECK1(m_audioFile->fileAlbum()); + break; + case 8: + return (!index.column()) ? "Genre" : CHECK1(m_audioFile->fileGenre()); + break; + case 9: + return (!index.column()) ? "Year" : CHECK2(m_audioFile->fileYear()); + break; + case 10: + return (!index.column()) ? "Position" : CHECK2(m_audioFile->filePosition()); + break; + case 11: + return (!index.column()) ? "Comment" : CHECK1(m_audioFile->fileComment()); + break; + default: + return QVariant(); + break; + } + } + else if(role == Qt::DecorationRole && index.column() == 0) + { + switch(index.row()) + { + case 0: + return QIcon(":/icons/folder_page.png"); + break; + case 1: + return QIcon(":/icons/sound.png"); + break; + case 2: + return QIcon(":/icons/package.png"); + break; + case 3: + return QIcon(":/icons/compress.png"); + break; + case 4: + return QIcon(":/icons/clock_play.png"); + break; + case 5: + return QIcon(":/icons/music.png"); + break; + case 6: + return QIcon(":/icons/user.png"); + break; + case 7: + return QIcon(":/icons/cd.png"); + break; + case 8: + return QIcon(":/icons/star.png"); + break; + case 9: + return QIcon(":/icons/date.png"); + break; + case 10: + return QIcon(":/icons/timeline_marker.png"); + break; + case 11: + return QIcon(":/icons/comment.png"); + break; + default: + return QVariant(); + break; + } + } + else if(role == Qt::TextColorRole && index.column() == 1) + { + switch(index.row()) + { + case 0: + return CHECK3(m_audioFile->filePath()); + break; + case 1: + return CHECK3(m_audioFile->formatAudioBaseInfo()); + break; + case 2: + return CHECK3(m_audioFile->formatContainerInfo()); + break; + case 3: + return CHECK3(m_audioFile->formatAudioCompressInfo()); + break; + case 4: + return CHECK4(m_audioFile->fileDurationInfo()); + break; + case 5: + return CHECK3(m_audioFile->fileName()); + break; + case 6: + return CHECK3(m_audioFile->fileArtist()); + break; + case 7: + return CHECK3(m_audioFile->fileAlbum()); + break; + case 8: + return CHECK3(m_audioFile->fileGenre()); + break; + case 9: + return CHECK4(m_audioFile->fileYear()); + break; + case 10: + return CHECK4(m_audioFile->filePosition()); + break; + case 11: + return CHECK3(m_audioFile->fileComment()); + break; + default: + return QVariant(); + break; + } + } + else + { + return QVariant(); + } +} + +QVariant MetaInfoModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(role == Qt::DisplayRole) + { + if(orientation == Qt::Horizontal) + { + switch(section) + { + case 0: + return QVariant("Property"); + break; + case 1: + return QVariant("Value"); + break; + default: + return QVariant(); + break; + } + } + else + { + return QVariant(); + } + } + else + { + return QVariant(); + } +} + +void MetaInfoModel::editItem(const QModelIndex &index, QWidget *parent) +{ + bool ok = false; + int val = -1; + QStringList generes("(Unspecified)"); + QString temp; + + switch(index.row()) + { + case 5: + temp = QInputDialog::getText(parent, "Edit Title", "Please enter the title for this file:", QLineEdit::Normal, m_audioFile->fileName(), &ok).simplified(); + if(ok) + { + beginResetModel(); + m_audioFile->setFileName(temp.isEmpty() ? QString() : temp); + endResetModel(); + } + break; + case 6: + temp = QInputDialog::getText(parent, "Edit Artist", "Please enter the artist for this file:", QLineEdit::Normal, m_audioFile->fileArtist(), &ok).simplified(); + if(ok) + { + beginResetModel(); + m_audioFile->setFileArtist(temp.isEmpty() ? QString() : temp); + endResetModel(); + } + break; + case 7: + temp = QInputDialog::getText(parent, "Edit Album", "Please enter the album for this file:", QLineEdit::Normal, m_audioFile->fileAlbum(), &ok).simplified(); + if(ok) + { + beginResetModel(); + m_audioFile->setFileAlbum(temp.isEmpty() ? QString() : temp); + endResetModel(); + } + break; + case 8: + for(int i = 0; g_lamexp_generes[i]; i++) generes << g_lamexp_generes[i]; + temp = QInputDialog::getItem(parent, "Edit Genre", "Please enter the genre for this file:", generes, (m_audioFile->fileGenre().isEmpty() ? 1 : generes.indexOf(m_audioFile->fileGenre())), false, &ok); + if(ok) + { + beginResetModel(); + m_audioFile->setFileGenre((temp.isEmpty() || !temp.compare(generes.at(0), Qt::CaseInsensitive)) ? QString() : temp); + endResetModel(); + } + break; + case 9: + val = QInputDialog::getInt(parent, "Edit Year", "Please enter the year for this file:", (m_audioFile->fileYear() ? m_audioFile->fileYear() : 1900), 0, 2100, 1, &ok); + if(ok) + { + beginResetModel(); + m_audioFile->setFileYear(val); + endResetModel(); + } + break; + case 10: + val = QInputDialog::getInt(parent, "Edit Position", "Please enter the position (track no.) for this file:", (m_audioFile->filePosition() ? m_audioFile->filePosition() : 1), 0, 99, 1, &ok); + if(ok) + { + beginResetModel(); + m_audioFile->setFilePosition(val); + endResetModel(); + } + break; + case 11: + temp = QInputDialog::getText(parent, "Edit Comment", "Please enter the comment for this file:", QLineEdit::Normal, (m_audioFile->fileComment().isEmpty() ? "Encoded with LameXP" : m_audioFile->fileComment()), &ok).simplified(); + if(ok) + { + beginResetModel(); + m_audioFile->setFileComment(temp.isEmpty() ? QString() : temp); + endResetModel(); + } + break; + default: + QMessageBox::warning(parent, "Not editable", "Sorry, this property of the source file cannot be edited!"); + break; + } +} + +Qt::ItemFlags MetaInfoModel::flags(const QModelIndex &index) const +{ + return QAbstractTableModel::flags(index); +} \ No newline at end of file diff --git a/src/Model_MetaInfo.h b/src/Model_MetaInfo.h new file mode 100644 index 00000000..8fd3a965 --- /dev/null +++ b/src/Model_MetaInfo.h @@ -0,0 +1,47 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "Model_AudioFile.h" + +#include +#include + +class MetaInfoModel : public QAbstractTableModel +{ + Q_OBJECT + +public: + MetaInfoModel(AudioFileModel *file); + ~MetaInfoModel(void); + + //Model functions + int columnCount(const QModelIndex &parent = QModelIndex()) const; + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + Qt::ItemFlags flags(const QModelIndex &index) const; + void editItem(const QModelIndex &index, QWidget *parent); + +private: + AudioFileModel* m_audioFile; +}; diff --git a/src/Resource.h b/src/Resource.h new file mode 100644 index 00000000..b8e5f2cc --- /dev/null +++ b/src/Resource.h @@ -0,0 +1,17 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by g:\DeLpHi\LameXP_Qt\LameXP\LameXP.rc +// +#define IDI_ICON1 101 +#define IDR_WAVE_ABOUT 666 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/src/Targetver.h b/src/Targetver.h new file mode 100644 index 00000000..b000332f --- /dev/null +++ b/src/Targetver.h @@ -0,0 +1,35 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +// The following macros define the minimum required platform. The minimum required platform +// is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run +// your application. The macros work by enabling all features available on platform versions up to and +// including the version specified. + +// Modify the following defines if you have to target a platform prior to the ones specified below. +// Refer to MSDN for the latest info on corresponding values for different platforms. + +#ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows XP. +#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. +#endif + diff --git a/src/Thread_FileAnalyzer.cpp b/src/Thread_FileAnalyzer.cpp new file mode 100644 index 00000000..bb66175b --- /dev/null +++ b/src/Thread_FileAnalyzer.cpp @@ -0,0 +1,304 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Thread_FileAnalyzer.h" + +#include "Global.h" +#include "LockedFile.h" +#include "Model_AudioFile.h" + +#include +#include +#include +#include +#include + +#include + +//////////////////////////////////////////////////////////// +// Constructor +//////////////////////////////////////////////////////////// + +FileAnalyzer::FileAnalyzer(const QStringList &inputFiles) + : m_inputFiles(inputFiles) +{ + m_bSuccess = false; + m_mediaInfoBin = lamexp_lookup_tool("mediainfo_icl11.exe"); + + if(m_mediaInfoBin.isEmpty()) + { + qFatal("Invalid path to MediaInfo binary. Tool not initialized properly."); + } +} + +//////////////////////////////////////////////////////////// +// Thread Main +//////////////////////////////////////////////////////////// + +void FileAnalyzer::run() +{ + m_bSuccess = false; + m_inputFiles.sort(); + + while(!m_inputFiles.isEmpty()) + { + QString currentFile = QDir::fromNativeSeparators(m_inputFiles.takeFirst()); + qDebug("Adding: %s", currentFile.toLatin1().constData()); + emit fileSelected(QFileInfo(currentFile).fileName()); + AudioFileModel file = analyzeFile(currentFile); + emit fileAnalyzed(file); + } + + qDebug("All files added.\n"); + m_bSuccess = true; +} + +//////////////////////////////////////////////////////////// +// Public Functions +//////////////////////////////////////////////////////////// + +const AudioFileModel FileAnalyzer::analyzeFile(const QString &filePath) +{ + AudioFileModel audioFile(filePath); + m_currentSection = sectionOther; + + QProcess process; + process.setProcessChannelMode(QProcess::MergedChannels); + process.setReadChannel(QProcess::StandardOutput); + process.start(m_mediaInfoBin, QStringList() << filePath); + + while(process.state() != QProcess::NotRunning) + { + process.waitForReadyRead(1000); + QByteArray data = process.readLine().constData(); + while(data.size() > 0) + { + QString line = QString::fromUtf8(data).simplified(); + if(!line.isEmpty()) + { + int index = line.indexOf(':'); + if(index > 0) + { + QString key = line.left(index-1).trimmed(); + QString val = line.mid(index+1).trimmed(); + if(!key.isEmpty() && !val.isEmpty()) + { + updateInfo(audioFile, key, val); + } + } + else + { + updateSection(line); + } + } + data = process.readLine().constData(); + } + } + + if(audioFile.fileName().isEmpty()) + { + QString baseName = QFileInfo(filePath).fileName(); + int index = baseName.lastIndexOf("."); + + if(index >= 0) + { + baseName = baseName.left(index); + } + + baseName = baseName.replace("_", " ").simplified(); + index = baseName.lastIndexOf(" - "); + + if(index >= 0) + { + baseName = baseName.mid(index + 3).trimmed(); + } + + audioFile.setFileName(baseName); + } + + return audioFile; +} + +void FileAnalyzer::updateSection(const QString §ion) +{ + if(section.startsWith("General", Qt::CaseInsensitive)) + { + m_currentSection = sectionGeneral; + } + else if(!section.compare("Audio", Qt::CaseInsensitive) || section.startsWith("Audio #1", Qt::CaseInsensitive)) + { + m_currentSection = sectionAudio; + } + else if(section.startsWith("Audio", Qt::CaseInsensitive) || section.startsWith("Video", Qt::CaseInsensitive) || section.startsWith("Text", Qt::CaseInsensitive) || + section.startsWith("Menu", Qt::CaseInsensitive) || section.startsWith("Image", Qt::CaseInsensitive) || section.startsWith("Chapters", Qt::CaseInsensitive)) + { + m_currentSection = sectionOther; + } + else + { + qWarning("Unknown section: %s", section.toLatin1().constData()); + } +} + +void FileAnalyzer::updateInfo(AudioFileModel &audioFile, const QString &key, const QString &value) +{ + switch(m_currentSection) + { + case sectionGeneral: + if(!key.compare("Title", Qt::CaseInsensitive) || !key.compare("Track", Qt::CaseInsensitive) || !key.compare("Track Name", Qt::CaseInsensitive)) + { + if(audioFile.fileName().isEmpty()) audioFile.setFileName(value); + } + else if(!key.compare("Duration", Qt::CaseInsensitive)) + { + if(!audioFile.fileDuration()) audioFile.setFileDuration(parseDuration(value)); + } + else if(!key.compare("Artist", Qt::CaseInsensitive) || !key.compare("Performer", Qt::CaseInsensitive)) + { + if(audioFile.fileArtist().isEmpty()) audioFile.setFileArtist(value); + } + else if(!key.compare("Album", Qt::CaseInsensitive)) + { + if(audioFile.fileAlbum().isEmpty()) audioFile.setFileAlbum(value); + } + else if(!key.compare("Genre", Qt::CaseInsensitive)) + { + if(audioFile.fileGenre().isEmpty()) audioFile.setFileGenre(value); + } + else if(!key.compare("Year", Qt::CaseInsensitive) || !key.compare("Recorded Date", Qt::CaseInsensitive) || !key.compare("Encoded Date", Qt::CaseInsensitive)) + { + if(!audioFile.fileYear()) audioFile.setFileYear(parseYear(value)); + } + else if(!key.compare("Comment", Qt::CaseInsensitive)) + { + if(audioFile.fileComment().isEmpty()) audioFile.setFileComment(value); + } + else if(!key.compare("Track Name/Position", Qt::CaseInsensitive)) + { + if(!audioFile.filePosition()) audioFile.setFilePosition(value.toInt()); + } + else if(!key.compare("Format", Qt::CaseInsensitive)) + { + if(audioFile.formatContainerType().isEmpty()) audioFile.setFormatContainerType(value); + } + else if(!key.compare("Format Profile", Qt::CaseInsensitive)) + { + if(audioFile.formatContainerProfile().isEmpty()) audioFile.setFormatContainerProfile(value); + } + break; + + case sectionAudio: + if(!key.compare("Year", Qt::CaseInsensitive) || !key.compare("Recorded Date", Qt::CaseInsensitive) || !key.compare("Encoded Date", Qt::CaseInsensitive)) + { + if(!audioFile.fileYear()) audioFile.setFileYear(parseYear(value)); + } + else if(!key.compare("Format", Qt::CaseInsensitive)) + { + if(audioFile.formatAudioType().isEmpty()) audioFile.setFormatAudioType(value); + } + else if(!key.compare("Format Profile", Qt::CaseInsensitive)) + { + if(audioFile.formatAudioProfile().isEmpty()) audioFile.setFormatAudioProfile(value); + } + else if(!key.compare("Format Version", Qt::CaseInsensitive)) + { + if(audioFile.formatAudioVersion().isEmpty()) audioFile.setFormatAudioVersion(value); + } + else if(!key.compare("Channel(s)", Qt::CaseInsensitive)) + { + if(!audioFile.formatAudioChannels()) audioFile.setFormatAudioChannels(value.split(" ", QString::SkipEmptyParts).first().toInt()); + } + else if(!key.compare("Sampling rate", Qt::CaseInsensitive)) + { + if(!audioFile.formatAudioSamplerate()) audioFile.setFormatAudioSamplerate(ceil(value.split(" ", QString::SkipEmptyParts).first().toFloat() * 1000.0f)); + } + else if(!key.compare("Bit depth", Qt::CaseInsensitive)) + { + if(!audioFile.formatAudioBitdepth()) audioFile.setFormatAudioBitdepth(value.split(" ", QString::SkipEmptyParts).first().toInt()); + } + else if(!key.compare("Duration", Qt::CaseInsensitive)) + { + if(!audioFile.fileDuration()) audioFile.setFileDuration(parseDuration(value)); + } + break; + } +} + +unsigned int FileAnalyzer::parseYear(const QString &str) +{ + if(str.startsWith("UTC", Qt::CaseInsensitive)) + { + QDate date = QDate::fromString(str.mid(3).trimmed().left(10), "yyyy-MM-dd"); + if(date.isValid()) + { + return date.year(); + } + else + { + return 0; + } + } + else + { + bool ok = false; + int year = str.toInt(&ok); + if(ok && year > 0) + { + return year; + } + else + { + return 0; + } + } +} + +unsigned int FileAnalyzer::parseDuration(const QString &str) +{ + QTime time; + + time = QTime::fromString(str, "s's 'z'ms'"); + if(time.isValid()) + { + return (time.hour() * 60 * 60) + (time.minute() * 60) + time.second(); + } + + time = QTime::fromString(str, "m'mn 's's'"); + if(time.isValid()) + { + return (time.hour() * 60 * 60) + (time.minute() * 60) + time.second(); + } + + time = QTime::fromString(str, "h'h 'm'mn'"); + if(time.isValid()) + { + return (time.hour() * 60 * 60) + (time.minute() * 60) + time.second(); + } + + return 0; +} + + +//////////////////////////////////////////////////////////// +// EVENTS +//////////////////////////////////////////////////////////// + +/*NONE*/ \ No newline at end of file diff --git a/src/Thread_FileAnalyzer.h b/src/Thread_FileAnalyzer.h new file mode 100644 index 00000000..336d0005 --- /dev/null +++ b/src/Thread_FileAnalyzer.h @@ -0,0 +1,66 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +//#include "Model_AudioFile.h" + +#include +#include + +class AudioFileModel; + +//////////////////////////////////////////////////////////// +// Splash Thread +//////////////////////////////////////////////////////////// + +class FileAnalyzer: public QThread +{ + Q_OBJECT + +public: + FileAnalyzer(const QStringList &inputFiles); + void run(); + bool getSuccess(void) { return !isRunning() && m_bSuccess; } + +signals: + void fileSelected(const QString &fileName); + void fileAnalyzed(const AudioFileModel &file); + +private: + enum section_t + { + sectionGeneral, + sectionAudio, + sectionOther + }; + + const AudioFileModel analyzeFile(const QString &filePath); + void updateInfo(AudioFileModel &audioFile, const QString &key, const QString &value); + void updateSection(const QString §ion); + unsigned int parseYear(const QString &str); + unsigned int parseDuration(const QString &str); + + QStringList m_inputFiles; + QString m_mediaInfoBin; + section_t m_currentSection; + bool m_bSuccess; +}; diff --git a/src/Thread_Initialization.cpp b/src/Thread_Initialization.cpp new file mode 100644 index 00000000..27289cb3 --- /dev/null +++ b/src/Thread_Initialization.cpp @@ -0,0 +1,126 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#include "Thread_Initialization.h" + +#include "Global.h" +#include "LockedFile.h" + +//////////////////////////////////////////////////////////// +// TOOLS +//////////////////////////////////////////////////////////// + +struct lamexp_tool_t +{ + char *pcHash; + char *pcName; +}; + +static const struct lamexp_tool_t g_lamexp_tools[] = +{ + {"153f4274702f3629093b561a31dbf50e2c146305", "alac.exe"}, + {"09e5a07555a24b8c9d6af880b81eb8ed75be16fd", "faad.exe"}, + {"070bf98f78e572a97e4703ef5720c682567a6a56", "flac.exe"}, + {"cf379081035ae6bfb6f7bc22f13bfb7ac6302ac5", "gpgv.exe"}, + {"e613a1b56a2187edb4cdf3628a5a3e60de2e8cbc", "lame.exe"}, + {"775b260b3f64101beaeb317b74746f9bccdab842", "MAC.exe"}, + {"9c045de067b96c9e59325d2aaf5fe5eec634b6c1", "mediainfo_icl11.exe"}, + {"6f57f93b597f143453c6a30ee0bc9d161afe2e4b", "mediainfo_msvc9.exe"}, + {"55c293a80475f7aeccf449ac9487a4626e5139cb", "mpcdec.exe"}, + {"8bbf4a3fffe2ff143eb5ba2cf82ca16d676e865d", "mpg123.exe"}, + {"437a1b193727c3dbdd557b9a58659d1ce7fbec51", "oggdec.exe"}, + {"0fb39d4e0b40ea704d90cf8740a52ceee723e60b", "oggenc2_gen.exe"}, + {"1747ecf0c8b26a56aa319900252c157467714ac1", "oggenc2_p4.exe"}, + {"cd95369051f96b9ca3a997658771c5ea52bc874d", "selfdelete.exe"}, + {"ffeaa70bd6321185eafcb067ab2dc441650038bf", "shorten.exe"}, + {"346ce516281c97e92e1b8957ddeca52edcf2d056", "speexdec.exe"}, + {"8a74b767cfe88bf88c068fdae0de02d65589d25e", "takc.exe"}, + {"1c5cedb56358a0e8c4590a863a97c94d7d7e98b2", "ttaenc.exe"}, + {"7dcf6517aa90ed15737ee8ea50ea00a6dece2d27", "valdec.exe"}, + {"8159f4e824b3e343ece95ba6dbb5e16da9c4866e", "volumax.exe"}, + {"62e2805d1b2eb2a4d86a5ca6e6ea58010d05d2a7", "wget.exe"}, + {"b4c67ae8a1f67971a3092f3d6694d86eef7e3b2e", "wupdate.exe"}, + {"4d018ac7f6a42abd53faacfae5055c2a3c176430", "wvunpack.exe"}, + {NULL, NULL} +}; + +//////////////////////////////////////////////////////////// +// Constructor +//////////////////////////////////////////////////////////// + +InitializationThread::InitializationThread(void) +{ + m_bSuccess = false; +} + +void InitializationThread::delay(void) +{ + const char *temp = "|/-\\"; + printf("Thread is doing something important... ?\b", temp[4]); + + for(int i = 0; i < 20; i++) + { + printf("%c\b", temp[i%4]); + msleep(100); + } + + printf("Done\n\n"); +} + +void InitializationThread::run() +{ + m_bSuccess = false; + delay(); + + //Extract all files + for(int i = 0; i < INT_MAX; i++) + { + if(!g_lamexp_tools[i].pcName || !g_lamexp_tools[i].pcHash) + { + break; + } + + try + { + qDebug("Extracting file: %s", g_lamexp_tools[i].pcName); + QString toolName = QString::fromLatin1(g_lamexp_tools[i].pcName); + QByteArray toolHash = QString::fromLatin1(g_lamexp_tools[i].pcHash).toLatin1(); + LockedFile *lockedFile = new LockedFile(QString(":/tools/%1").arg(toolName), QString(lamexp_temp_folder()).append(QString("/tool_%1").arg(toolName)), toolHash); + lamexp_register_tool(toolName, lockedFile); + } + catch(char *errorMsg) + { + qFatal("At least one required tool could not be extracted:\n%s", errorMsg); + return; + } + } + + qDebug("All extracted.\n"); + + delay(); + m_bSuccess = true; +} + +//////////////////////////////////////////////////////////// +// EVENTS +//////////////////////////////////////////////////////////// + +/*NONE*/ \ No newline at end of file diff --git a/src/Thread_Initialization.h b/src/Thread_Initialization.h new file mode 100644 index 00000000..3962cf69 --- /dev/null +++ b/src/Thread_Initialization.h @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////////////////////////// +// LameXP - Audio Encoder Front-End +// Copyright (C) 2004-2010 LoRd_MuldeR +// +// 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 2 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, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// http://www.gnu.org/licenses/gpl-2.0.txt +/////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include + +//////////////////////////////////////////////////////////// +// Splash Thread +//////////////////////////////////////////////////////////// + +class InitializationThread: public QThread +{ + Q_OBJECT + +public: + InitializationThread(void); + void run(); + bool getSuccess(void) { return !isRunning() && m_bSuccess; } + +private: + void delay(void); + bool m_bSuccess; +}; diff --git a/tmp/delete_me.txt b/tmp/delete_me.txt new file mode 100644 index 00000000..3199756a --- /dev/null +++ b/tmp/delete_me.txt @@ -0,0 +1,2 @@ +This directory is reserved for files generated by Qt. +Do not edit any files in this directory, as your changes will be lost!