Improve about dialog + nicer method write version info to resource section

This commit is contained in:
LoRd_MuldeR 2010-11-07 23:06:30 +01:00
parent 8fa0757455
commit ce41761614
17 changed files with 311 additions and 70 deletions

View File

@ -47,15 +47,6 @@ END
#endif // APSTUDIO_INVOKED #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 // WAVE
@ -69,8 +60,8 @@ IDR_WAVE_ABOUT WAVE "res\\sounds\\uuaarrgh.wav"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,0,0,0 FILEVERSION VER_LAMEXP_MAJOR,VER_LAMEXP_MINOR_HI,VER_LAMEXP_MINOR_LO,VER_LAMEXP_BUILD
PRODUCTVERSION 4,0,0,0 PRODUCTVERSION VER_LAMEXP_MAJOR,VER_LAMEXP_MINOR_HI,VER_LAMEXP_MINOR_LO,VER_LAMEXP_BUILD
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x3L FILEFLAGS 0x3L
@ -88,13 +79,13 @@ BEGIN
VALUE "Comments", "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY" VALUE "Comments", "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY"
VALUE "CompanyName", "Free Software Foundation" VALUE "CompanyName", "Free Software Foundation"
VALUE "FileDescription", "LameXP - Audio Encoder Front-End" VALUE "FileDescription", "LameXP - Audio Encoder Front-End"
VALUE "FileVersion", "4.0.0.0" VALUE "FileVersion", VER_LAMEXP_STR
VALUE "InternalName", "LameXP Qt" VALUE "InternalName", "LameXP Qt"
VALUE "LegalCopyright", "Copyright (C) 2004-2010 LoRd_MuldeR <MuldeR2@GMX.de>" VALUE "LegalCopyright", "Copyright (C) 2004-2010 LoRd_MuldeR <MuldeR2@GMX.de>"
VALUE "LegalTrademarks", "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License <http://www.gnu.org/>" VALUE "LegalTrademarks", "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License <http://www.gnu.org/>"
VALUE "OriginalFilename", "LameXP.exe" VALUE "OriginalFilename", "LameXP.exe"
VALUE "ProductName", "LameXP - Audio Encoder Front-End" VALUE "ProductName", "LameXP - Audio Encoder Front-End"
VALUE "ProductVersion", "v4.00 Pre-Alpha" VALUE "ProductVersion", VER_LAMEXP_STR
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"
@ -103,6 +94,15 @@ BEGIN
END END
END END
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON "res\\MainIcon.ico"
#endif // German (Germany) resources #endif // German (Germany) resources
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

View File

@ -18,8 +18,8 @@
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="$(SolutionDir)out\$(ConfigurationName)" OutputDirectory="$(SolutionDir)bin\$(ConfigurationName)"
IntermediateDirectory="$(SolutionDir)out\$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="1" CharacterSet="1"
> >
@ -69,7 +69,7 @@
LinkIncremental="1" LinkIncremental="1"
AdditionalLibraryDirectories="&quot;$(QTDIR)\lib&quot;;&quot;$(QTDIR)\plugins\imageformats&quot;" AdditionalLibraryDirectories="&quot;$(QTDIR)\lib&quot;;&quot;$(QTDIR)\plugins\imageformats&quot;"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="1" SubSystem="2"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -96,8 +96,8 @@
</Configuration> </Configuration>
<Configuration <Configuration
Name="Release|Win32" Name="Release|Win32"
OutputDirectory="$(SolutionDir)out\$(ConfigurationName)" OutputDirectory="$(SolutionDir)bin\$(ConfigurationName)"
IntermediateDirectory="$(SolutionDir)out\$(ConfigurationName)" IntermediateDirectory="$(SolutionDir)obj\$(ConfigurationName)"
ConfigurationType="1" ConfigurationType="1"
CharacterSet="1" CharacterSet="1"
> >
@ -156,7 +156,7 @@
GenerateDebugInformation="false" GenerateDebugInformation="false"
AssemblyDebug="0" AssemblyDebug="0"
MapExports="false" MapExports="false"
SubSystem="1" SubSystem="2"
LinkTimeCodeGeneration="1" LinkTimeCodeGeneration="1"
TargetMachine="1" TargetMachine="1"
/> />

