Added "Favorites" menu for output folders.
This commit is contained in:
parent
3c87a01c59
commit
5ab869ed82
@ -20,6 +20,7 @@ a:visited { color: #0000EE; }
|
|||||||
<li>Added an option to rename the output files (based on an user-defined pattern)
|
<li>Added an option to rename the output files (based on an user-defined pattern)
|
||||||
<li>Added an option to enforce Stereo Downmix for Multi-Channel sources
|
<li>Added an option to enforce Stereo Downmix for Multi-Channel sources
|
||||||
<li>Added "built-in" WMA decoder (see <a href="http://forum.doom9.org/showthread.php?t=140273">this</a> thread for details) and removed all remnants of "old" decoder
|
<li>Added "built-in" WMA decoder (see <a href="http://forum.doom9.org/showthread.php?t=140273">this</a> thread for details) and removed all remnants of "old" decoder
|
||||||
|
<li>Added a menu for bookmarking "favorite" output folders to the "output folder" tab
|
||||||
<li>Updated Qt runtime libraries to v4.8.0 Beta-1 (2011-07-19), compiled with MSVC 10.0
|
<li>Updated Qt runtime libraries to v4.8.0 Beta-1 (2011-07-19), compiled with MSVC 10.0
|
||||||
<li>Updated MediaInfo to v0.7.47 (2011-07-27), compiled with MSVC 10.0
|
<li>Updated MediaInfo to v0.7.47 (2011-07-27), compiled with MSVC 10.0
|
||||||
<li>Updated language files (big thank-you to all contributors !!!)
|
<li>Updated language files (big thank-you to all contributors !!!)
|
||||||
|
@ -457,6 +457,7 @@ FunctionEnd
|
|||||||
;--------------------------------
|
;--------------------------------
|
||||||
|
|
||||||
Section "-PreInit"
|
Section "-PreInit"
|
||||||
|
SetShellVarContext all
|
||||||
SetOutPath "$INSTDIR"
|
SetOutPath "$INSTDIR"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@ -491,10 +492,18 @@ Section "-Create Shortcuts"
|
|||||||
!insertmacro PrintProgress "$(LAMEXP_LANG_STATUS_SHORTCUTS)"
|
!insertmacro PrintProgress "$(LAMEXP_LANG_STATUS_SHORTCUTS)"
|
||||||
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
||||||
|
|
||||||
|
SetShellVarContext current
|
||||||
|
|
||||||
Delete "$SMPROGRAMS\$StartMenuFolder\*.lnk"
|
Delete "$SMPROGRAMS\$StartMenuFolder\*.lnk"
|
||||||
Delete "$SMPROGRAMS\$StartMenuFolder\*.pif"
|
Delete "$SMPROGRAMS\$StartMenuFolder\*.pif"
|
||||||
Delete "$SMPROGRAMS\$StartMenuFolder\*.url"
|
Delete "$SMPROGRAMS\$StartMenuFolder\*.url"
|
||||||
|
|
||||||
|
SetShellVarContext all
|
||||||
|
|
||||||
|
Delete "$SMPROGRAMS\$StartMenuFolder\*.lnk"
|
||||||
|
Delete "$SMPROGRAMS\$StartMenuFolder\*.pif"
|
||||||
|
Delete "$SMPROGRAMS\$StartMenuFolder\*.url"
|
||||||
|
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\LameXP.lnk" "$INSTDIR\LameXP.exe" "" "$INSTDIR\LameXP.exe" 0
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\LameXP.lnk" "$INSTDIR\LameXP.exe" "" "$INSTDIR\LameXP.exe" 0
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\$(LAMEXP_LANG_LINK_LICENSE).lnk" "$INSTDIR\License.txt"
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\$(LAMEXP_LANG_LINK_LICENSE).lnk" "$INSTDIR\License.txt"
|
||||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\$(LAMEXP_LANG_LINK_CHANGELOG).lnk" "$INSTDIR\Changelog.html"
|
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\$(LAMEXP_LANG_LINK_CHANGELOG).lnk" "$INSTDIR\Changelog.html"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1622,6 +1622,10 @@
|
|||||||
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
||||||
<translation>Surround (Mehrkanal-Ton) Quellen immer auf Stereo heruntermischen</translation>
|
<translation>Surround (Mehrkanal-Ton) Quellen immer auf Stereo heruntermischen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark Current Output Folder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1621,6 +1621,10 @@
|
|||||||
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark Current Output Folder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1631,6 +1631,10 @@ Ouvrir le dossier récursivement...</translation>
|
|||||||
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark Current Output Folder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1622,6 +1622,10 @@
|
|||||||
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark Current Output Folder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1621,6 +1621,10 @@
|
|||||||
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark Current Output Folder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1627,6 +1627,10 @@
|
|||||||
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark Current Output Folder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -1622,6 +1622,10 @@
|
|||||||
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
<source>Enforce Stereo Downmix of Surround (Multi-Channel) Sources</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Bookmark Current Output Folder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MetaInfo</name>
|
<name>MetaInfo</name>
|
||||||
|
@ -277,57 +277,89 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="outputFolderLabel">
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
<property name="palette">
|
<property name="spacing">
|
||||||
<palette>
|
<number>3</number>
|
||||||
<active>
|
|
||||||
<colorrole role="Link">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>200</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</active>
|
|
||||||
<inactive>
|
|
||||||
<colorrole role="Link">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>200</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</inactive>
|
|
||||||
<disabled>
|
|
||||||
<colorrole role="Link">
|
|
||||||
<brush brushstyle="SolidPattern">
|
|
||||||
<color alpha="255">
|
|
||||||
<red>200</red>
|
|
||||||
<green>0</green>
|
|
||||||
<blue>0</blue>
|
|
||||||
</color>
|
|
||||||
</brush>
|
|
||||||
</colorrole>
|
|
||||||
</disabled>
|
|
||||||
</palette>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="cursor">
|
<item>
|
||||||
<cursorShape>PointingHandCursor</cursorShape>
|
<widget class="QLabel" name="outputFolderLabel">
|
||||||
</property>
|
<property name="sizePolicy">
|
||||||
<property name="frameShape">
|
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||||
<enum>QFrame::StyledPanel</enum>
|
<horstretch>0</horstretch>
|
||||||
</property>
|
<verstretch>0</verstretch>
|
||||||
<property name="frameShadow">
|
</sizepolicy>
|
||||||
<enum>QFrame::Plain</enum>
|
</property>
|
||||||
</property>
|
<property name="palette">
|
||||||
<property name="text">
|
<palette>
|
||||||
<string notr="true">($OUTDIR)</string>
|
<active>
|
||||||
</property>
|
<colorrole role="Link">
|
||||||
</widget>
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>200</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</active>
|
||||||
|
<inactive>
|
||||||
|
<colorrole role="Link">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>200</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</inactive>
|
||||||
|
<disabled>
|
||||||
|
<colorrole role="Link">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>200</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</disabled>
|
||||||
|
</palette>
|
||||||
|
</property>
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>PointingHandCursor</cursorShape>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Plain</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">($OUTDIR)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="outputFoldersFovoritesLabel">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap resource="../res/Icons.qrc">:/icons/star.png</pixmap>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTreeView" name="outputFolderView">
|
<widget class="QTreeView" name="outputFolderView">
|
||||||
@ -1067,8 +1099,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>604</width>
|
<width>602</width>
|
||||||
<height>1426</height>
|
<height>1423</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_22">
|
<layout class="QGridLayout" name="gridLayout_22">
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#define VER_LAMEXP_MINOR_LO 3
|
#define VER_LAMEXP_MINOR_LO 3
|
||||||
#define VER_LAMEXP_TYPE Alpha
|
#define VER_LAMEXP_TYPE Alpha
|
||||||
#define VER_LAMEXP_PATCH 9
|
#define VER_LAMEXP_PATCH 9
|
||||||
#define VER_LAMEXP_BUILD 630
|
#define VER_LAMEXP_BUILD 634
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Tools versions
|
// Tools versions
|
||||||
|
@ -147,6 +147,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
|||||||
outputFolderView->setMouseTracking(false);
|
outputFolderView->setMouseTracking(false);
|
||||||
outputFolderView->setContextMenuPolicy(Qt::CustomContextMenu);
|
outputFolderView->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
outputFolderView->installEventFilter(this);
|
outputFolderView->installEventFilter(this);
|
||||||
|
outputFoldersFovoritesLabel->installEventFilter(this);
|
||||||
while(saveToSourceFolderCheckBox->isChecked() != m_settings->outputToSourceDir()) saveToSourceFolderCheckBox->click();
|
while(saveToSourceFolderCheckBox->isChecked() != m_settings->outputToSourceDir()) saveToSourceFolderCheckBox->click();
|
||||||
prependRelativePathCheckBox->setChecked(m_settings->prependRelativeSourcePath());
|
prependRelativePathCheckBox->setChecked(m_settings->prependRelativeSourcePath());
|
||||||
connect(outputFolderView, SIGNAL(clicked(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
|
connect(outputFolderView, SIGNAL(clicked(QModelIndex)), this, SLOT(outputFolderViewClicked(QModelIndex)));
|
||||||
@ -161,11 +162,16 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S
|
|||||||
connect(prependRelativePathCheckBox, SIGNAL(clicked()), this, SLOT(prependRelativePathChanged()));
|
connect(prependRelativePathCheckBox, SIGNAL(clicked()), this, SLOT(prependRelativePathChanged()));
|
||||||
m_outputFolderContextMenu = new QMenu();
|
m_outputFolderContextMenu = new QMenu();
|
||||||
m_showFolderContextAction = m_outputFolderContextMenu->addAction(QIcon(":/icons/zoom.png"), "N/A");
|
m_showFolderContextAction = m_outputFolderContextMenu->addAction(QIcon(":/icons/zoom.png"), "N/A");
|
||||||
|
m_outputFolderFavoritesMenu = new QMenu();
|
||||||
|
m_addFavoriteFolderAction = m_outputFolderFavoritesMenu->addAction(QIcon(":/icons/add.png"), "N/A");
|
||||||
|
m_outputFolderFavoritesMenu->insertSeparator(m_addFavoriteFolderAction);
|
||||||
connect(outputFolderView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(outputFolderContextMenu(QPoint)));
|
connect(outputFolderView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(outputFolderContextMenu(QPoint)));
|
||||||
connect(m_showFolderContextAction, SIGNAL(triggered(bool)), this, SLOT(showFolderContextActionTriggered()));
|
connect(m_showFolderContextAction, SIGNAL(triggered(bool)), this, SLOT(showFolderContextActionTriggered()));
|
||||||
|
connect(m_addFavoriteFolderAction, SIGNAL(triggered(bool)), this, SLOT(addFavoriteFolderActionTriggered()));
|
||||||
outputFolderLabel->installEventFilter(this);
|
outputFolderLabel->installEventFilter(this);
|
||||||
outputFolderView->setCurrentIndex(m_fileSystemModel->index(m_settings->outputDir()));
|
outputFolderView->setCurrentIndex(m_fileSystemModel->index(m_settings->outputDir()));
|
||||||
outputFolderViewClicked(outputFolderView->currentIndex());
|
outputFolderViewClicked(outputFolderView->currentIndex());
|
||||||
|
refreshFavorites();
|
||||||
|
|
||||||
//Setup "Meta Data" tab
|
//Setup "Meta Data" tab
|
||||||
m_metaInfoModel = new MetaInfoModel(m_metaData, 6);
|
m_metaInfoModel = new MetaInfoModel(m_metaData, 6);
|
||||||
@ -448,6 +454,7 @@ MainWindow::~MainWindow(void)
|
|||||||
LAMEXP_DELETE(m_encoderButtonGroup);
|
LAMEXP_DELETE(m_encoderButtonGroup);
|
||||||
LAMEXP_DELETE(m_encoderButtonGroup);
|
LAMEXP_DELETE(m_encoderButtonGroup);
|
||||||
LAMEXP_DELETE(m_sourceFilesContextMenu);
|
LAMEXP_DELETE(m_sourceFilesContextMenu);
|
||||||
|
LAMEXP_DELETE(m_outputFolderFavoritesMenu);
|
||||||
LAMEXP_DELETE(m_dropBox);
|
LAMEXP_DELETE(m_dropBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -553,85 +560,6 @@ void MainWindow::addFolder(const QString &path, bool recursive, bool delayed)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Download and install WMA Decoder component
|
|
||||||
*/
|
|
||||||
//bool MainWindow::installWMADecoder(void)
|
|
||||||
//{
|
|
||||||
// static const char *download_url = "http://www.nch.com.au/components/wmawav.exe";
|
|
||||||
// static const char *download_hash = "52a3b0e6690faf3f830c336d3c0eadfb7a4e9bc6";
|
|
||||||
//
|
|
||||||
// bool bResult = false;
|
|
||||||
//
|
|
||||||
// QString binaryWGet = lamexp_lookup_tool("wget.exe");
|
|
||||||
// QString binaryElevator = lamexp_lookup_tool("elevator.exe");
|
|
||||||
//
|
|
||||||
// if(binaryWGet.isEmpty() || binaryElevator.isEmpty())
|
|
||||||
// {
|
|
||||||
// throw "Required binary is not available!";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// while(true)
|
|
||||||
// {
|
|
||||||
// QString setupFile = QString("%1/%2.exe").arg(lamexp_temp_folder2(), lamexp_rand_str());
|
|
||||||
//
|
|
||||||
// QProcess process;
|
|
||||||
// process.setWorkingDirectory(QFileInfo(setupFile).absolutePath());
|
|
||||||
//
|
|
||||||
// QEventLoop loop;
|
|
||||||
// connect(&process, SIGNAL(error(QProcess::ProcessError)), &loop, SLOT(quit()));
|
|
||||||
// connect(&process, SIGNAL(finished(int, QProcess::ExitStatus)), &loop, SLOT(quit()));
|
|
||||||
//
|
|
||||||
// process.start(binaryWGet, QStringList() << "-O" << QFileInfo(setupFile).fileName() << download_url);
|
|
||||||
// m_banner->show(tr("Downloading WMA Decoder Setup, please wait..."), &loop);
|
|
||||||
//
|
|
||||||
// if(process.exitCode() != 0 || QFileInfo(setupFile).size() < 10240)
|
|
||||||
// {
|
|
||||||
// QFile::remove(setupFile);
|
|
||||||
// if(QMessageBox::critical(this, tr("Download Failed"), tr("Failed to download the WMA Decoder setup. Check your internet connection!"), tr("Try Again"), tr("Cancel")) == 0)
|
|
||||||
// {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// QFile setupFileContent(setupFile);
|
|
||||||
// QCryptographicHash setupFileHash(QCryptographicHash::Sha1);
|
|
||||||
//
|
|
||||||
// setupFileContent.open(QIODevice::ReadOnly);
|
|
||||||
// if(setupFileContent.isOpen() && setupFileContent.isReadable())
|
|
||||||
// {
|
|
||||||
// setupFileHash.addData(setupFileContent.readAll());
|
|
||||||
// setupFileContent.close();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if(_stricmp(setupFileHash.result().toHex().constData(), download_hash))
|
|
||||||
// {
|
|
||||||
// qWarning("Hash miscompare:\n Expected %s\n Detected %s\n", download_hash, setupFileHash.result().toHex().constData());
|
|
||||||
// QFile::remove(setupFile);
|
|
||||||
// if(QMessageBox::critical(this, tr("Download Failed"), tr("The download seems to be corrupted. Please try again!"), tr("Try Again"), tr("Cancel")) == 0)
|
|
||||||
// {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// QApplication::setOverrideCursor(Qt::WaitCursor);
|
|
||||||
// process.start(binaryElevator, QStringList() << QString("/exec=%1").arg(setupFile));
|
|
||||||
// loop.exec(QEventLoop::ExcludeUserInputEvents);
|
|
||||||
// QFile::remove(setupFile);
|
|
||||||
// QApplication::restoreOverrideCursor();
|
|
||||||
//
|
|
||||||
// if(QMessageBox::information(this, tr("WMA Decoder"), tr("The WMA File Decoder has been installed. Please restart LameXP now!"), tr("Quit LameXP"), tr("Postpone")) == 0)
|
|
||||||
// {
|
|
||||||
// bResult = true;
|
|
||||||
// }
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return bResult;
|
|
||||||
//}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check for updates
|
* Check for updates
|
||||||
*/
|
*/
|
||||||
@ -652,6 +580,36 @@ bool MainWindow::checkForUpdates(void)
|
|||||||
return bReadyToInstall;
|
return bReadyToInstall;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::refreshFavorites(void)
|
||||||
|
{
|
||||||
|
QList<QAction*> folderList = m_outputFolderFavoritesMenu->actions();
|
||||||
|
QStringList favorites = m_settings->favoriteOutputFolders().split("|", QString::SkipEmptyParts);
|
||||||
|
while(favorites.count() > 6) favorites.removeFirst();
|
||||||
|
|
||||||
|
while(!folderList.isEmpty())
|
||||||
|
{
|
||||||
|
QAction *currentItem = folderList.takeFirst();
|
||||||
|
if(currentItem->isSeparator()) break;
|
||||||
|
m_outputFolderFavoritesMenu->removeAction(currentItem);
|
||||||
|
LAMEXP_DELETE(currentItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
QAction *lastItem = m_outputFolderFavoritesMenu->actions().first();
|
||||||
|
|
||||||
|
while(!favorites.isEmpty())
|
||||||
|
{
|
||||||
|
QString path = favorites.takeLast();
|
||||||
|
if(QDir(path).exists())
|
||||||
|
{
|
||||||
|
QAction *action = new QAction(QIcon(":/icons/folder_go.png"), QDir::toNativeSeparators(path), this);
|
||||||
|
action->setData(path);
|
||||||
|
m_outputFolderFavoritesMenu->insertAction(lastItem, action);
|
||||||
|
connect(action, SIGNAL(triggered(bool)), this, SLOT(gotoFavoriteFolder()));
|
||||||
|
lastItem = action;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
// EVENTS
|
// EVENTS
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
@ -726,6 +684,7 @@ void MainWindow::changeEvent(QEvent *e)
|
|||||||
m_previewContextAction->setText(tr("Open File in External Application"));
|
m_previewContextAction->setText(tr("Open File in External Application"));
|
||||||
m_findFileContextAction->setText(tr("Browse File Location"));
|
m_findFileContextAction->setText(tr("Browse File Location"));
|
||||||
m_showFolderContextAction->setText(tr("Browse Selected Folder"));
|
m_showFolderContextAction->setText(tr("Browse Selected Folder"));
|
||||||
|
m_addFavoriteFolderAction->setText(tr("Bookmark Current Output Folder"));
|
||||||
|
|
||||||
//Force GUI update
|
//Force GUI update
|
||||||
m_metaInfoModel->clearData();
|
m_metaInfoModel->clearData();
|
||||||
@ -871,6 +830,35 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(obj == outputFoldersFovoritesLabel)
|
||||||
|
{
|
||||||
|
QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent*>(event);
|
||||||
|
QPoint pos = (mouseEvent != NULL) ? mouseEvent->pos() : QPoint();
|
||||||
|
QWidget *sender = dynamic_cast<QLabel*>(obj);
|
||||||
|
|
||||||
|
switch(event->type())
|
||||||
|
{
|
||||||
|
case QEvent::Enter:
|
||||||
|
outputFoldersFovoritesLabel->setFrameShadow(QFrame::Raised);
|
||||||
|
break;
|
||||||
|
case QEvent::MouseButtonPress:
|
||||||
|
outputFoldersFovoritesLabel->setFrameShadow(QFrame::Sunken);
|
||||||
|
break;
|
||||||
|
case QEvent::MouseButtonRelease:
|
||||||
|
outputFoldersFovoritesLabel->setFrameShadow(QFrame::Raised);
|
||||||
|
if(sender && mouseEvent)
|
||||||
|
{
|
||||||
|
if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0 && mouseEvent->button() != Qt::MidButton)
|
||||||
|
{
|
||||||
|
m_outputFolderFavoritesMenu->popup(sender->mapToGlobal(pos));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case QEvent::Leave:
|
||||||
|
outputFoldersFovoritesLabel->setFrameShadow(QFrame::Plain);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2100,6 +2088,31 @@ void MainWindow::gotoMusicFolderButtonClicked(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Goto music favorite output folder
|
||||||
|
*/
|
||||||
|
void MainWindow::gotoFavoriteFolder(void)
|
||||||
|
{
|
||||||
|
QAction *item = dynamic_cast<QAction*>(QObject::sender());
|
||||||
|
|
||||||
|
if(item)
|
||||||
|
{
|
||||||
|
QDir path(item->data().toString());
|
||||||
|
if(path.exists())
|
||||||
|
{
|
||||||
|
outputFolderView->setCurrentIndex(m_fileSystemModel->index(path.canonicalPath()));
|
||||||
|
outputFolderViewClicked(outputFolderView->currentIndex());
|
||||||
|
outputFolderView->setFocus();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBeep(MB_ICONERROR);
|
||||||
|
m_outputFolderFavoritesMenu->removeAction(item);
|
||||||
|
item->deleteLater();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make folder button
|
* Make folder button
|
||||||
*/
|
*/
|
||||||
@ -2146,6 +2159,8 @@ void MainWindow::makeFolderButtonClicked(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suggestedName = lamexp_clean_filename(suggestedName);
|
||||||
|
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
bool bApplied = false;
|
bool bApplied = false;
|
||||||
@ -2153,15 +2168,7 @@ void MainWindow::makeFolderButtonClicked(void)
|
|||||||
|
|
||||||
if(bApplied)
|
if(bApplied)
|
||||||
{
|
{
|
||||||
folderName.remove(":", Qt::CaseInsensitive);
|
folderName = lamexp_clean_filepath(folderName.simplified());
|
||||||
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 = folderName.simplified();
|
|
||||||
|
|
||||||
if(folderName.isEmpty())
|
if(folderName.isEmpty())
|
||||||
{
|
{
|
||||||
@ -2177,7 +2184,7 @@ void MainWindow::makeFolderButtonClicked(void)
|
|||||||
newFolder = QString(folderName).append(QString().sprintf(" (%d)", ++i));
|
newFolder = QString(folderName).append(QString().sprintf(" (%d)", ++i));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(basePath.mkdir(newFolder))
|
if(basePath.mkpath(newFolder))
|
||||||
{
|
{
|
||||||
QDir createdDir = basePath;
|
QDir createdDir = basePath;
|
||||||
if(createdDir.cd(newFolder))
|
if(createdDir.cd(newFolder))
|
||||||
@ -2234,6 +2241,28 @@ void MainWindow::showFolderContextActionTriggered(void)
|
|||||||
QDesktopServices::openUrl(QUrl::fromLocalFile(m_fileSystemModel->filePath(outputFolderView->currentIndex())));
|
QDesktopServices::openUrl(QUrl::fromLocalFile(m_fileSystemModel->filePath(outputFolderView->currentIndex())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add current folder to favorites
|
||||||
|
*/
|
||||||
|
void MainWindow::addFavoriteFolderActionTriggered(void)
|
||||||
|
{
|
||||||
|
QString path = m_fileSystemModel->filePath(outputFolderView->currentIndex());
|
||||||
|
QStringList favorites = m_settings->favoriteOutputFolders().split("|", QString::SkipEmptyParts);
|
||||||
|
|
||||||
|
if(!favorites.contains(path, Qt::CaseInsensitive))
|
||||||
|
{
|
||||||
|
favorites.append(path);
|
||||||
|
while(favorites.count() > 6) favorites.removeFirst();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBeep(MB_ICONWARNING);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_settings->favoriteOutputFolders(favorites.join("|"));
|
||||||
|
refreshFavorites();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize file system model
|
* Initialize file system model
|
||||||
*/
|
*/
|
||||||
|
@ -51,6 +51,7 @@ private slots:
|
|||||||
void addFileDelayed(const QString &filePath, bool tryASAP = false);
|
void addFileDelayed(const QString &filePath, bool tryASAP = false);
|
||||||
void addFilesButtonClicked(void);
|
void addFilesButtonClicked(void);
|
||||||
void addFilesDelayed(const QStringList &filePaths, bool tryASAP = false);
|
void addFilesDelayed(const QStringList &filePaths, bool tryASAP = false);
|
||||||
|
void addFavoriteFolderActionTriggered(void);
|
||||||
void addFolderDelayed(const QString &folderPath, bool recursive);
|
void addFolderDelayed(const QString &folderPath, bool recursive);
|
||||||
void aftenCodingModeChanged(int value);
|
void aftenCodingModeChanged(int value);
|
||||||
void aftenDRCModeChanged(int value);
|
void aftenDRCModeChanged(int value);
|
||||||
@ -82,6 +83,7 @@ private slots:
|
|||||||
void findFileContextActionTriggered(void);
|
void findFileContextActionTriggered(void);
|
||||||
void forceStereoDownmixEnabledChanged(bool checked);
|
void forceStereoDownmixEnabledChanged(bool checked);
|
||||||
void gotoDesktopButtonClicked(void);
|
void gotoDesktopButtonClicked(void);
|
||||||
|
void gotoFavoriteFolder(void);
|
||||||
void gotoHomeFolderButtonClicked(void);
|
void gotoHomeFolderButtonClicked(void);
|
||||||
void gotoMusicFolderButtonClicked(void);
|
void gotoMusicFolderButtonClicked(void);
|
||||||
void handleDelayedFiles(void);
|
void handleDelayedFiles(void);
|
||||||
@ -145,7 +147,7 @@ private:
|
|||||||
void addFiles(const QStringList &files);
|
void addFiles(const QStringList &files);
|
||||||
void addFolder(const QString &path, bool recursive = false, bool delayed = false);
|
void addFolder(const QString &path, bool recursive = false, bool delayed = false);
|
||||||
bool checkForUpdates(void);
|
bool checkForUpdates(void);
|
||||||
bool installWMADecoder(void);
|
void refreshFavorites(void);
|
||||||
|
|
||||||
bool m_accepted;
|
bool m_accepted;
|
||||||
bool m_firstTimeShown;
|
bool m_firstTimeShown;
|
||||||
@ -166,11 +168,13 @@ private:
|
|||||||
QMenu *m_outputFolderContextMenu;
|
QMenu *m_outputFolderContextMenu;
|
||||||
SettingsModel *m_settings;
|
SettingsModel *m_settings;
|
||||||
QMenu *m_sourceFilesContextMenu;
|
QMenu *m_sourceFilesContextMenu;
|
||||||
|
QMenu *m_outputFolderFavoritesMenu;
|
||||||
|
|
||||||
QAction *m_findFileContextAction;
|
QAction *m_findFileContextAction;
|
||||||
QAction *m_previewContextAction;
|
QAction *m_previewContextAction;
|
||||||
QAction *m_showDetailsContextAction;
|
QAction *m_showDetailsContextAction;
|
||||||
QAction *m_showFolderContextAction;
|
QAction *m_showFolderContextAction;
|
||||||
|
QAction *m_addFavoriteFolderAction;
|
||||||
QActionGroup *m_languageActionGroup;
|
QActionGroup *m_languageActionGroup;
|
||||||
QActionGroup *m_styleActionGroup;
|
QActionGroup *m_styleActionGroup;
|
||||||
QActionGroup *m_tabActionGroup;
|
QActionGroup *m_tabActionGroup;
|
||||||
|
@ -75,6 +75,7 @@ LAMEXP_MAKE_ID(compressionBitrate, "Compression/Bitrate");
|
|||||||
LAMEXP_MAKE_ID(outputDir, "OutputDirectory/SelectedPath");
|
LAMEXP_MAKE_ID(outputDir, "OutputDirectory/SelectedPath");
|
||||||
LAMEXP_MAKE_ID(outputToSourceDir, "OutputDirectory/OutputToSourceFolder");
|
LAMEXP_MAKE_ID(outputToSourceDir, "OutputDirectory/OutputToSourceFolder");
|
||||||
LAMEXP_MAKE_ID(prependRelativeSourcePath, "OutputDirectory/PrependRelativeSourcePath");
|
LAMEXP_MAKE_ID(prependRelativeSourcePath, "OutputDirectory/PrependRelativeSourcePath");
|
||||||
|
LAMEXP_MAKE_ID(favoriteOutputFolders, "OutputDirectory/Favorites");
|
||||||
LAMEXP_MAKE_ID(writeMetaTags, "Flags/WriteMetaTags");
|
LAMEXP_MAKE_ID(writeMetaTags, "Flags/WriteMetaTags");
|
||||||
LAMEXP_MAKE_ID(createPlaylist, "Flags/AutoCreatePlaylist");
|
LAMEXP_MAKE_ID(createPlaylist, "Flags/AutoCreatePlaylist");
|
||||||
LAMEXP_MAKE_ID(autoUpdateLastCheck, "AutoUpdate/LastCheck");
|
LAMEXP_MAKE_ID(autoUpdateLastCheck, "AutoUpdate/LastCheck");
|
||||||
@ -267,6 +268,7 @@ LAMEXP_MAKE_OPTION_I(compressionBitrate, 7)
|
|||||||
LAMEXP_MAKE_OPTION_S(outputDir, QString())
|
LAMEXP_MAKE_OPTION_S(outputDir, QString())
|
||||||
LAMEXP_MAKE_OPTION_B(outputToSourceDir, false)
|
LAMEXP_MAKE_OPTION_B(outputToSourceDir, false)
|
||||||
LAMEXP_MAKE_OPTION_B(prependRelativeSourcePath, false)
|
LAMEXP_MAKE_OPTION_B(prependRelativeSourcePath, false)
|
||||||
|
LAMEXP_MAKE_OPTION_S(favoriteOutputFolders, QString());
|
||||||
LAMEXP_MAKE_OPTION_B(writeMetaTags, true)
|
LAMEXP_MAKE_OPTION_B(writeMetaTags, true)
|
||||||
LAMEXP_MAKE_OPTION_B(createPlaylist, true)
|
LAMEXP_MAKE_OPTION_B(createPlaylist, true)
|
||||||
LAMEXP_MAKE_OPTION_S(autoUpdateLastCheck, "Never")
|
LAMEXP_MAKE_OPTION_S(autoUpdateLastCheck, "Never")
|
||||||
|
@ -85,6 +85,7 @@ public:
|
|||||||
LAMEXP_MAKE_OPTION_S(outputDir);
|
LAMEXP_MAKE_OPTION_S(outputDir);
|
||||||
LAMEXP_MAKE_OPTION_B(outputToSourceDir);
|
LAMEXP_MAKE_OPTION_B(outputToSourceDir);
|
||||||
LAMEXP_MAKE_OPTION_B(prependRelativeSourcePath);
|
LAMEXP_MAKE_OPTION_B(prependRelativeSourcePath);
|
||||||
|
LAMEXP_MAKE_OPTION_S(favoriteOutputFolders);
|
||||||
LAMEXP_MAKE_OPTION_B(writeMetaTags);
|
LAMEXP_MAKE_OPTION_B(writeMetaTags);
|
||||||
LAMEXP_MAKE_OPTION_B(createPlaylist);
|
LAMEXP_MAKE_OPTION_B(createPlaylist);
|
||||||
LAMEXP_MAKE_OPTION_S(autoUpdateLastCheck);
|
LAMEXP_MAKE_OPTION_S(autoUpdateLastCheck);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user