Added x265 about box and web-links.

This commit is contained in:
LoRd_MuldeR 2014-02-21 19:28:17 +01:00
parent f35b9d2969
commit 6f4a2c5493
7 changed files with 141 additions and 39 deletions

View File

@ -342,6 +342,7 @@
<addaction name="actionWebVideoLAN"/> <addaction name="actionWebVideoLAN"/>
<addaction name="actionWebKomisar"/> <addaction name="actionWebKomisar"/>
<addaction name="actionWebJEEB"/> <addaction name="actionWebJEEB"/>
<addaction name="actionWebFreeCodecs"/>
</widget> </widget>
<widget class="QMenu" name="menuDownloadAvisynth"> <widget class="QMenu" name="menuDownloadAvisynth">
<property name="title"> <property name="title">
@ -355,13 +356,29 @@
<addaction name="actionWebAvisynth64"/> <addaction name="actionWebAvisynth64"/>
<addaction name="actionWebAvisynthPlus"/> <addaction name="actionWebAvisynthPlus"/>
</widget> </widget>
<widget class="QMenu" name="menuDownload_x265_Binaries">
<property name="title">
<string>Download x265 Binaries</string>
</property>
<property name="icon">
<iconset resource="../res/resources.qrc">
<normaloff>:/buttons/setup.png</normaloff>:/buttons/setup.png</iconset>
</property>
<addaction name="actionWebX265BinRU"/>
<addaction name="actionWebX265BinORG"/>
<addaction name="actionWebX265BinEU"/>
<addaction name="separator"/>
<addaction name="actionWebX265BinFF"/>
</widget>
<addaction name="actionCheckForUpdates"/> <addaction name="actionCheckForUpdates"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="actionWebMulder"/> <addaction name="actionWebMulder"/>
<addaction name="actionWebX264"/> <addaction name="actionWebX264"/>
<addaction name="actionWebX265"/>
<addaction name="actionWebSupport"/> <addaction name="actionWebSupport"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="menuDownloadX264"/> <addaction name="menuDownloadX264"/>
<addaction name="menuDownload_x265_Binaries"/>
<addaction name="menuDownloadAvisynth"/> <addaction name="menuDownloadAvisynth"/>
<addaction name="actionWebVapourSynth"/> <addaction name="actionWebVapourSynth"/>
<addaction name="separator"/> <addaction name="separator"/>
@ -665,6 +682,65 @@
<string>Avisynth+ (32-Bit / 64-Bit)</string> <string>Avisynth+ (32-Bit / 64-Bit)</string>
</property> </property>
</action> </action>
<action name="actionWebX265">
<property name="icon">
<iconset resource="../res/resources.qrc">
<normaloff>:/buttons/x265.png</normaloff>:/buttons/x265.png</iconset>
</property>
<property name="text">
<string>Official x265 Web-Site</string>
</property>
</action>
<action name="actionDownload_x265_Binaries">
<property name="text">
<string>Download x265 Binaries</string>
</property>
</action>
<action name="actionWebX265BinRU">
<property name="icon">
<iconset resource="../res/resources.qrc">
<normaloff>:/buttons/world_link.png</normaloff>:/buttons/world_link.png</iconset>
</property>
<property name="text">
<string>*Unofficial* x265 binaries [x265.ru]</string>
</property>
</action>
<action name="actionWebX265BinFF">
<property name="icon">
<iconset resource="../res/resources.qrc">
<normaloff>:/buttons/world_link.png</normaloff>:/buttons/world_link.png</iconset>
</property>
<property name="text">
<string>FFmepg with x265 encoding support</string>
</property>
</action>
<action name="actionWebX265BinEU">
<property name="icon">
<iconset resource="../res/resources.qrc">
<normaloff>:/buttons/world_link.png</normaloff>:/buttons/world_link.png</iconset>
</property>
<property name="text">
<string>*Unofficial* x265 binaries [builds.x265.eu]</string>
</property>
</action>
<action name="actionWebX265BinORG">
<property name="icon">
<iconset resource="../res/resources.qrc">
<normaloff>:/buttons/world_link.png</normaloff>:/buttons/world_link.png</iconset>
</property>
<property name="text">
<string>*Unofficial* x265 binaries [chromashift.org]</string>
</property>
</action>
<action name="actionWebFreeCodecs">
<property name="icon">
<iconset resource="../res/resources.qrc">
<normaloff>:/buttons/world_link.png</normaloff>:/buttons/world_link.png</iconset>
</property>
<property name="text">
<string>Codecs.com Mirror</string>
</property>
</action>
</widget> </widget>
<tabstops> <tabstops>
<tabstop>buttonAddJob</tabstop> <tabstop>buttonAddJob</tabstop>

