1- #include < QMainWindow>
2- #include < QTranslator>
3- #include < QMessageBox>
41#include < QAction>
5- #include < QEvent>
2+ #include < QApplication>
3+ #include < QByteArray>
64#include < QDragEnterEvent>
75#include < QDropEvent>
8- #include < QIcon>
9- #include < QString>
10- #include < QUrl>
11- #include < QFileInfo>
12- #include < QByteArray>
6+ #include < QEvent>
137#include < QFileDialog>
14- #include < QToolButton>
15- #include < QPushButton>
16- #include < QMenu>
17- #include < QStatusBar>
18- #include < QProgressBar>
8+ #include < QFileInfo>
9+ #include < QIcon>
1910#include < QLabel>
2011#include < QLineEdit>
21- #include < QThread>
12+ #include < QMainWindow>
13+ #include < QMenu>
14+ #include < QMessageBox>
2215#include < QMetaObject>
23- #include < QApplication>
2416#include < QMimeData>
17+ #include < QProgressBar>
18+ #include < QPushButton>
19+ #include < QStatusBar>
20+ #include < QString>
21+ #include < QThread>
22+ #include < QToolButton>
23+ #include < QTranslator>
24+ #include < QUrl>
2525
26- #include " ../include/open_converter.h"
27- #include " ui_open_converter.h"
28- #include " ../include/encode_setting.h"
29- #include " ../../engine/include/converter.h"
30- #include " ../../common/include/info.h"
3126#include " ../../common/include/encode_parameter.h"
32- #include " ../../common/include/process_parameter .h"
27+ #include " ../../common/include/info .h"
3328#include " ../../common/include/process_observer.h"
29+ #include " ../../common/include/process_parameter.h"
30+ #include " ../../engine/include/converter.h"
31+ #include " ../include/encode_setting.h"
32+ #include " ../include/open_converter.h"
33+
34+ #include " ui_open_converter.h"
3435
3536#include < iostream>
3637
@@ -44,17 +45,49 @@ OpenConverter::OpenConverter(QWidget *parent)
4445 processParameter = new ProcessParameter;
4546 converter = new Converter (processParameter, encodeParameter);
4647 displayResult = new QMessageBox;
48+ transcoderGroup = new QActionGroup (this );
49+ languageGroup = new QActionGroup (this );
4750
4851 ui->setupUi (this );
4952 setAcceptDrops (true );
5053 setWindowTitle (" OpenConverter" );
5154 setWindowIcon (QIcon (" :/icon/icon.png" ));
5255
5356 ui->progressBar ->setValue (0 );
54-
57+
5558 // Register this class as an observer for process updates
5659 processParameter->addObserver (std::shared_ptr<ProcessObserver>(this ));
5760
61+ transcoderGroup->setExclusive (true );
62+
63+ QList<QAction *> transcoderActions = ui->menuTranscoder ->actions ();
64+ for (QAction *action : transcoderActions) {
65+ action->setCheckable (true );
66+ transcoderGroup->addAction (action);
67+ }
68+
69+ if (!transcoderActions.isEmpty ()) {
70+ transcoderActions.first ()->setChecked (true );
71+ converter->set_Transcoder (
72+ transcoderActions.first ()->objectName ().toStdString ());
73+ }
74+
75+ languageGroup->setExclusive (true );
76+ QList<QAction *> languageActions = ui->menuLanguage ->actions ();
77+ for (QAction *action : languageActions) {
78+ action->setCheckable (true );
79+ languageGroup->addAction (action);
80+ }
81+
82+ m_currLang = " english" ;
83+ m_langPath = " :/" ;
84+ for (QAction *action : languageActions) {
85+ if (action->objectName () == m_currLang) {
86+ action->setChecked (true );
87+ break ;
88+ }
89+ }
90+
5891 connect (ui->toolButton , &QToolButton::clicked, [&]() {
5992 QString filename = QFileDialog::getOpenFileName ();
6093 ui->lineEdit_inputFile ->setText (filename);
@@ -74,9 +107,6 @@ OpenConverter::OpenConverter(QWidget *parent)
74107
75108 connect (ui->menuTranscoder , SIGNAL (triggered (QAction *)), this ,
76109 SLOT (slotTranscoderChanged (QAction *)));
77-
78- m_currLang = " english" ;
79- m_langPath = " :/" ;
80110}
81111
82112void OpenConverter::dragEnterEvent (QDragEnterEvent *event) {
@@ -178,7 +208,7 @@ void OpenConverter::changeEvent(QEvent *event) {
178208 ui->lineEdit_outputFile ->setText (currentOutputPath);
179209
180210 if (info && info->get_Quick_Info ()) {
181- info_Display (info->get_Quick_Info ()); // Convert QuickInfo to string
211+ info_Display (info->get_Quick_Info ()); // Convert QuickInfo to string
182212 }
183213 }
184214 QMainWindow::changeEvent (event);
@@ -251,23 +281,21 @@ void OpenConverter::convert_Pushed() {
251281 // Start conversion in worker thread
252282
253283 // capture everything you need by value
254- auto * thread = QThread::create ([=]() {
255- bool ok = converter->convert_Format (
256- inputFilePath.toStdString (),
257- outputFilePath.toStdString ()
258- );
284+ auto *thread = QThread::create ([=]() {
285+ bool ok = converter->convert_Format (inputFilePath.toStdString (),
286+ outputFilePath.toStdString ());
259287 // When done, marshal back to the GUI thread:
260- QMetaObject::invokeMethod (this , [ this , ok]() {
261- handle_Converter_Result (ok);
262- }, Qt::QueuedConnection);
288+ QMetaObject::invokeMethod (
289+ this , [ this , ok]() { handle_Converter_Result (ok); },
290+ Qt::QueuedConnection);
263291 });
264292
265293 // clean up the QThread object once it finishes
266294 connect (thread, &QThread::finished, thread, &QObject::deleteLater);
267295
268296 // fire off
269- thread->start ();;
270-
297+ thread->start ();
298+ ;
271299}
272300
273301// automatically select kbps/Mbps
@@ -291,36 +319,33 @@ QString OpenConverter::formatFrequency(int64_t hertz) {
291319}
292320
293321void OpenConverter::info_Display (QuickInfo *quickInfo) {
294- if (!quickInfo) return ;
295-
322+ if (!quickInfo)
323+ return ;
324+
296325 // video
297326 ui->label_videoStreamResult ->setText (
298327 QString (" %1" ).arg (quickInfo->videoIdx ));
299- ui->label_widthResult ->setText (
300- QString (" %1 px" ).arg (quickInfo->width ));
301- ui->label_heightResult ->setText (
302- QString (" %1 px" ).arg (quickInfo->height ));
328+ ui->label_widthResult ->setText (QString (" %1 px" ).arg (quickInfo->width ));
329+ ui->label_heightResult ->setText (QString (" %1 px" ).arg (quickInfo->height ));
303330 ui->label_colorSpaceResult ->setText (
304331 QString (" %1" ).arg (QString::fromStdString (quickInfo->colorSpace )));
305332 ui->label_videoCodecResult ->setText (
306333 QString (" %1" ).arg (QString::fromStdString (quickInfo->videoCodec )));
307334 ui->label_videoBitRateResult ->setText (
308335 formatBitrate (quickInfo->videoBitRate ));
309336 ui->label_frameRateResult ->setText (
310- QString (" %1 fps" ).arg (quickInfo->frameRate ,0 , ' f' ,2 ));
337+ QString (" %1 fps" ).arg (quickInfo->frameRate , 0 , ' f' , 2 ));
311338 // audio
312339 ui->label_audioStreamResult ->setText (
313340 QString (" %1" ).arg (quickInfo->audioIdx ));
314341 ui->label_audioCodecResult ->setText (
315342 QString (" %1" ).arg (QString::fromStdString (quickInfo->audioCodec )));
316343 ui->label_audioBitRateResult ->setText (
317344 formatBitrate (quickInfo->audioBitRate ));
318- ui->label_channelsResult ->setText (
319- QString (" %1" ).arg (quickInfo->channels ));
345+ ui->label_channelsResult ->setText (QString (" %1" ).arg (quickInfo->channels ));
320346 ui->label_sampleFmtResult ->setText (
321347 QString (" %1" ).arg (QString::fromStdString (quickInfo->sampleFmt )));
322- ui->label_sampleRateResult ->setText (
323- formatFrequency (quickInfo->sampleRate ));
348+ ui->label_sampleRateResult ->setText (formatFrequency (quickInfo->sampleRate ));
324349}
325350
326351OpenConverter::~OpenConverter () {
0 commit comments