View File

@ -2,7 +2,7 @@
call _paths.bat call _paths.bat
REM ------------------------------------------ REM ------------------------------------------
set "TEMP_DIR=%TEMP%\~LameXP.%DATE%.tmp" set "TEMP_DIR=%TEMP%\~LameXP.%DATE%.tmp"
set "OUT_PATH=..\..\out\Release" set "OUT_PATH=..\..\bin\Release"
set "OUT_FILE=%OUT_PATH%\..\LameXP.%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%.Release.zip" set "OUT_FILE=%OUT_PATH%\..\LameXP.%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%.Release.zip"
REM ------------------------------------------ REM ------------------------------------------
del "%OUT_FILE%" del "%OUT_FILE%"
@ -29,8 +29,10 @@ mkdir "%TEMP_DIR%"
mkdir "%TEMP_DIR%\imageformats" mkdir "%TEMP_DIR%\imageformats"
REM ------------------------------------------ REM ------------------------------------------
copy "%OUT_PATH%\*.exe" "%TEMP_DIR%" copy "%OUT_PATH%\*.exe" "%TEMP_DIR%"
copy "%QTDIR%\bin\qtcore4.dll" "%TEMP_DIR%" copy "%QTDIR%\bin\QtCore4.dll" "%TEMP_DIR%"
copy "%QTDIR%\bin\qtgui4.dll" "%TEMP_DIR%" copy "%QTDIR%\bin\QtGui4.dll" "%TEMP_DIR%"
copy "%QTDIR%\bin\QtXml4.dll" "%TEMP_DIR%"
copy "%QTDIR%\bin\QtSvg4.dll" "%TEMP_DIR%"
copy "%QTDIR%\plugins\imageformats\q???4.dll" "%TEMP_DIR%\imageformats" copy "%QTDIR%\plugins\imageformats\q???4.dll" "%TEMP_DIR%\imageformats"
REM ------------------------------------------ REM ------------------------------------------
for %%f in ("%TEMP_DIR%\*.exe") do ( for %%f in ("%TEMP_DIR%\*.exe") do (

View File

@ -13,10 +13,6 @@
<property name="windowTitle"> <property name="windowTitle">
<string>LameXP - Audio Encoder Front-end</string> <string>LameXP - Audio Encoder Front-end</string>
</property> </property>
<property name="windowIcon">
<iconset resource="../res/Icons.qrc">
<normaloff>:/MainIcon.ico</normaloff>:/MainIcon.ico</iconset>
</property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
<item> <item>
@ -848,11 +844,14 @@
<property name="text"> <property name="text">
<string>Visit Official Homepage</string> <string>Visit Official Homepage</string>
</property> </property>
<property name="toolTip">
<string>Visit Official Web-Site</string>
</property>
</action> </action>
<action name="actionCheckUpdates"> <action name="actionCheckUpdates">
<property name="icon"> <property name="icon">
<iconset resource="../res/Icons.qrc"> <iconset resource="../res/Icons.qrc">
<normaloff>:/icons/transmit.png</normaloff>:/icons/transmit.png</iconset> <normaloff>:/icons/transmit_blue.png</normaloff>:/icons/transmit_blue.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>Check for Updates</string> <string>Check for Updates</string>
@ -898,6 +897,7 @@
<include location="../res/Images.qrc"/> <include location="../res/Images.qrc"/>
<include location="../res/Images.qrc"/> <include location="../res/Images.qrc"/>
<include location="../res/Images.qrc"/> <include location="../res/Images.qrc"/>
<include location="../res/Images.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>

View File

@ -2,6 +2,7 @@
<RCC version="1.0"> <RCC version="1.0">
<qresource> <qresource>
<file>MainIcon.ico</file> <file>MainIcon.ico</file>
<file>MainIcon.png</file>
<file>icons/add.png</file> <file>icons/add.png</file>
<file>icons/application_view_list.png</file> <file>icons/application_view_list.png</file>
<file>icons/arrow_down.png</file> <file>icons/arrow_down.png</file>
@ -42,7 +43,7 @@
<file>icons/star.png</file> <file>icons/star.png</file>
<file>icons/table_edit.png</file> <file>icons/table_edit.png</file>
<file>icons/timeline_marker.png</file> <file>icons/timeline_marker.png</file>
<file>icons/transmit.png</file> <file>icons/transmit_blue.png</file>
<file>icons/user.png</file> <file>icons/user.png</file>
<file>icons/world.png</file> <file>icons/world.png</file>
</qresource> </qresource>

View File

@ -9,5 +9,6 @@
<file>images/Splash.png</file> <file>images/Splash.png</file>
<file>images/Thumb.png</file> <file>images/Thumb.png</file>
<file>images/Construction.gif</file> <file>images/Construction.gif</file>
</qresource> <file>images/Qt.svg</file>
</qresource>
</RCC> </RCC>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 KiB

After

Width:  |  Height:  |  Size: 23 KiB

BIN
res/MainIcon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
res/images/Qt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

93
res/images/Qt.svg Normal file
View File

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="44px"
version="1.1"
viewBox="0 0 44 44"
width="44px"
x="0px"
y="0px"
id="svg2"
inkscape:version="0.47 r22583"
sodipodi:docname="qt.svg">
<metadata
id="metadata18">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs16">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 22 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="44 : 22 : 1"
inkscape:persp3d-origin="22 : 14.666667 : 1"
id="perspective2836" />
</defs>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1020"
id="namedview14"
showgrid="false"
inkscape:zoom="21.454545"
inkscape:cx="49.412871"
inkscape:cy="21.894358"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="g3" />
<g
transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
id="g3">
<path
d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
style="fill:#006225"
id="path5"
sodipodi:nodetypes="cccccccc" />
<path
d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
style="fill:#80c342"
id="path7" />
<path
d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
style="fill:#006225"
id="path11" />
<path
d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
style="fill:#006225"
id="path13" />
<path
id="path17"
style="fill:#ffffff"
d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
<path
d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
style="fill:#006225"
id="path19" />
<path
id="path21"
style="fill:#006225"
d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -42,6 +42,8 @@
//Win32 includes //Win32 includes
#include <Windows.h> #include <Windows.h>
#define LINK(URL) QString("<a href=\"%1\">%2</a>").arg(URL).arg(URL)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Constructor // Constructor
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
@ -156,11 +158,13 @@ void MainWindow::aboutButtonClicked(void)
{ {
QString aboutText; QString aboutText;
aboutText += "<b><font size=\"+1\">LameXP - Audio Encoder Front-end</font></b><br>"; aboutText += "<h2>LameXP - Audio Encoder Front-end</h2>";
aboutText += "Copyright (C) 2004-2010 LoRd_MuldeR <a href=\"mailto:mulder2@gmx.de\">&lt;MuldeR2@GMX.de&gt;</a><br>"; aboutText += QString("<b>Copyright (C) 2004-%1 LoRd_MuldeR &lt;MuldeR2@GMX.de&gt;. Some rights reserved.</b><br>").arg(max(lamexp_version_date().year(),QDate::currentDate().year()));
aboutText += QString().sprintf("Version %d.%02d %s, Build %d [%s]<br><br>", lamexp_version_major(), lamexp_version_minor(), lamexp_version_release(), lamexp_version_build(), lamexp_version_date().toString(Qt::ISODate).toLatin1().constData()); aboutText += QString().sprintf("<b>Version %d.%02d %s, Build %d [%s]</b><br><br>", lamexp_version_major(), lamexp_version_minor(), lamexp_version_release(), lamexp_version_build(), lamexp_version_date().toString(Qt::ISODate).toLatin1().constData());
aboutText += "Please visit <a href=\"http://mulder.dummwiedeutsch.de/\">http://mulder.dummwiedeutsch.de/</a> for news and updates!<br><hr><br>"; aboutText += "<nobr>Please visit the official web-site at ";
aboutText += "This program is free software; you can redistribute it and/or<br>"; aboutText += LINK("http://mulder.dummwiedeutsch.de/") += " for news and updates!</nobr><br>";
aboutText += "<hr><br>";
aboutText += "<nobr><tt>This program is free software; you can redistribute it and/or<br>";
aboutText += "modify it under the terms of the GNU General Public License<br>"; aboutText += "modify it under the terms of the GNU General Public License<br>";
aboutText += "as published by the Free Software Foundation; either version 2<br>"; aboutText += "as published by the Free Software Foundation; either version 2<br>";
aboutText += "of the License, or (at your option) any later version.<br><br>"; aboutText += "of the License, or (at your option) any later version.<br><br>";
@ -170,26 +174,64 @@ void MainWindow::aboutButtonClicked(void)
aboutText += "GNU General Public License for more details.<br><br>"; aboutText += "GNU General Public License for more details.<br><br>";
aboutText += "You should have received a copy of the GNU General Public License<br>"; aboutText += "You should have received a copy of the GNU General Public License<br>";
aboutText += "along with this program; if not, write to the Free Software<br>"; aboutText += "along with this program; if not, write to the Free Software<br>";
aboutText += "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.<br><hr><br>"; aboutText += "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</tt></nobr><br>";
aboutText += "This software uses the 'slick' icon set by <a href=\"http://www.famfamfam.com/lab/icons/silk/\">http://www.famfamfam.com/</a>.<br>"; aboutText += "<hr><br>";
aboutText += "This software uses the 'slick' icon set by Mark James &ndash; <a href=\"http://www.famfamfam.com/lab/icons/silk/\">http://www.famfamfam.com/</a>.<br>";
aboutText += "Released under the Creative Commons Attribution 2.5 License.<br>"; aboutText += "Released under the Creative Commons Attribution 2.5 License.<br>";
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QMessageBox *aboutBox = new QMessageBox(this);
PlaySound(MAKEINTRESOURCE(IDR_WAVE_ABOUT), GetModuleHandle(NULL), SND_RESOURCE | SND_SYNC); aboutBox->setText(aboutText);
QApplication::restoreOverrideCursor(); aboutBox->setIconPixmap(dynamic_cast<QApplication*>(QApplication::instance())->windowIcon().pixmap(QSize(64,64)));
aboutBox->setWindowTitle("About LameXP");
QPushButton *firstButton = aboutBox->addButton("More About...", QMessageBox::AcceptRole);
firstButton->setIcon(QIcon(":/icons/information.png"));
firstButton->setMinimumWidth(120);
QPushButton *secondButton = aboutBox->addButton("About Qt...", QMessageBox::AcceptRole);
secondButton->setIcon(QIcon(":/images/Qt.svg"));
secondButton->setMinimumWidth(120);
QPushButton *thirdButton = aboutBox->addButton("Discard", QMessageBox::AcceptRole);
thirdButton->setIcon(QIcon(":/icons/cross.png"));
thirdButton->setMinimumWidth(90);
PlaySound(MAKEINTRESOURCE(IDR_WAVE_ABOUT), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC);
while(1) while(1)
{ {
switch(QMessageBox::information(this, "About LameXP", aboutText, " More about... ", " About Qt... ", " Discard ")) switch(aboutBox->exec())
{ {
case 0: case 0:
{ {
const QString li("<li style=\"margin-left:-25px\">");
QString moreAboutText; QString moreAboutText;
moreAboutText += "The following third-party software is used in LameXP:<br><br>"; moreAboutText += "<h3>The following third-party software is used in LameXP:</h3>";
moreAboutText += "<b>LAME - OpenSource mp3 Encoder</b><br>Released under the terms of the GNU Leser General Public License.<br><a href=\"http://lame.sourceforge.net/\">http://lame.sourceforge.net/</a><br><br>"; moreAboutText += "<ul>";
moreAboutText += "<b>OggEnc - Ogg Vorbis Encoder</b><br>Completely open and patent-free audio encoding technology.<br><a href=\"http://www.vorbis.com/\">http://www.vorbis.com/</a><br><br>"; moreAboutText += li + "<b>LAME - OpenSource mp3 Encoder</b><br>";
moreAboutText += "<b>Nero AAC reference MPEG-4 Encoder</b><br>Freeware state-of-the-art HE-AAC encoder with 2-Pass support.<br><a href=\"http://www.nero.com/eng/technologies-aac-codec.html\">http://www.nero.com/eng/technologies-aac-codec.html</a><br>"; moreAboutText += "Released under the terms of the GNU Leser General Public License.<br>";
QMessageBox::information(this, "About third-party tools", moreAboutText, "Discard"); moreAboutText += LINK("http://lame.sourceforge.net/");
moreAboutText += "<br>";
moreAboutText += li + "<b>OggEnc - Ogg Vorbis Encoder</b>";
moreAboutText += "<br>Completely open and patent-free audio encoding technology.<br>";
moreAboutText += LINK("http://www.vorbis.com/");
moreAboutText += "<br>";
moreAboutText += li + "<b>Nero AAC reference MPEG-4 Encoder</b><br>";
moreAboutText += "Freeware state-of-the-art HE-AAC encoder with 2-Pass support.<br>";
moreAboutText += LINK("http://www.nero.com/eng/technologies-aac-codec.html/");
moreAboutText += "<br>";
moreAboutText += li + "<b>MediaInfo - Media File Analysis Tool</b><br>";
moreAboutText += "Released under the terms of the GNU Leser General Public License.<br>";
moreAboutText += LINK("http://mediainfo.sourceforge.net/");
moreAboutText += "<br></ul>";
QMessageBox *moreAboutBox = new QMessageBox(this);
moreAboutBox->setText(moreAboutText);
moreAboutBox->setIconPixmap(dynamic_cast<QApplication*>(QApplication::instance())->windowIcon().pixmap(QSize(64,64)));
moreAboutBox->setWindowTitle("About Third-party Software");
moreAboutBox->exec();
LAMEXP_DELETE(moreAboutBox);
break; break;
} }
case 1: case 1:
@ -199,6 +241,8 @@ void MainWindow::aboutButtonClicked(void)
return; return;
} }
} }
LAMEXP_DELETE(aboutBox);
} }
/* /*

View File

@ -36,8 +36,14 @@
#include <QStringList> #include <QStringList>
//LameXP includes //LameXP includes
#include "Resource.h"
#include "LockedFile.h" #include "LockedFile.h"
//CRT includes
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
//Debug only includes //Debug only includes
#ifdef _DEBUG #ifdef _DEBUG
#include <Psapi.h> #include <Psapi.h>
@ -48,10 +54,10 @@
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
//Build version //Build version
static const unsigned int g_lamexp_version_major = 4; static const unsigned int g_lamexp_version_major = VER_LAMEXP_MAJOR;
static const unsigned int g_lamexp_version_minor = 0; static const unsigned int g_lamexp_version_minor = VER_LAMEXP_MINOR;
static const unsigned int g_lamexp_version_build = 4; static const unsigned int g_lamexp_version_build = VER_LAMEXP_BUILD;
static const char *g_lamexp_version_release = "Pre-Alpha"; static const char *g_lamexp_version_release = VER_LAMEXP_SUFFIX_STR;
//Build date //Build date
static QDate g_lamexp_version_date; static QDate g_lamexp_version_date;
@ -79,7 +85,11 @@ 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_minor(void) { return g_lamexp_version_minor; }
unsigned int lamexp_version_build(void) { return g_lamexp_version_build; } unsigned int lamexp_version_build(void) { return g_lamexp_version_build; }
const char *lamexp_version_release(void) { return g_lamexp_version_release; } 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")); }
bool lamexp_version_demo(void)
{
return !(strstr(g_lamexp_version_release, "Final") || strstr(g_lamexp_version_release, "Hotfix"));
}
/* /*
* Get build date date * Get build date date
@ -127,6 +137,41 @@ const QDate &lamexp_version_date(void)
return g_lamexp_version_date; return g_lamexp_version_date;
} }
/*
* Initialize the console
*/
void lamexp_init_console(int argc, char* argv[])
{
for(int i = 0; i < argc; i++)
{
if(lamexp_version_demo() || !_stricmp(argv[i], "--console"))
{
if(AllocConsole())
{
//See: http://support.microsoft.com/default.aspx?scid=kb;en-us;105305
int hCrtStdOut = _open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
int hCrtStdErr = _open_osfhandle((long) GetStdHandle(STD_ERROR_HANDLE), _O_TEXT);
FILE *hfStdOut = _fdopen(hCrtStdOut, "w");
FILE *hfStderr = _fdopen(hCrtStdErr, "w");
*stdout = *hfStdOut;
*stderr = *hfStderr;
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);
}
HMENU hMenu = GetSystemMenu(GetConsoleWindow(), 0);
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);
SetConsoleCtrlHandler(NULL, TRUE);
SetConsoleTitle(L"LameXP - Audio Encoder Front-End | Debug Console");
SetConsoleOutputCP(CP_UTF8);
break;
}
}
}
/* /*
* Initialize Qt framework * Initialize Qt framework
*/ */
@ -173,14 +218,15 @@ bool lamexp_init_qt(int argc, char* argv[])
application->setApplicationVersion(QString().sprintf("%d.%02d.%04d", lamexp_version_major(), lamexp_version_minor(), lamexp_version_build())); application->setApplicationVersion(QString().sprintf("%d.%02d.%04d", lamexp_version_major(), lamexp_version_minor(), lamexp_version_build()));
application->setOrganizationName("LoRd_MuldeR"); application->setOrganizationName("LoRd_MuldeR");
application->setOrganizationDomain("mulder.dummwiedeutsch.de"); application->setOrganizationDomain("mulder.dummwiedeutsch.de");
application->setWindowIcon(QIcon(":/MainIcon.ico")); application->setWindowIcon(QIcon(":/MainIcon.png"));
//Load plugins from application directory //Load plugins from application directory
QCoreApplication::setLibraryPaths(QStringList() << QApplication::applicationDirPath()); QCoreApplication::setLibraryPaths(QStringList() << QApplication::applicationDirPath());
qDebug("Library Path:\n%s\n", QApplication::libraryPaths().first().toUtf8().constData());
//Check for supported image formats //Check for supported image formats
QList<QByteArray> supportedFormats = QImageReader::supportedImageFormats(); QList<QByteArray> supportedFormats = QImageReader::supportedImageFormats();
if(!(supportedFormats.contains("png") && supportedFormats.contains("gif") && supportedFormats.contains("ico"))) if(!(supportedFormats.contains("png") && supportedFormats.contains("gif") && supportedFormats.contains("ico") && supportedFormats.contains("svg")))
{ {
qFatal("Qt initialization error: At least one image format plugin is missing!"); qFatal("Qt initialization error: At least one image format plugin is missing!");
return false; return false;
@ -219,7 +265,7 @@ bool lamexp_check_instances(void)
{ {
QString errorMessage = sharedMemory->errorString(); QString errorMessage = sharedMemory->errorString();
LAMEXP_DELETE(sharedMemory); LAMEXP_DELETE(sharedMemory);
qFatal("Failed to create shared memory: %s", errorMessage.toLatin1().constData()); qFatal("Failed to create shared memory: %s", errorMessage.toUtf8().constData());
return false; return false;
} }
} }