BIN
res/buttons/x265.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
res/images/x265.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -48,6 +48,7 @@
<file>buttons/world_link.png</file> <file>buttons/world_link.png</file>
<file>buttons/wrench.png</file> <file>buttons/wrench.png</file>
<file>buttons/x264.png</file> <file>buttons/x264.png</file>
<file>buttons/x265.png</file>
<file>images/avisynth.png</file> <file>images/avisynth.png</file>
<file>images/loading.gif</file> <file>images/loading.gif</file>
<file>images/movie.png</file> <file>images/movie.png</file>
@ -55,5 +56,6 @@
<file>images/update.png</file> <file>images/update.png</file>
<file>images/update_wizard.png</file> <file>images/update_wizard.png</file>
<file>images/x264.png</file> <file>images/x264.png</file>
<file>images/x265.png</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -26,7 +26,7 @@
#define VER_X264_MAJOR 2 #define VER_X264_MAJOR 2
#define VER_X264_MINOR 3 #define VER_X264_MINOR 3
#define VER_X264_PATCH 1 #define VER_X264_PATCH 1
#define VER_X264_BUILD 775 #define VER_X264_BUILD 778
#define VER_X264_MINIMUM_REV 2380 #define VER_X264_MINIMUM_REV 2380
#define VER_X264_CURRENT_API 142 #define VER_X264_CURRENT_API 142

View File