View File

@ -45,6 +45,7 @@ const char *lamexp_version_release(void);
bool lamexp_version_demo(void); bool lamexp_version_demo(void);
//Public functions //Public functions
void lamexp_init_console(int argc, char* argv[]);
bool lamexp_init_qt(int argc, char* argv[]); bool lamexp_init_qt(int argc, char* argv[]);
bool lamexp_check_instances(void); bool lamexp_check_instances(void);
void lamexp_register_tool(const QString &toolName, LockedFile *file); void lamexp_register_tool(const QString &toolName, LockedFile *file);

View File

@ -45,7 +45,7 @@ LockedFile::LockedFile(const QString &resourcePath, const QString &outPath, cons
{ {
QFile::remove(QFileInfo(outFile).absoluteFilePath()); QFile::remove(QFileInfo(outFile).absoluteFilePath());
char error_msg[256]; char error_msg[256];
strcpy_s(error_msg, 256, QString("File '%1' could not be written!").arg(QFileInfo(outFile).fileName()).toLatin1().constData()); strcpy_s(error_msg, 256, QString("File '%1' could not be written!").arg(QFileInfo(outFile).fileName()).toUtf8().constData());
throw error_msg; throw error_msg;
} }
outFile.close(); outFile.close();
@ -53,7 +53,7 @@ LockedFile::LockedFile(const QString &resourcePath, const QString &outPath, cons
else else
{ {
char error_msg[256]; char error_msg[256];
strcpy_s(error_msg, 256, QString("File '%1' could not be created!").arg(QFileInfo(outFile).fileName()).toLatin1().constData()); strcpy_s(error_msg, 256, QString("File '%1' could not be created!").arg(QFileInfo(outFile).fileName()).toUtf8().constData());
throw error_msg; throw error_msg;
} }

View File

@ -36,11 +36,13 @@
int lamexp_main(int argc, char* argv[]) int lamexp_main(int argc, char* argv[])
{ {
//Init console
lamexp_init_console(argc, argv);
//Print version info //Print version info
SetConsoleTitle(L"LameXP - Audio Encoder Front-End | DO NOT CLOSE CONSOLE !!!"); qDebug("LameXP - Audio Encoder Front-End");
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("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 <MuldeR2@GMX.de>\n"); qDebug("Copyright (C) 2004-%04d LoRd_MuldeR <MuldeR2@GMX.de>\n", max(lamexp_version_date().year(),QDate::currentDate().year()));
//print license info //print license info
qDebug("This program is free software: you can redistribute it and/or modify"); qDebug("This program is free software: you can redistribute it and/or modify");
@ -60,7 +62,8 @@ int lamexp_main(int argc, char* argv[])
qWarning(QString("Note: This demo (pre-release) version of LameXP will expire at %1.\n").arg(expireDate.toString(Qt::ISODate)).toLatin1().constData()); 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) 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"); qWarning("Expired !!!");
QMessageBox::warning(NULL, "LameXP - Expired", QString("This demo (pre-release) version of LameXP has expired at %1.\nLameXP is free software and release versions won't expire.").arg(expireDate.toString()), "Exit Program");
return 0; return 0;
} }
} }