@ -68,6 +68,8 @@ const char *tpl_last = "<LAST_USED>";
#define INIT_ERROR_EXIT() do { m_status = STATUS_EXITTING; close(); qApp->exit(-1); return; } while(0) #define INIT_ERROR_EXIT() do { m_status = STATUS_EXITTING; close(); qApp->exit(-1); return; } while(0)
#define ENSURE_APP_IS_IDLE() do { if(m_status != STATUS_IDLE) { x264_beep(x264_beep_warning); qWarning("Cannot perfrom this action at this time!"); return; } } while(0) #define ENSURE_APP_IS_IDLE() do { if(m_status != STATUS_IDLE) { x264_beep(x264_beep_warning); qWarning("Cannot perfrom this action at this time!"); return; } } while(0)
#define NEXT(X) ((*reinterpret_cast<int*>(&(X)))++) #define NEXT(X) ((*reinterpret_cast<int*>(&(X)))++)
#define SETUP_WEBLINK(OBJ, URL) do { (OBJ)->setData(QVariant(QUrl(URL))); connect((OBJ), SIGNAL(triggered()), this, SLOT(showWebLink())); } while(0)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Constructor & Destructor // Constructor & Destructor
@ -168,24 +170,32 @@ MainWindow::MainWindow(const x264_cpu_t *const cpuFeatures, IPC *ipc)
//Enable menu //Enable menu
connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(openActionTriggered())); connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(openActionTriggered()));
connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(showAbout())); connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(showAbout()));
connect(ui->actionWebMulder, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebX264, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebKomisar, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebVideoLAN, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebJEEB, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebAvisynth32, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebAvisynth64, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebAvisynthPlus, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebVapourSynth, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebVapourSynthDocs, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebWiki, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebBluRay, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebAvsWiki, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebSecret, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionWebSupport, SIGNAL(triggered()), this, SLOT(showWebLink()));
connect(ui->actionPreferences, SIGNAL(triggered()), this, SLOT(showPreferences())); connect(ui->actionPreferences, SIGNAL(triggered()), this, SLOT(showPreferences()));
connect(ui->actionCheckForUpdates, SIGNAL(triggered()), this, SLOT(checkUpdates())); connect(ui->actionCheckForUpdates, SIGNAL(triggered()), this, SLOT(checkUpdates()));
//Setup web-links
SETUP_WEBLINK(ui->actionWebMulder, home_url);
SETUP_WEBLINK(ui->actionWebX264, "http://www.x264.com/");
SETUP_WEBLINK(ui->actionWebX265, "http://www.x265.org/");
SETUP_WEBLINK(ui->actionWebKomisar, "http://komisar.gin.by/");
SETUP_WEBLINK(ui->actionWebVideoLAN, "http://download.videolan.org/pub/x264/binaries/");
SETUP_WEBLINK(ui->actionWebJEEB, "http://x264.fushizen.eu/");
SETUP_WEBLINK(ui->actionWebFreeCodecs, "http://www.free-codecs.com/x264_video_codec_download.htm");
SETUP_WEBLINK(ui->actionWebX265BinRU, "http://goo.gl/xRS6AW");
SETUP_WEBLINK(ui->actionWebX265BinEU, "http://builds.x265.eu/");
SETUP_WEBLINK(ui->actionWebX265BinORG, "http://chromashift.org/x265_builds/");
SETUP_WEBLINK(ui->actionWebX265BinFF, "http://ffmpeg.zeranoe.com/builds/");
SETUP_WEBLINK(ui->actionWebAvisynth32, "http://sourceforge.net/projects/avisynth2/files/AviSynth%202.5/");
SETUP_WEBLINK(ui->actionWebAvisynth64, "http://code.google.com/p/avisynth64/downloads/list");
SETUP_WEBLINK(ui->actionWebAvisynthPlus, "http://www.avs-plus.net/");
SETUP_WEBLINK(ui->actionWebVapourSynth, "http://www.vapoursynth.com/");
SETUP_WEBLINK(ui->actionWebVapourSynthDocs, "http://www.vapoursynth.com/doc/");
SETUP_WEBLINK(ui->actionWebWiki, "http://mewiki.project357.com/wiki/X264_Settings");
SETUP_WEBLINK(ui->actionWebBluRay, "http://www.x264bluray.com/");
SETUP_WEBLINK(ui->actionWebAvsWiki, "http://avisynth.nl/index.php/Main_Page#Usage");
SETUP_WEBLINK(ui->actionWebSupport, "http://forum.doom9.org/showthread.php?t=144140");
SETUP_WEBLINK(ui->actionWebSecret, "http://www.youtube.com/watch_popup?v=AXIeHY-OYNI");
//Create floating label //Create floating label
m_label = new QLabel(ui->jobsView->viewport()); m_label = new QLabel(ui->jobsView->viewport());
m_label->setText(tr("No job created yet. Please click the 'Add New Job' button!")); m_label->setText(tr("No job created yet. Please click the 'Add New Job' button!"));
@ -495,8 +505,9 @@ void MainWindow::showAbout(void)
aboutBox.setWindowTitle(tr("About...")); aboutBox.setWindowTitle(tr("About..."));
aboutBox.setText(text.replace("-", "&minus;")); aboutBox.setText(text.replace("-", "&minus;"));
aboutBox.addButton(tr("About x264"), QMessageBox::NoRole); aboutBox.addButton(tr("About x264"), QMessageBox::NoRole);
aboutBox.addButton(tr("About AVS"), QMessageBox::NoRole); aboutBox.addButton(tr("About x265"), QMessageBox::NoRole);
aboutBox.addButton(tr("About VPY"), QMessageBox::NoRole); aboutBox.addButton(tr("About Avs"), QMessageBox::NoRole);
aboutBox.addButton(tr("About Vpy"), QMessageBox::NoRole);
aboutBox.addButton(tr("About Qt"), QMessageBox::NoRole); aboutBox.addButton(tr("About Qt"), QMessageBox::NoRole);
aboutBox.setEscapeButton(aboutBox.addButton(tr("Close"), QMessageBox::NoRole)); aboutBox.setEscapeButton(aboutBox.addButton(tr("Close"), QMessageBox::NoRole));
@ -508,9 +519,9 @@ void MainWindow::showAbout(void)
case 0: case 0:
{ {
QString text2; QString text2;
text2 += tr("<nobr><tt>x264 - the best H.264/AVC encoder. Copyright (c) 2003-2013 x264 project.<br>"); text2 += tr("<nobr><tt>x264 - the best H.264/AVC encoder. Copyright (C) 2013-2014 x264 project.<br>");
text2 += tr("Free software library for encoding video streams into the H.264/MPEG-4 AVC format.<br>"); text2 += tr("Free software library for encoding video streams into the H.264/MPEG-4 AVC format.<br>");
text2 += tr("Released under the terms of the GNU General Public License.<br><br>"); text2 += tr("Released under the terms of the GNU General Public License v2.<br><br>");
text2 += tr("Please visit <a href=\"%1\">%1</a> for obtaining a commercial x264 license.<br>").arg("http://x264licensing.com/"); text2 += tr("Please visit <a href=\"%1\">%1</a> for obtaining a commercial x264 license.<br>").arg("http://x264licensing.com/");
text2 += tr("Read the <a href=\"%1\">user's manual</a> to get started and use the <a href=\"%2\">support forum</a> for help!<br></tt></nobr>").arg("http://mewiki.project357.com/wiki/X264_Settings", "http://forum.doom9.org/forumdisplay.php?f=77"); text2 += tr("Read the <a href=\"%1\">user's manual</a> to get started and use the <a href=\"%2\">support forum</a> for help!<br></tt></nobr>").arg("http://mewiki.project357.com/wiki/X264_Settings", "http://forum.doom9.org/forumdisplay.php?f=77");
@ -524,12 +535,30 @@ void MainWindow::showAbout(void)
} }
break; break;
case 1: case 1:
{
QString text2;
text2 += tr("<nobr><tt>x265 - H.265/HEVC encoder. Copyright (C) 2003-2014 x265 project.<br>");
text2 += tr("Commercially funded open source implementation of the H.265/HEVC compression standard.<br>");
text2 += tr("Released under the terms of the GNU General Public License v2.<br><br>");
text2 += tr("The x265 project is coordinated by <a href=\"%1\">MultiCoreWare</a>. Visit the <a href=\"%2\">x265 web-site</a> for details.<br>").arg("http://www.multicorewareinc.com/", "http://x265.org/");
text2 += tr("Read the <a href=\"%1\">user's manual</a> to get started and use the <a href=\"%2\">support forum</a> for help!<br></tt></nobr").arg("http://goo.gl/smws42", "https://forum.doom9.org/forumdisplay.php?f=81");
QMessageBox x264Box(this);
x264Box.setIconPixmap(QIcon(":/images/x265.png").pixmap(48,48));
x264Box.setWindowTitle(tr("About x264"));
x264Box.setText(text2.replace("-", "&minus;"));
x264Box.setEscapeButton(x264Box.addButton(tr("Close"), QMessageBox::NoRole));
x264_beep(x264_beep_info);
x264Box.exec();
}
break;
case 2:
{ {
QString text2; QString text2;
text2 += tr("<nobr><tt>Avisynth - powerful video processing scripting language.<br>"); text2 += tr("<nobr><tt>Avisynth - powerful video processing scripting language.<br>");
text2 += tr("Copyright (c) 2000 Ben Rudiak-Gould and all subsequent developers.<br>"); text2 += tr("Copyright (c) 2000 Ben Rudiak-Gould and all subsequent developers.<br>");
text2 += tr("Released under the terms of the GNU General Public License.<br><br>"); text2 += tr("Released under the terms of the GNU General Public License.<br><br>");
text2 += tr("Please visit the web-site <a href=\"%1\">%1</a> for more information.<br>").arg("http://avisynth.org/"); text2 += tr("Please visit the web-site <a href=\"%1\">%1</a> for more information.<br>").arg("http://avisynth.nl/");
text2 += tr("Read the <a href=\"%1\">guide</a> to get started and use the <a href=\"%2\">support forum</a> for help!<br></tt></nobr>").arg("http://avisynth.nl/index.php/First_script", "http://forum.doom9.org/forumdisplay.php?f=33"); text2 += tr("Read the <a href=\"%1\">guide</a> to get started and use the <a href=\"%2\">support forum</a> for help!<br></tt></nobr>").arg("http://avisynth.nl/index.php/First_script", "http://forum.doom9.org/forumdisplay.php?f=33");
QMessageBox x264Box(this); QMessageBox x264Box(this);
@ -541,7 +570,7 @@ void MainWindow::showAbout(void)
x264Box.exec(); x264Box.exec();
} }
break; break;
case 2: case 3:
{ {
QString text2; QString text2;
text2 += tr("<nobr><tt>VapourSynth - application for video manipulation based on Python.<br>"); text2 += tr("<nobr><tt>VapourSynth - application for video manipulation based on Python.<br>");
@ -559,7 +588,7 @@ void MainWindow::showAbout(void)
x264Box.exec(); x264Box.exec();
} }
break; break;
case 3: case 4:
QMessageBox::aboutQt(this); QMessageBox::aboutQt(this);
break; break;
default: default:
@ -575,22 +604,17 @@ void MainWindow::showAbout(void)
void MainWindow::showWebLink(void) void MainWindow::showWebLink(void)
{ {
ENSURE_APP_IS_IDLE(); ENSURE_APP_IS_IDLE();
if(QObject::sender() == ui->actionWebMulder) QDesktopServices::openUrl(QUrl(home_url)); if(QObject *obj = QObject::sender())
if(QObject::sender() == ui->actionWebX264) QDesktopServices::openUrl(QUrl("http://www.x264.com/")); {
if(QObject::sender() == ui->actionWebKomisar) QDesktopServices::openUrl(QUrl("http://komisar.gin.by/")); if(QAction *action = dynamic_cast<QAction*>(obj))
if(QObject::sender() == ui->actionWebVideoLAN) QDesktopServices::openUrl(QUrl("http://download.videolan.org/pub/x264/binaries/")); {
if(QObject::sender() == ui->actionWebJEEB) QDesktopServices::openUrl(QUrl("http://x264.fushizen.eu/")); if(action->data().type() == QVariant::Url)
if(QObject::sender() == ui->actionWebAvisynth32) QDesktopServices::openUrl(QUrl("http://sourceforge.net/projects/avisynth2/files/AviSynth%202.5/")); {
if(QObject::sender() == ui->actionWebAvisynth64) QDesktopServices::openUrl(QUrl("http://code.google.com/p/avisynth64/downloads/list")); QDesktopServices::openUrl(action->data().toUrl());
if(QObject::sender() == ui->actionWebAvisynthPlus) QDesktopServices::openUrl(QUrl("http://www.avs-plus.net/")); }
if(QObject::sender() == ui->actionWebVapourSynth) QDesktopServices::openUrl(QUrl("http://www.vapoursynth.com/")); }
if(QObject::sender() == ui->actionWebVapourSynthDocs) QDesktopServices::openUrl(QUrl("http://www.vapoursynth.com/doc/")); }
if(QObject::sender() == ui->actionWebWiki) QDesktopServices::openUrl(QUrl("http://mewiki.project357.com/wiki/X264_Settings"));
if(QObject::sender() == ui->actionWebBluRay) QDesktopServices::openUrl(QUrl("http://www.x264bluray.com/"));
if(QObject::sender() == ui->actionWebAvsWiki) QDesktopServices::openUrl(QUrl("http://avisynth.nl/index.php/Main_Page#Usage"));
if(QObject::sender() == ui->actionWebSupport) QDesktopServices::openUrl(QUrl("http://forum.doom9.org/showthread.php?t=144140"));
if(QObject::sender() == ui->actionWebSecret) QDesktopServices::openUrl(QUrl("http://www.youtube.com/watch_popup?v=AXIeHY-OYNI"));
} }
/* /*