View File

@ -1,17 +1,61 @@
//{{NO_DEPENDENCIES}} ///////////////////////////////////////////////////////////////////////////////
// Microsoft Visual C++ generated include file. // LameXP - Audio Encoder Front-End
// Used by g:\DeLpHi\LameXP_Qt\LameXP\LameXP.rc // Copyright (C) 2004-2010 LoRd_MuldeR <MuldeR2@GMX.de>
// //
#define IDI_ICON1 101 // 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 Version Info
*/
#define VER_LAMEXP_MAJOR 4
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 0
#define VER_LAMEXP_BUILD 7
#define VER_LAMEXP_SUFFIX TechPreview
/*
* Resource ID's
*/
#define IDI_ICON1 106
#define IDR_WAVE_ABOUT 666 #define IDR_WAVE_ABOUT 666
// Next default values for new objects /*
// * Next default values for new objects
*/
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102 #define _APS_NEXT_RESOURCE_VALUE 107
#define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101
#endif #endif
#endif #endif
/*
* Helper macros (having fun with the C pre-processor)
*/
#define VER_LAMEXP_STR_HLP1(X) #X
#define VER_LAMEXP_STR_HLP2(V,W,X,Y,Z) VER_LAMEXP_STR_HLP1(v##V.W##X Z [Build Y])
#define VER_LAMEXP_STR_HLP3(V,W,X,Y,Z) VER_LAMEXP_STR_HLP2(V,W,X,Y,Z)
#define VER_LAMEXP_STR VER_LAMEXP_STR_HLP3(VER_LAMEXP_MAJOR,VER_LAMEXP_MINOR_HI,VER_LAMEXP_MINOR_LO,VER_LAMEXP_BUILD,VER_LAMEXP_SUFFIX)
#define VER_LAMEXP_SUFFIX_STR_HLP1(X) #X
#define VER_LAMEXP_SUFFIX_STR_HLP2(X) VER_LAMEXP_SUFFIX_STR_HLP1(X)
#define VER_LAMEXP_SUFFIX_STR VER_LAMEXP_SUFFIX_STR_HLP2(VER_LAMEXP_SUFFIX)
#define VER_LAMEXP_MINOR_HLP1(X,Y) X##Y
#define VER_LAMEXP_MINOR_HLP2(X,Y) VER_LAMEXP_MINOR_HLP1(X,Y)
#define VER_LAMEXP_MINOR VER_LAMEXP_MINOR_HLP2(VER_LAMEXP_MINOR_HI,VER_LAMEXP_MINOR_LO)

View File

@ -61,9 +61,14 @@ void FileAnalyzer::run()
while(!m_inputFiles.isEmpty()) while(!m_inputFiles.isEmpty())
{ {
QString currentFile = QDir::fromNativeSeparators(m_inputFiles.takeFirst()); QString currentFile = QDir::fromNativeSeparators(m_inputFiles.takeFirst());
qDebug("Adding: %s", currentFile.toLatin1().constData()); qDebug("Analyzing: %s", currentFile.toUtf8().constData());
emit fileSelected(QFileInfo(currentFile).fileName()); emit fileSelected(QFileInfo(currentFile).fileName());
AudioFileModel file = analyzeFile(currentFile); AudioFileModel file = analyzeFile(currentFile);
if(file.formatContainerType().isEmpty() || file.formatAudioType().isEmpty())
{
qDebug("Skipped: %s", file.filePath().toUtf8().constData());
continue;
}
emit fileAnalyzed(file); emit fileAnalyzed(file);
} }
@ -83,7 +88,8 @@ const AudioFileModel FileAnalyzer::analyzeFile(const QString &filePath)
QProcess process; QProcess process;
process.setProcessChannelMode(QProcess::MergedChannels); process.setProcessChannelMode(QProcess::MergedChannels);
process.setReadChannel(QProcess::StandardOutput); process.setReadChannel(QProcess::StandardOutput);
process.start(m_mediaInfoBin, QStringList() << filePath); process.start(m_mediaInfoBin, QStringList() << QDir::toNativeSeparators(filePath));
process.waitForStarted();
while(process.state() != QProcess::NotRunning) while(process.state() != QProcess::NotRunning)
{ {
@ -154,7 +160,7 @@ void FileAnalyzer::updateSection(const QString &section)
} }
else else
{ {
qWarning("Unknown section: %s", section.toLatin1().constData()); qWarning("Unknown section: %s", section.toUtf8().constData());
} }
} }