• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision85c17c6a673d2157e7dfb6fbac8bdf0eef7a1d9e (tree)
Zeit2018-12-25 22:18:48
Autorkdrama_fansub <kdrama_fansub@yaho...>
Commiterkdrama_fansub

Log Message

GUIを横4列に変更。任意講座ボタン追加。

Ändern Zusammenfassung

Diff

--- a/downloadthread.cpp
+++ b/downloadthread.cpp
@@ -68,19 +68,31 @@ QString DownloadThread::suffix = "listdataflv.xml";
6868 QString DownloadThread::flv_host = "flv.nhk.or.jp";
6969 QString DownloadThread::flv_app = "ondemand/";
7070 QString DownloadThread::flv_service_prefix = "mp4:flv/gogaku/streaming/mp4/";
71+QString DownloadThread::kouza1 = "/kouza";
72+QString DownloadThread::kouza2 = "/kouza2";
7173
7274 QString DownloadThread::flvstreamer;
7375 QString DownloadThread::ffmpeg;
7476 QString DownloadThread::scramble;
77+QString DownloadThread::optional1;
78+QString DownloadThread::optional2;
79+QString DownloadThread::optional3;
80+QString DownloadThread::optional4;
81+
7582 QStringList DownloadThread::malformed = (QStringList() << "3g2" << "3gp" << "m4a" << "mov");
7683
84+QString DownloadThread::english_3month = QString::fromUtf8( "短期集中!3か月英会話" );
85+QString DownloadThread::english_vr = QString::fromUtf8( "ボキャブライダー" );
86+
7787 QHash<QString, QString> DownloadThread::ffmpegHash;
88+QHash<QString, QString> DownloadThread::ffmpegHash1;
7889 QHash<QProcess::ProcessError, QString> DownloadThread::processError;
7990
8091 //--------------------------------------------------------------------------------
8192
8293 DownloadThread::DownloadThread( Ui::MainWindowClass* ui ) : isCanceled(false), failed1935(false) {
8394 this->ui = ui;
95+
8496 if ( ffmpegHash.empty() ) {
8597 ffmpegHash["3g2"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/mp4/%2/master.m3u8 -vn -bsf aac_adtstoasc -acodec copy \"%3\"";
8698 ffmpegHash["3gp"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/mp4/%2/master.m3u8 -vn -bsf aac_adtstoasc -acodec copy \"%3\"";
@@ -93,6 +105,21 @@ DownloadThread::DownloadThread( Ui::MainWindowClass* ui ) : isCanceled(false), f
93105 ffmpegHash["mp3"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/mp4/%2/master.m3u8 -id3v2_version 3 -metadata title=\"%4\" -metadata artist=\"NHK\" -metadata album=\"%5\" -metadata date=\"%6\" -metadata genre=\"Speech\" -vn -acodec libmp3lame \"%3\"";
94106 ffmpegHash["ts"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/mp4/%2/master.m3u8 -vn -acodec copy \"%3\"";
95107 }
108+
109+ if ( ffmpegHash1.empty() ) {
110+ ffmpegHash1["3g2"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -vn -bsf aac_adtstoasc -acodec copy \"%3\"";
111+ ffmpegHash1["3gp"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -vn -bsf aac_adtstoasc -acodec copy \"%3\"";
112+ ffmpegHash1["aac"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -vn -acodec copy \"%3\"";
113+ ffmpegHash1["avi"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -id3v2_version 3 -metadata title=\"%4\" -metadata artist=\"NHK\" -metadata album=\"%5\" -metadata date=\"%6\" -metadata genre=\"Speech\" -vn -acodec copy \"%3\"";
114+ ffmpegHash1["m4a"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -id3v2_version 3 -metadata title=\"%4\" -metadata artist=\"NHK\" -metadata album=\"%5\" -metadata date=\"%6\" -metadata genre=\"Speech\" -vn -bsf aac_adtstoasc -acodec copy \"%3\"";
115+ ffmpegHash1["mka"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -id3v2_version 3 -metadata title=\"%4\" -metadata artist=\"NHK\" -metadata album=\"%5\" -metadata date=\"%6\" -metadata genre=\"Speech\" -vn -acodec copy \"%3\"";
116+ ffmpegHash1["mkv"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -id3v2_version 3 -metadata title=\"%4\" -metadata artist=\"NHK\" -metadata album=\"%5\" -metadata date=\"%6\" -metadata genre=\"Speech\" -vn -acodec copy \"%3\"";
117+ ffmpegHash1["mov"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -id3v2_version 3 -metadata title=\"%4\" -metadata artist=\"NHK\" -metadata album=\"%5\" -metadata date=\"%6\" -metadata genre=\"Speech\" -vn -bsf aac_adtstoasc -acodec copy \"%3\"";
118+ ffmpegHash1["mp3"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -id3v2_version 3 -metadata title=\"%4\" -metadata artist=\"NHK\" -metadata album=\"%5\" -metadata date=\"%6\" -metadata genre=\"Speech\" -vn -acodec libmp3lame \"%3\"";
119+ ffmpegHash1["ts"] = "\"%1\" -y -i https://nhk-vh.akamaihd.net/i/gogaku-stream/r/%2/master.m3u8 -vn -acodec copy \"%3\"";
120+ }
121+
122+
96123 if ( processError.empty() ) {
97124 processError[QProcess::FailedToStart] = "FailedToStart";
98125 processError[QProcess::Crashed] = "Crashed";
@@ -457,7 +484,8 @@ QString DownloadThread::formatName( QString format, QString kouza, QString hdate
457484 int month = hdate.left( 2 ).toInt();
458485 int year = 2000 + file.left( 2 ).toInt();
459486 if ( month <= 4 && QDate::currentDate().year() > year )
460- year += 1;
487+ if ( !QString::compare( kouza , english_vr ) == 0 ) year += 1;
488+ if ( QString::compare( kouza , english_vr ) == 0 && month < 4 ) year += 1;
461489 int day = hdate.mid( 3, 2 ).toInt();
462490
463491 if ( file.right( 4 ) == ".flv" )
@@ -528,18 +556,51 @@ bool DownloadThread::captureStream( QString kouza, QString hdate, QString file )
528556
529557 int month = hdate.left( 2 ).toInt();
530558 int year = 2000 + file.left( 2 ).toInt();
559+ int year1 = 2000 + file.left( 2 ).toInt();
531560 if ( month <= 4 && QDate::currentDate().year() > year )
532- year += 1;
561+ if ( !QString::compare( kouza , english_vr ) == 0 ) year += 1;
562+ if ( QString::compare( kouza , english_vr ) == 0 && month < 4 ) year += 1;
533563 int day = hdate.mid( 3, 2 ).toInt();
534564 QDate onair( year, month, day );
535565 QString yyyymmdd = onair.toString( "yyyy_MM_dd" );
536-
566+
567+
568+ if ( QString::compare( kouza , english_vr ) ==0 ){
569+ QDate d1;
570+ d1.setDate(QDate::currentDate().year(),QDate::currentDate().month(),QDate::currentDate().day());
571+ int d2 = d1.dayOfWeek();
572+
573+ if ( !ui->toolButton_vrradio1->isChecked() ){
574+ if ( d2 > 3 ) {
575+ if ( onair.daysTo(QDate::currentDate())-d2 > 0 ) return false;
576+ if ( onair.daysTo(QDate::currentDate())-d2 < -14 ) return false;
577+ } else {
578+ if ( onair.daysTo(QDate::currentDate())-d2 > 0 ) return false;
579+ if ( onair.daysTo(QDate::currentDate())-d2 < -7 ) return false;
580+ }
581+// if ( onair.daysTo(QDate::currentDate())-d2 > 7 ) return false;
582+// if ( onair.daysTo(QDate::currentDate())-d2 < 0 ) return false;
583+ } else {
584+ if ( ui->toolButton_vrradio2->isChecked() ){
585+ if ( QDate::currentDate().year() > year1 ) return false;
586+ }
587+ if ( d2 > 3 ) {
588+ if ( onair.daysTo(QDate::currentDate())-d2 < -14 ) return false;
589+ } else {
590+ if ( onair.daysTo(QDate::currentDate())-d2 < -7 ) return false;
591+ }}
592+ }
593+
594+
537595 if ( ui->toolButton_skip->isChecked() && QFile::exists( outputDir + outFileName ) ) {
538596 emit current( QString::fromUtf8( "スキップ:     " ) + kouza + QString::fromUtf8( " " ) + yyyymmdd );
539597 return true;
540598 }
541599 emit current( QString::fromUtf8( "ダウンロード中:  " ) + kouza + QString::fromUtf8( " " ) + yyyymmdd );
542600
601+ if ( QString::compare( kouza, english_3month ) == 0 )
602+ Q_ASSERT( ffmpegHash1.contains( extension ) );
603+ else
543604 Q_ASSERT( ffmpegHash.contains( extension ) );
544605 QString dstPath;
545606 #ifdef QT4_QT5_WIN
@@ -558,10 +619,16 @@ bool DownloadThread::captureStream( QString kouza, QString hdate, QString file )
558619 #endif
559620 QString commandFfmpeg = ffmpegHash[extension]
560621 .arg( ffmpeg, file, dstPath, id3tagTitle, kouza, QString::number( year ) );
622+ if ( QString::compare( kouza, english_3month ) == 0 )
623+ commandFfmpeg = ffmpegHash1[extension]
624+ .arg( ffmpeg, file, dstPath, id3tagTitle, kouza, QString::number( year ) );
625+
626+
561627 //qDebug() << commandFfmpeg;
562628 //DebugLog( commandFfmpeg );
563629 QProcess process;
564630 process.start( commandFfmpeg );
631+
565632 if ( !process.waitForStarted( -1 ) ) {
566633 emit critical( QString::fromUtf8( "ffmpeg起動エラー(%3): %1  %2" )
567634 .arg( kouza, yyyymmdd, processError[process.error()] ) );
@@ -601,24 +668,30 @@ bool DownloadThread::captureStream( QString kouza, QString hdate, QString file )
601668 }
602669
603670 QString DownloadThread::paths[] = {
604- "english/basic1", "english/basic2", "english/basic3",
605- "english/timetrial", "english/kaiwa", "english/business1",
606- "english/business2", "english/kouryaku", "english/yomu",
607- "english/enjoy",
608- "chinese/kouza", "chinese/levelup", "french/kouza",
609- "italian/kouza", "hangeul/kouza","hangeul/levelup",
610- "german/kouza", "spanish/kouza","russian/kouza"
671+ "english/basic0", "english/basic1", "english/basic2", "english/basic3",
672+ "english/timetrial", "english/gendai", "english/kaiwa", "english/gakusyu",
673+ "english/business1", "english/business2",
674+ "english/enjoy", "english/vr-radio",
675+ "french/kouza", "french/kouza2", "german/kouza", "german/kouza2",
676+ "spanish/kouza", "spanish/kouza2", "italian/kouza", "italian/kouza2",
677+ "russian/kouza", "russian/kouza2", "hangeul/kouza", "hangeul/levelup", "hangeul/omotenashi",
678+ "chinese/kouza", "chinese/levelup", "chinese/omotenashi",
679+ "optional1", "optional2", "optional3", "optional4"
611680 };
612681
613682 void DownloadThread::run() {
614683 QAbstractButton* checkbox[] = {
615- ui->toolButton_basic1, ui->toolButton_basic2, ui->toolButton_basic3,
616- ui->toolButton_timetrial, ui->toolButton_kaiwa, ui->toolButton_business1,
617- ui->toolButton_business2, ui->toolButton_kouryaku, ui->toolButton_yomu,
618- ui->toolButton_enjoy,
619- ui->toolButton_chinese, ui->toolButton_levelup_chinese, ui->toolButton_french,
620- ui->toolButton_italian, ui->toolButton_hangeul, ui->toolButton_levelup_hangeul,
621- ui->toolButton_german, ui->toolButton_spanish, ui->toolButton_russian,
684+ ui->toolButton_basic0, ui->toolButton_basic1, ui->toolButton_basic2, ui->toolButton_basic3,
685+ ui->toolButton_timetrial, ui->toolButton_gendai, ui->toolButton_kaiwa, ui->toolButton_gakusyu,
686+ ui->toolButton_business1, ui->toolButton_business2,
687+ ui->toolButton_enjoy, ui->toolButton_vrradio,
688+ ui->toolButton_french, ui->toolButton_french2, ui->toolButton_german, ui->toolButton_german2,
689+ ui->toolButton_spanish, ui->toolButton_spanish2, ui->toolButton_italian, ui->toolButton_italian2,
690+ ui->toolButton_russian, ui->toolButton_russian2, ui->toolButton_hangeul, ui->toolButton_levelup_hangeul,
691+ ui->toolButton_omotenashino_hangeul,
692+ ui->toolButton_chinese, ui->toolButton_levelup_chinese, ui->toolButton_omotenashino_chinese,
693+ ui->toolButton_optional1, ui->toolButton_optional2,
694+ ui->toolButton_optional3, ui->toolButton_optional4,
622695 NULL
623696 };
624697
@@ -630,6 +703,16 @@ void DownloadThread::run() {
630703 //emit information( QString::fromUtf8( "----------------------------------------" ) );
631704
632705 for ( int i = 0; checkbox[i] && !isCanceled; i++ ) {
706+
707+ QString optional1 = MainWindow::optional1;
708+ QString optional2 = MainWindow::optional2;
709+ QString optional3 = MainWindow::optional3;
710+ QString optional4 = MainWindow::optional4;
711+ if ( paths[i].startsWith("optional1") ) paths[i] = optional1;
712+ if ( paths[i].startsWith("optional2") ) paths[i] = optional2;
713+ if ( paths[i].startsWith("optional3") ) paths[i] = optional3;
714+ if ( paths[i].startsWith("optional4") ) paths[i] = optional4;
715+
633716 if ( checkbox[i]->isChecked() ) {
634717 QStringList fileList = getAttribute( prefix + paths[i] + "/" + suffix, "@file" );
635718 QStringList kouzaList = getAttribute( prefix + paths[i] + "/" + suffix, "@kouza" );
--- a/downloadthread.h
+++ b/downloadthread.h
@@ -69,13 +69,23 @@ private:
6969 static QString flv_host;
7070 static QString flv_app;
7171 static QString flv_service_prefix;
72+ static QString kouza1;
73+ static QString kouza2;
7274
7375 static QString flvstreamer;
7476 static QString ffmpeg;
7577 static QString scramble;
7678 static QStringList malformed;
79+ static QString optional1;
80+ static QString optional2;
81+ static QString optional3;
82+ static QString optional4;
83+
84+ static QString english_3month;
85+ static QString english_vr;
7786
7887 static QHash<QString, QString> ffmpegHash;
88+ static QHash<QString, QString> ffmpegHash1;
7989 static QHash<QProcess::ProcessError, QString>processError;
8090
8191 };
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -48,8 +48,25 @@
4848 #define SETTING_SCRAMBLE "scramble"
4949 #define SETTING_SCRAMBLE_URL1 "scramble_url1"
5050 #define SETTING_SCRAMBLE_URL2 "scramble_url2"
51+#define SETTING_OPTIONAL1 "optional1"
52+#define SETTING_OPTIONAL2 "optional2"
53+#define SETTING_OPTIONAL3 "optional3"
54+#define SETTING_OPTIONAL4 "optional4"
55+#define SETTING_OPT_TITLE1 "opt_title1"
56+#define SETTING_OPT_TITLE2 "opt_title2"
57+#define SETTING_OPT_TITLE3 "opt_title3"
58+#define SETTING_OPT_TITLE4 "opt_title4"
5159 #define SCRAMBLE_URL1 "http://www47.atwiki.jp/jakago/pub/scramble.xml"
5260 #define SCRAMBLE_URL2 "http://cdn47.atwikiimg.com/jakago/pub/scramble.xml"
61+#define OPTIONAL1 "english/basic1"
62+#define OPTIONAL2 "english/basic2"
63+#define OPTIONAL3 "english/basic3"
64+#define OPTIONAL4 "english/enjoy"
65+#define OPT_TITLE1 "任意講座1"
66+#define OPT_TITLE2 "任意講座2"
67+#define OPT_TITLE3 "任意講座3"
68+#define OPT_TITLE4 "任意講座4"
69+
5370 #define X11_WINDOW_VERTICAL_INCREMENT 5
5471
5572 #ifdef QT4_QT5_WIN
@@ -86,6 +103,14 @@ QString MainWindow::outputDir;
86103 QString MainWindow::scramble;
87104 QString MainWindow::scrambleUrl1;
88105 QString MainWindow::scrambleUrl2;
106+QString MainWindow::optional1;
107+QString MainWindow::optional2;
108+QString MainWindow::optional3;
109+QString MainWindow::optional4;
110+QString MainWindow::opt_title1;
111+QString MainWindow::opt_title2;
112+QString MainWindow::opt_title3;
113+QString MainWindow::opt_title4;
89114
90115 MainWindow::MainWindow( QWidget *parent )
91116 : QMainWindow( parent ), ui( new Ui::MainWindowClass ), downloadThread( NULL ) {
@@ -130,6 +155,10 @@ MainWindow::MainWindow( QWidget *parent )
130155 connect( action, SIGNAL( triggered() ), this, SLOT( customizeSaveFolder() ) );
131156 customizeMenu->addAction( action );
132157
158+ action = new QAction( QString::fromUtf8( "任意講座設定" ), this );
159+ connect( action, SIGNAL( triggered() ), this, SLOT( customizeScramble() ) );
160+ customizeMenu->addAction( action );
161+
133162 //action = new QAction( QString::fromUtf8( "スクランブル文字列..." ), this );
134163 //connect( action, SIGNAL( triggered() ), this, SLOT( customizeScramble() ) );
135164 //customizeMenu->addAction( action );
@@ -178,8 +207,9 @@ void MainWindow::settings( enum ReadWriteMode mode ) {
178207 QVariant fileNameFormat;
179208 } CheckBox;
180209 #define DefaultTitle "%k_%Y_%M_%D"
181-#define DefaultFileName "%k_%Y_%M_%D.mp3"
210+#define DefaultFileName "%k_%Y_%M_%D.m4a"
182211 CheckBox checkBoxes[] = {
212+ { ui->toolButton_basic0, "basic0", false, "basic0_title", DefaultTitle, "basic0_file_name", DefaultFileName },
183213 { ui->toolButton_basic1, "basic1", false, "basic1_title", DefaultTitle, "basic1_file_name", DefaultFileName },
184214 { ui->toolButton_basic2, "basic2", false, "basic2_title", DefaultTitle, "basic2_file_name", DefaultFileName },
185215 { ui->toolButton_basic3, "basic3", false, "basic3_title", DefaultTitle, "basic3_file_name", DefaultFileName },
@@ -189,19 +219,33 @@ void MainWindow::settings( enum ReadWriteMode mode ) {
189219 { ui->toolButton_business2, "business2", false, "business2_title", DefaultTitle, "business2_file_name", DefaultFileName },
190220 { ui->toolButton_chinese, "chinese", false, "chinese_title", DefaultTitle, "chinese_file_name", DefaultFileName },
191221 { ui->toolButton_french, "french", false, "french_title", DefaultTitle, "french_file_name", DefaultFileName },
222+ { ui->toolButton_french2, "french2", false, "french_title", DefaultTitle, "french_file_name", DefaultFileName },
192223 { ui->toolButton_italian, "italian", false, "italian_title", DefaultTitle, "italian_file_name", DefaultFileName },
224+ { ui->toolButton_italian2, "italian2", false, "italian_title", DefaultTitle, "italian_file_name", DefaultFileName },
193225 { ui->toolButton_hangeul, "hangeul", false, "hangeul_title", DefaultTitle, "hangeul_file_name", DefaultFileName },
194226 { ui->toolButton_german, "german", false, "german_title", DefaultTitle, "german_file_name", DefaultFileName },
227+ { ui->toolButton_german2, "german2", false, "german_title", DefaultTitle, "german_file_name", DefaultFileName },
195228 { ui->toolButton_spanish, "spanish", false, "spanish_title", DefaultTitle, "spanish_file_name", DefaultFileName },
229+ { ui->toolButton_spanish2, "spanish2", false, "spanish_title", DefaultTitle, "spanish_file_name", DefaultFileName },
196230 { ui->checkBox_13, "charo", false, "charo_title", DefaultTitle, "charo_file_name", DefaultFileName },
197231 { ui->checkBox_14, "e-news", false, "e-news_title", DefaultTitle, "e-news_file_name", DefaultFileName },
198232 { ui->checkBox_15, "e-news-reread", false, "e-news-reread_title", DefaultTitle, "e-news-reread_file_name", DefaultFileName },
199233 { ui->toolButton_levelup_chinese, "levelup-chinese", false, "levelup-chinese_title", DefaultTitle, "levelup-chinese_file_name", DefaultFileName },
234+ { ui->toolButton_omotenashino_hangeul, "omotenashino-hangeul", false, "omotenashino-hangeul_title", DefaultTitle, "omotenashino-hangeul_file_name", DefaultFileName },
235+ { ui->toolButton_omotenashino_chinese, "omotenashino-chinese", false, "omotenashino-chinese_title", DefaultTitle, "omotenashino-chinese_file_name", DefaultFileName },
200236 { ui->toolButton_levelup_hangeul, "levelup-hangeul", false, "levelup-hangeul_title", DefaultTitle, "levelup-hangeul_file_name", DefaultFileName },
201237 { ui->toolButton_russian, "russian", false, "russian_title", DefaultTitle, "russian_file_name", DefaultFileName },
238+ { ui->toolButton_russian2, "russian2", false, "russian_title", DefaultTitle, "russian_file_name", DefaultFileName },
239+ { ui->toolButton_vrradio, "vr-radio", false, "vr-radio_title", DefaultTitle, "vr-radio_file_name", DefaultFileName },
240+ { ui->toolButton_optional1, "optional_1", false, "optional1_title", DefaultTitle, "optional1_file_name", DefaultFileName },
241+ { ui->toolButton_optional2, "optional_2", false, "optional2_title", DefaultTitle, "optional2_file_name", DefaultFileName },
242+ { ui->toolButton_optional3, "optional_3", false, "optional3_title", DefaultTitle, "optional3_file_name", DefaultFileName },
243+ { ui->toolButton_optional4, "optional_4", false, "optional4_title", DefaultTitle, "optional4_file_name", DefaultFileName },
244+ { ui->toolButton_vrradio1, "vr-radio_all", false, "", "", "", "" },
245+ { ui->toolButton_vrradio2, "vr-radio_year", false, "", "", "", "" },
202246 { ui->checkBox_shower, "shower", false, "shower_title", DefaultTitle, "shower_file_name", DefaultFileName },
203- { ui->toolButton_kouryaku, "kouryaku", false, "kouryaku_title", DefaultTitle, "kouryaku_file_name", DefaultFileName },
204- { ui->toolButton_yomu, "yomu", false, "yomu_title", DefaultTitle, "yomu_file_name", DefaultFileName },
247+ { ui->toolButton_gendai, "gendai", false, "gendai_title", DefaultTitle, "gendai_file_name", DefaultFileName },
248+ { ui->toolButton_gakusyu, "gakusyu", false, "gakusyu_title", DefaultTitle, "gakusyu_file_name", DefaultFileName },
205249 { ui->toolButton_enjoy, "enjoy", false, "enjoy_title", DefaultTitle, "enjoy_file_name", DefaultFileName },
206250 { ui->toolButton_skip, "skip", true, "", "", "", "" },
207251 { ui->checkBox_keep_on_error, "keep_on_error", false, "", "", "", "" },
@@ -222,7 +266,7 @@ void MainWindow::settings( enum ReadWriteMode mode ) {
222266 { NULL, NULL, false }
223267 };
224268 ComboBox textComboBoxes[] = {
225- { ui->comboBox_extension, "audio_extension", "mp3" },
269+ { ui->comboBox_extension, "audio_extension", "m4a" },
226270 { NULL, NULL, false }
227271 };
228272
@@ -254,6 +298,29 @@ void MainWindow::settings( enum ReadWriteMode mode ) {
254298 saved = settings.value( SETTING_SCRAMBLE_URL2 );
255299 scrambleUrl2 = saved.type() == QVariant::Invalid ? SCRAMBLE_URL2 : saved.toString();
256300
301+ saved = settings.value( SETTING_OPTIONAL1 );
302+ optional1 = saved.type() == QVariant::Invalid ? OPTIONAL1 : saved.toString();
303+ saved = settings.value( SETTING_OPTIONAL2 );
304+ optional2 = saved.type() == QVariant::Invalid ? OPTIONAL2 : saved.toString();
305+ saved = settings.value( SETTING_OPTIONAL3 );
306+ optional3 = saved.type() == QVariant::Invalid ? OPTIONAL3 : saved.toString();
307+ saved = settings.value( SETTING_OPTIONAL4 );
308+ optional4 = saved.type() == QVariant::Invalid ? OPTIONAL4 : saved.toString();
309+
310+ saved = settings.value( SETTING_OPT_TITLE1 );
311+ opt_title1 = saved.type() == QVariant::Invalid ? QString::fromUtf8( OPT_TITLE1 ) : saved.toString();
312+ saved = settings.value( SETTING_OPT_TITLE2 );
313+ opt_title2 = saved.type() == QVariant::Invalid ? QString::fromUtf8( OPT_TITLE2 ) : saved.toString();
314+ saved = settings.value( SETTING_OPT_TITLE3 );
315+ opt_title3 = saved.type() == QVariant::Invalid ? QString::fromUtf8( OPT_TITLE3 ) : saved.toString();
316+ saved = settings.value( SETTING_OPT_TITLE4 );
317+ opt_title4 = saved.type() == QVariant::Invalid ? QString::fromUtf8( OPT_TITLE4 ) : saved.toString();
318+
319+ ui->toolButton_optional1->setText( QString( opt_title1 ) );
320+ ui->toolButton_optional2->setText( QString( opt_title2 ) );
321+ ui->toolButton_optional3->setText( QString( opt_title3 ) );
322+ ui->toolButton_optional4->setText( QString( opt_title4 ) );
323+
257324 for ( int i = 0; checkBoxes[i].checkBox != NULL; i++ ) {
258325 checkBoxes[i].checkBox->setChecked( settings.value( checkBoxes[i].key, checkBoxes[i].defaultValue ).toBool() );
259326 }
@@ -272,6 +339,15 @@ void MainWindow::settings( enum ReadWriteMode mode ) {
272339 settings.setValue( SETTING_SCRAMBLE, scramble );
273340 settings.setValue( SETTING_SCRAMBLE_URL1, scrambleUrl1 );
274341 settings.setValue( SETTING_SCRAMBLE_URL2, scrambleUrl2 );
342+ settings.setValue( SETTING_OPTIONAL1, optional1 );
343+ settings.setValue( SETTING_OPTIONAL2, optional2 );
344+ settings.setValue( SETTING_OPTIONAL3, optional3 );
345+ settings.setValue( SETTING_OPTIONAL4, optional4 );
346+ settings.setValue( SETTING_OPT_TITLE1, opt_title1 );
347+ settings.setValue( SETTING_OPT_TITLE2, opt_title2 );
348+ settings.setValue( SETTING_OPT_TITLE3, opt_title3 );
349+ settings.setValue( SETTING_OPT_TITLE4, opt_title4 );
350+
275351 for ( int i = 0; checkBoxes[i].checkBox != NULL; i++ ) {
276352 settings.setValue( checkBoxes[i].key, checkBoxes[i].checkBox->isChecked() );
277353 }
@@ -304,9 +380,32 @@ void MainWindow::customizeSaveFolder() {
304380 }
305381
306382 void MainWindow::customizeScramble() {
307- ScrambleDialog dialog( scramble );
383+ ScrambleDialog dialog( opt_title1, opt_title2, opt_title3, opt_title4, optional1, optional2 , optional3, optional4 );
308384 dialog.exec();
309- scramble = dialog.scramble();
385+ opt_title1 = dialog.scramble();
386+ opt_title2 = dialog.scramble2();
387+ opt_title3 = dialog.scramble3();
388+ opt_title4 = dialog.scramble4();
389+ optional1 = dialog.scramble5();
390+ optional2 = dialog.scramble6();
391+ optional3 = dialog.scramble7();
392+ optional4 = dialog.scramble8();
393+
394+// ui->toolButton_optional1->setText( QString( opt_title1 ) );
395+// ui->toolButton_optional2->setText( QString( opt_title2 ) );
396+// ui->toolButton_optional3->setText( QString( opt_title3 ) );
397+// ui->toolButton_optional4->setText( QString( opt_title4 ) );
398+
399+
400+// if ( QString::compare( opt_title1, "" ) == true ) opt_title1 = OPT_TITLE1;
401+// if ( QString::compare( opt_title2, "" ) == true ) opt_title2 = OPT_TITLE2;
402+// if ( QString::compare( opt_title3, "" ) == true ) opt_title3 = OPT_TITLE3;
403+// if ( QString::compare( opt_title4, "" ) == true ) opt_title4 = OPT_TITLE4;
404+
405+// if ( optional1.isNull() == true ) opt_title1 = OPTIONAL1;
406+// if ( optional2.isNull() == true ) opt_title2 = OPTIONAL2;
407+// if ( optional3.isNull() == true ) opt_title3 = OPTIONAL3;
408+// if ( optional4.isNull() == true ) opt_title4 = OPTIONAL4;
310409 }
311410
312411 void MainWindow::download() { //「ダウンロード」または「キャンセル」ボタンが押されると呼び出される
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -54,6 +54,14 @@ public:
5454 static QString scramble;
5555 static QString scrambleUrl1;
5656 static QString scrambleUrl2;
57+ static QString optional1;
58+ static QString optional2;
59+ static QString optional3;
60+ static QString optional4;
61+ static QString opt_title1;
62+ static QString opt_title2;
63+ static QString opt_title3;
64+ static QString opt_title4;
5765
5866 protected:
5967 virtual void closeEvent( QCloseEvent *event );
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -6,8 +6,8 @@
66 <rect>
77 <x>0</x>
88 <y>0</y>
9- <width>540</width>
10- <height>500</height>
9+ <width>1080</width>
10+ <height>462</height>
1111 </rect>
1212 </property>
1313 <property name="sizePolicy">
@@ -18,14 +18,14 @@
1818 </property>
1919 <property name="minimumSize">
2020 <size>
21- <width>540</width>
22- <height>500</height>
21+ <width>1080</width>
22+ <height>462</height>
2323 </size>
2424 </property>
2525 <property name="maximumSize">
2626 <size>
27- <width>540</width>
28- <height>500</height>
27+ <width>1080</width>
28+ <height>462</height>
2929 </size>
3030 </property>
3131 <property name="font">
@@ -34,7 +34,7 @@
3434 </font>
3535 </property>
3636 <property name="windowTitle">
37- <string>語学講座ダウンローダ</string>
37+ <string>語学講座ダウンローダ(FFU-extra)</string>
3838 </property>
3939 <widget class="QWidget" name="centralWidget">
4040 <property name="sizePolicy">
@@ -48,15 +48,15 @@
4848 <rect>
4949 <x>10</x>
5050 <y>10</y>
51- <width>521</width>
52- <height>437</height>
51+ <width>1061</width>
52+ <height>400</height>
5353 </rect>
5454 </property>
5555 <layout class="QGridLayout" name="gridLayout_3" rowstretch="0,0,0,0,0,0,0,0,0,0,0,0,0,0">
56- <item row="4" column="0">
57- <layout class="QHBoxLayout" name="horizontalLayout_18">
56+ <item row="0" column="0">
57+ <layout class="QHBoxLayout" name="horizontalLayout_14_0">
5858 <item>
59- <widget class="QToolButton" name="toolButton_kaiwa">
59+ <widget class="QToolButton" name="toolButton_basic0">
6060 <property name="sizePolicy">
6161 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
6262 <horstretch>0</horstretch>
@@ -69,7 +69,7 @@
6969 </font>
7070 </property>
7171 <property name="text">
72- <string>ラジオ英会話</string>
72+ <string>基礎英語0</string>
7373 </property>
7474 <property name="checkable">
7575 <bool>true</bool>
@@ -78,10 +78,10 @@
7878 </item>
7979 </layout>
8080 </item>
81- <item row="8" column="1">
82- <layout class="QHBoxLayout" name="horizontalLayout_13">
81+ <item row="0" column="1">
82+ <layout class="QHBoxLayout" name="horizontalLayout_14_1">
8383 <item>
84- <widget class="QToolButton" name="toolButton_russian">
84+ <widget class="QToolButton" name="toolButton_basic1">
8585 <property name="sizePolicy">
8686 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
8787 <horstretch>0</horstretch>
@@ -94,7 +94,7 @@
9494 </font>
9595 </property>
9696 <property name="text">
97- <string>まいにちロシア語</string>
97+ <string>基礎英語1</string>
9898 </property>
9999 <property name="checkable">
100100 <bool>true</bool>
@@ -103,10 +103,10 @@
103103 </item>
104104 </layout>
105105 </item>
106- <item row="5" column="0">
107- <layout class="QHBoxLayout" name="horizontalLayout_19">
106+ <item row="1" column="0">
107+ <layout class="QHBoxLayout" name="horizontalLayout_15">
108108 <item>
109- <widget class="QToolButton" name="toolButton_business1">
109+ <widget class="QToolButton" name="toolButton_basic2">
110110 <property name="sizePolicy">
111111 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
112112 <horstretch>0</horstretch>
@@ -119,7 +119,7 @@
119119 </font>
120120 </property>
121121 <property name="text">
122- <string>入門ビジネス英語</string>
122+ <string>基礎英語2</string>
123123 </property>
124124 <property name="checkable">
125125 <bool>true</bool>
@@ -128,20 +128,10 @@
128128 </item>
129129 </layout>
130130 </item>
131- <item row="10" column="0">
132- <widget class="Line" name="line_2">
133- <property name="lineWidth">
134- <number>2</number>
135- </property>
136- <property name="orientation">
137- <enum>Qt::Horizontal</enum>
138- </property>
139- </widget>
140- </item>
141- <item row="7" column="1">
142- <layout class="QHBoxLayout" name="horizontalLayout_7">
131+ <item row="1" column="1">
132+ <layout class="QHBoxLayout" name="horizontalLayout_16">
143133 <item>
144- <widget class="QToolButton" name="toolButton_spanish">
134+ <widget class="QToolButton" name="toolButton_basic3">
145135 <property name="sizePolicy">
146136 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
147137 <horstretch>0</horstretch>
@@ -154,7 +144,7 @@
154144 </font>
155145 </property>
156146 <property name="text">
157- <string>まいにちスペイン語</string>
147+ <string>基礎英語3</string>
158148 </property>
159149 <property name="checkable">
160150 <bool>true</bool>
@@ -163,10 +153,10 @@
163153 </item>
164154 </layout>
165155 </item>
166- <item row="11" column="0">
167- <layout class="QHBoxLayout" name="horizontalLayout_22">
156+ <item row="2" column="0">
157+ <layout class="QHBoxLayout" name="horizontalLayout_17">
168158 <item>
169- <widget class="QToolButton" name="toolButton_skip">
159+ <widget class="QToolButton" name="toolButton_timetrial">
170160 <property name="sizePolicy">
171161 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
172162 <horstretch>0</horstretch>
@@ -179,22 +169,19 @@
179169 </font>
180170 </property>
181171 <property name="text">
182- <string>既存のファイルはスキップ</string>
172+ <string>英会話タイムトライアル</string>
183173 </property>
184174 <property name="checkable">
185175 <bool>true</bool>
186176 </property>
187- <property name="checked">
188- <bool>false</bool>
189- </property>
190177 </widget>
191178 </item>
192179 </layout>
193180 </item>
194- <item row="7" column="0">
181+ <item row="2" column="1">
195182 <layout class="QHBoxLayout" name="horizontalLayout_21">
196183 <item>
197- <widget class="QToolButton" name="toolButton_kouryaku">
184+ <widget class="QToolButton" name="toolButton_gendai">
198185 <property name="sizePolicy">
199186 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
200187 <horstretch>0</horstretch>
@@ -207,7 +194,7 @@
207194 </font>
208195 </property>
209196 <property name="text">
210- <string>攻略英語リスニング</string>
197+ <string>高校生からはじめる「現代英語」</string>
211198 </property>
212199 <property name="checkable">
213200 <bool>true</bool>
@@ -216,13 +203,10 @@
216203 </item>
217204 </layout>
218205 </item>
219- <item row="13" column="0">
220- <layout class="QHBoxLayout" name="horizontalLayout_28"/>
221- </item>
222- <item row="13" column="1">
223- <layout class="QHBoxLayout" name="horizontalLayout_25">
206+ <item row="3" column="0">
207+ <layout class="QHBoxLayout" name="horizontalLayout_18">
224208 <item>
225- <widget class="QPushButton" name="downloadButton">
209+ <widget class="QToolButton" name="toolButton_kaiwa">
226210 <property name="sizePolicy">
227211 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
228212 <horstretch>0</horstretch>
@@ -235,16 +219,19 @@
235219 </font>
236220 </property>
237221 <property name="text">
238- <string>ダウンロード</string>
222+ <string>ラジオ英会話</string>
223+ </property>
224+ <property name="checkable">
225+ <bool>true</bool>
239226 </property>
240227 </widget>
241228 </item>
242229 </layout>
243230 </item>
244- <item row="11" column="1">
245- <layout class="QHBoxLayout" name="horizontalLayout_26">
231+ <item row="3" column="1">
232+ <layout class="QHBoxLayout" name="horizontalLayout_27">
246233 <item>
247- <widget class="QLabel" name="label">
234+ <widget class="QToolButton" name="toolButton_gakusyu">
248235 <property name="sizePolicy">
249236 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
250237 <horstretch>0</horstretch>
@@ -256,21 +243,47 @@
256243 <pointsize>11</pointsize>
257244 </font>
258245 </property>
259- <property name="layoutDirection">
260- <enum>Qt::LeftToRight</enum>
246+ <property name="text">
247+ <string>遠山顕の英会話楽習</string>
248+ </property>
249+ <property name="checkable">
250+ <bool>true</bool>
251+ </property>
252+ </widget>
253+ </item>
254+ </layout>
255+ </item>
256+ <item row="4" column="0">
257+ <layout class="QHBoxLayout" name="horizontalLayout_19">
258+ <item>
259+ <widget class="QToolButton" name="toolButton_business1">
260+ <property name="sizePolicy">
261+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
262+ <horstretch>0</horstretch>
263+ <verstretch>0</verstretch>
264+ </sizepolicy>
265+ </property>
266+ <property name="font">
267+ <font>
268+ <pointsize>11</pointsize>
269+ </font>
261270 </property>
262271 <property name="text">
263- <string>     拡張子:</string>
272+ <string>入門ビジネス英語</string>
264273 </property>
265- <property name="alignment">
266- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
274+ <property name="checkable">
275+ <bool>true</bool>
267276 </property>
268277 </widget>
269278 </item>
279+ </layout>
280+ </item>
281+ <item row="4" column="1">
282+ <layout class="QHBoxLayout" name="horizontalLayout_20">
270283 <item>
271- <widget class="QComboBox" name="comboBox_extension">
284+ <widget class="QToolButton" name="toolButton_business2">
272285 <property name="sizePolicy">
273- <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
286+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
274287 <horstretch>0</horstretch>
275288 <verstretch>0</verstretch>
276289 </sizepolicy>
@@ -280,64 +293,20 @@
280293 <pointsize>11</pointsize>
281294 </font>
282295 </property>
283- <item>
284- <property name="text">
285- <string>3g2</string>
286- </property>
287- </item>
288- <item>
289- <property name="text">
290- <string>3gp</string>
291- </property>
292- </item>
293- <item>
294- <property name="text">
295- <string>aac</string>
296- </property>
297- </item>
298- <item>
299- <property name="text">
300- <string>avi</string>
301- </property>
302- </item>
303- <item>
304- <property name="text">
305- <string>m4a</string>
306- </property>
307- </item>
308- <item>
309- <property name="text">
310- <string>mka</string>
311- </property>
312- </item>
313- <item>
314- <property name="text">
315- <string>mkv</string>
316- </property>
317- </item>
318- <item>
319- <property name="text">
320- <string>mov</string>
321- </property>
322- </item>
323- <item>
324- <property name="text">
325- <string>mp3</string>
326- </property>
327- </item>
328- <item>
329- <property name="text">
330- <string>ts</string>
331- </property>
332- </item>
296+ <property name="text">
297+ <string>実践ビジネス英語</string>
298+ </property>
299+ <property name="checkable">
300+ <bool>true</bool>
301+ </property>
333302 </widget>
334303 </item>
335304 </layout>
336305 </item>
337- <item row="8" column="0">
338- <layout class="QHBoxLayout" name="horizontalLayout_27">
306+ <item row="5" column="0">
307+ <layout class="QHBoxLayout" name="horizontalLayout_29">
339308 <item>
340- <widget class="QToolButton" name="toolButton_yomu">
309+ <widget class="QToolButton" name="toolButton_enjoy">
341310 <property name="sizePolicy">
342311 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
343312 <horstretch>0</horstretch>
@@ -350,7 +319,7 @@
350319 </font>
351320 </property>
352321 <property name="text">
353- <string>英語で読む村上春樹</string>
322+ <string>エンジョイ・シンプル・イングリッシュ</string>
354323 </property>
355324 <property name="checkable">
356325 <bool>true</bool>
@@ -359,10 +328,10 @@
359328 </item>
360329 </layout>
361330 </item>
362- <item row="6" column="1">
363- <layout class="QHBoxLayout" name="horizontalLayout_6">
331+ <item row="5" column="1">
332+ <layout class="QHBoxLayout" name="horizontalLayout_14">
364333 <item>
365- <widget class="QToolButton" name="toolButton_german">
334+ <widget class="QToolButton" name="toolButton_vrradio">
366335 <property name="sizePolicy">
367336 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
368337 <horstretch>0</horstretch>
@@ -375,7 +344,7 @@
375344 </font>
376345 </property>
377346 <property name="text">
378- <string>まいにちドイツ語</string>
347+ <string>ボキャブライダー</string>
379348 </property>
380349 <property name="checkable">
381350 <bool>true</bool>
@@ -384,10 +353,10 @@
384353 </item>
385354 </layout>
386355 </item>
387- <item row="0" column="1">
388- <layout class="QHBoxLayout" name="horizontalLayout_2">
356+ <item row="6" column="0">
357+ <layout class="QHBoxLayout" name="horizontalLayout_411">
389358 <item>
390- <widget class="QToolButton" name="toolButton_chinese">
359+ <widget class="QToolButton" name="toolButton_optional1">
391360 <property name="sizePolicy">
392361 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
393362 <horstretch>0</horstretch>
@@ -400,7 +369,7 @@
400369 </font>
401370 </property>
402371 <property name="text">
403- <string>まいにち中国語</string>
372+ <string>任意講座1</string>
404373 </property>
405374 <property name="checkable">
406375 <bool>true</bool>
@@ -409,10 +378,10 @@
409378 </item>
410379 </layout>
411380 </item>
412- <item row="0" column="0">
413- <layout class="QHBoxLayout" name="horizontalLayout_14">
381+ <item row="6" column="1">
382+ <layout class="QHBoxLayout" name="horizontalLayout_422">
414383 <item>
415- <widget class="QToolButton" name="toolButton_basic1">
384+ <widget class="QToolButton" name="toolButton_optional2">
416385 <property name="sizePolicy">
417386 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
418387 <horstretch>0</horstretch>
@@ -425,7 +394,7 @@
425394 </font>
426395 </property>
427396 <property name="text">
428- <string>基礎英語1</string>
397+ <string>任意講座2</string>
429398 </property>
430399 <property name="checkable">
431400 <bool>true</bool>
@@ -434,24 +403,35 @@
434403 </item>
435404 </layout>
436405 </item>
437- <item row="10" column="1">
438- <layout class="QHBoxLayout" name="horizontalLayout_10">
406+ <item row="7" column="0">
407+ <layout class="QHBoxLayout" name="horizontalLayout_421">
439408 <item>
440- <widget class="Line" name="line">
441- <property name="lineWidth">
442- <number>2</number>
409+ <widget class="QToolButton" name="toolButton_optional3">
410+ <property name="sizePolicy">
411+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
412+ <horstretch>0</horstretch>
413+ <verstretch>0</verstretch>
414+ </sizepolicy>
443415 </property>
444- <property name="orientation">
445- <enum>Qt::Horizontal</enum>
416+ <property name="font">
417+ <font>
418+ <pointsize>11</pointsize>
419+ </font>
420+ </property>
421+ <property name="text">
422+ <string>任意講座3</string>
423+ </property>
424+ <property name="checkable">
425+ <bool>true</bool>
446426 </property>
447427 </widget>
448428 </item>
449429 </layout>
450430 </item>
451- <item row="3" column="0">
452- <layout class="QHBoxLayout" name="horizontalLayout_17">
431+ <item row="7" column="1">
432+ <layout class="QHBoxLayout" name="horizontalLayout_432">
453433 <item>
454- <widget class="QToolButton" name="toolButton_timetrial">
434+ <widget class="QToolButton" name="toolButton_optional4">
455435 <property name="sizePolicy">
456436 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
457437 <horstretch>0</horstretch>
@@ -464,7 +444,7 @@
464444 </font>
465445 </property>
466446 <property name="text">
467- <string>英会話タイムトライアル</string>
447+ <string>任意講座4</string>
468448 </property>
469449 <property name="checkable">
470450 <bool>true</bool>
@@ -473,10 +453,10 @@
473453 </item>
474454 </layout>
475455 </item>
476- <item row="1" column="0">
477- <layout class="QHBoxLayout" name="horizontalLayout_15">
456+ <item row="0" column="2">
457+ <layout class="QHBoxLayout" name="horizontalLayout_3">
478458 <item>
479- <widget class="QToolButton" name="toolButton_basic2">
459+ <widget class="QToolButton" name="toolButton_french">
480460 <property name="sizePolicy">
481461 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
482462 <horstretch>0</horstretch>
@@ -489,7 +469,7 @@
489469 </font>
490470 </property>
491471 <property name="text">
492- <string>基礎英語2</string>
472+ <string>まいにちフランス語【入門編】</string>
493473 </property>
494474 <property name="checkable">
495475 <bool>true</bool>
@@ -498,10 +478,10 @@
498478 </item>
499479 </layout>
500480 </item>
501- <item row="2" column="0">
502- <layout class="QHBoxLayout" name="horizontalLayout_16">
481+ <item row="0" column="3">
482+ <layout class="QHBoxLayout" name="horizontalLayout_31">
503483 <item>
504- <widget class="QToolButton" name="toolButton_basic3">
484+ <widget class="QToolButton" name="toolButton_french2">
505485 <property name="sizePolicy">
506486 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
507487 <horstretch>0</horstretch>
@@ -514,7 +494,7 @@
514494 </font>
515495 </property>
516496 <property name="text">
517- <string>基礎英語3</string>
497+ <string>まいにちフランス語【応用編】</string>
518498 </property>
519499 <property name="checkable">
520500 <bool>true</bool>
@@ -523,10 +503,10 @@
523503 </item>
524504 </layout>
525505 </item>
526- <item row="5" column="1">
527- <layout class="QHBoxLayout" name="horizontalLayout_11">
506+ <item row="1" column="2">
507+ <layout class="QHBoxLayout" name="horizontalLayout_6">
528508 <item>
529- <widget class="QToolButton" name="toolButton_levelup_hangeul">
509+ <widget class="QToolButton" name="toolButton_german">
530510 <property name="sizePolicy">
531511 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
532512 <horstretch>0</horstretch>
@@ -539,7 +519,7 @@
539519 </font>
540520 </property>
541521 <property name="text">
542- <string>レベルアップハングル講座</string>
522+ <string>まいにちドイツ語【初級編】</string>
543523 </property>
544524 <property name="checkable">
545525 <bool>true</bool>
@@ -548,10 +528,10 @@
548528 </item>
549529 </layout>
550530 </item>
551- <item row="1" column="1">
552- <layout class="QHBoxLayout" name="horizontalLayout_9">
531+ <item row="1" column="3">
532+ <layout class="QHBoxLayout" name="horizontalLayout_61">
553533 <item>
554- <widget class="QToolButton" name="toolButton_levelup_chinese">
534+ <widget class="QToolButton" name="toolButton_german2">
555535 <property name="sizePolicy">
556536 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
557537 <horstretch>0</horstretch>
@@ -564,7 +544,7 @@
564544 </font>
565545 </property>
566546 <property name="text">
567- <string>レベルアップ中国語</string>
547+ <string>まいにちドイツ語【応用編】</string>
568548 </property>
569549 <property name="checkable">
570550 <bool>true</bool>
@@ -573,10 +553,10 @@
573553 </item>
574554 </layout>
575555 </item>
576- <item row="3" column="1">
577- <layout class="QHBoxLayout" name="horizontalLayout_4">
556+ <item row="2" column="2">
557+ <layout class="QHBoxLayout" name="horizontalLayout_7">
578558 <item>
579- <widget class="QToolButton" name="toolButton_italian">
559+ <widget class="QToolButton" name="toolButton_spanish">
580560 <property name="sizePolicy">
581561 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
582562 <horstretch>0</horstretch>
@@ -589,7 +569,7 @@
589569 </font>
590570 </property>
591571 <property name="text">
592- <string>まいにちイタリア語</string>
572+ <string>まいにちスペイン語【入門編】</string>
593573 </property>
594574 <property name="checkable">
595575 <bool>true</bool>
@@ -598,10 +578,10 @@
598578 </item>
599579 </layout>
600580 </item>
601- <item row="2" column="1">
602- <layout class="QHBoxLayout" name="horizontalLayout_3">
581+ <item row="2" column="3">
582+ <layout class="QHBoxLayout" name="horizontalLayout_71">
603583 <item>
604- <widget class="QToolButton" name="toolButton_french">
584+ <widget class="QToolButton" name="toolButton_spanish2">
605585 <property name="sizePolicy">
606586 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
607587 <horstretch>0</horstretch>
@@ -614,7 +594,7 @@
614594 </font>
615595 </property>
616596 <property name="text">
617- <string>まいにちフランス語</string>
597+ <string>まいにちスペイン語【中級編】</string>
618598 </property>
619599 <property name="checkable">
620600 <bool>true</bool>
@@ -623,10 +603,10 @@
623603 </item>
624604 </layout>
625605 </item>
626- <item row="4" column="1">
627- <layout class="QHBoxLayout" name="horizontalLayout_5">
606+ <item row="3" column="2">
607+ <layout class="QHBoxLayout" name="horizontalLayout_4">
628608 <item>
629- <widget class="QToolButton" name="toolButton_hangeul">
609+ <widget class="QToolButton" name="toolButton_italian">
630610 <property name="sizePolicy">
631611 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
632612 <horstretch>0</horstretch>
@@ -639,7 +619,7 @@
639619 </font>
640620 </property>
641621 <property name="text">
642- <string>まいにちハングル講座</string>
622+ <string>まいにちイタリア語【初級編】</string>
643623 </property>
644624 <property name="checkable">
645625 <bool>true</bool>
@@ -648,10 +628,10 @@
648628 </item>
649629 </layout>
650630 </item>
651- <item row="9" column="0">
652- <layout class="QHBoxLayout" name="horizontalLayout_29">
631+ <item row="3" column="3">
632+ <layout class="QHBoxLayout" name="horizontalLayout_41">
653633 <item>
654- <widget class="QToolButton" name="toolButton_enjoy">
634+ <widget class="QToolButton" name="toolButton_italian2">
655635 <property name="sizePolicy">
656636 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
657637 <horstretch>0</horstretch>
@@ -664,7 +644,7 @@
664644 </font>
665645 </property>
666646 <property name="text">
667- <string>エンジョイ・シンプル・イングリッシュ</string>
647+ <string>まいにちイタリア語【応用編】</string>
668648 </property>
669649 <property name="checkable">
670650 <bool>true</bool>
@@ -673,10 +653,10 @@
673653 </item>
674654 </layout>
675655 </item>
676- <item row="6" column="0">
677- <layout class="QHBoxLayout" name="horizontalLayout_20">
656+ <item row="4" column="2">
657+ <layout class="QHBoxLayout" name="horizontalLayout_13">
678658 <item>
679- <widget class="QToolButton" name="toolButton_business2">
659+ <widget class="QToolButton" name="toolButton_russian">
680660 <property name="sizePolicy">
681661 <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
682662 <horstretch>0</horstretch>
@@ -688,11 +668,431 @@
688668 <pointsize>11</pointsize>
689669 </font>
690670 </property>
691- <property name="text">
692- <string>実践ビジネス英語</string>
671+ <property name="text">
672+ <string>まいにちロシア語【入門編】</string>
673+ </property>
674+ <property name="checkable">
675+ <bool>true</bool>
676+ </property>
677+ </widget>
678+ </item>
679+ </layout>
680+ </item>
681+ <item row="4" column="3">
682+ <layout class="QHBoxLayout" name="horizontalLayout_131">
683+ <item>
684+ <widget class="QToolButton" name="toolButton_russian2">
685+ <property name="sizePolicy">
686+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
687+ <horstretch>0</horstretch>
688+ <verstretch>0</verstretch>
689+ </sizepolicy>
690+ </property>
691+ <property name="font">
692+ <font>
693+ <pointsize>11</pointsize>
694+ </font>
695+ </property>
696+ <property name="text">
697+ <string>まいにちロシア語【応用編】</string>
698+ </property>
699+ <property name="checkable">
700+ <bool>true</bool>
701+ </property>
702+ </widget>
703+ </item>
704+ </layout>
705+ </item>
706+ <item row="5" column="2">
707+ <layout class="QHBoxLayout" name="horizontalLayout_5">
708+ <item>
709+ <widget class="QToolButton" name="toolButton_hangeul">
710+ <property name="sizePolicy">
711+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
712+ <horstretch>0</horstretch>
713+ <verstretch>0</verstretch>
714+ </sizepolicy>
715+ </property>
716+ <property name="font">
717+ <font>
718+ <pointsize>11</pointsize>
719+ </font>
720+ </property>
721+ <property name="text">
722+ <string>まいにちハングル講座</string>
723+ </property>
724+ <property name="checkable">
725+ <bool>true</bool>
726+ </property>
727+ </widget>
728+ </item>
729+ </layout>
730+ </item>
731+ <item row="5" column="3">
732+ <layout class="QHBoxLayout" name="horizontalLayout_11">
733+ <item>
734+ <widget class="QToolButton" name="toolButton_levelup_hangeul">
735+ <property name="sizePolicy">
736+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
737+ <horstretch>0</horstretch>
738+ <verstretch>0</verstretch>
739+ </sizepolicy>
740+ </property>
741+ <property name="font">
742+ <font>
743+ <pointsize>11</pointsize>
744+ </font>
745+ </property>
746+ <property name="text">
747+ <string>レベルアップハングル講座</string>
748+ </property>
749+ <property name="checkable">
750+ <bool>true</bool>
751+ </property>
752+ </widget>
753+ </item>
754+ </layout>
755+ </item>
756+ <item row="6" column="2">
757+ <layout class="QHBoxLayout" name="horizontalLayout_2">
758+ <item>
759+ <widget class="QToolButton" name="toolButton_chinese">
760+ <property name="sizePolicy">
761+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
762+ <horstretch>0</horstretch>
763+ <verstretch>0</verstretch>
764+ </sizepolicy>
765+ </property>
766+ <property name="font">
767+ <font>
768+ <pointsize>11</pointsize>
769+ </font>
770+ </property>
771+ <property name="text">
772+ <string>まいにち中国語</string>
773+ </property>
774+ <property name="checkable">
775+ <bool>true</bool>
776+ </property>
777+ </widget>
778+ </item>
779+ </layout>
780+ </item>
781+ <item row="6" column="3">
782+ <layout class="QHBoxLayout" name="horizontalLayout_9">
783+ <item>
784+ <widget class="QToolButton" name="toolButton_levelup_chinese">
785+ <property name="sizePolicy">
786+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
787+ <horstretch>0</horstretch>
788+ <verstretch>0</verstretch>
789+ </sizepolicy>
790+ </property>
791+ <property name="font">
792+ <font>
793+ <pointsize>11</pointsize>
794+ </font>
795+ </property>
796+ <property name="text">
797+ <string>レベルアップ中国語</string>
798+ </property>
799+ <property name="checkable">
800+ <bool>true</bool>
801+ </property>
802+ </widget>
803+ </item>
804+ </layout>
805+ </item>
806+ <item row="7" column="2">
807+ <layout class="QHBoxLayout" name="horizontalLayout_9_0">
808+ <item>
809+ <widget class="QToolButton" name="toolButton_omotenashino_chinese">
810+ <property name="sizePolicy">
811+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
812+ <horstretch>0</horstretch>
813+ <verstretch>0</verstretch>
814+ </sizepolicy>
815+ </property>
816+ <property name="font">
817+ <font>
818+ <pointsize>11</pointsize>
819+ </font>
820+ </property>
821+ <property name="text">
822+ <string>おもてなしの中国語</string>
823+ </property>
824+ <property name="checkable">
825+ <bool>true</bool>
826+ </property>
827+ </widget>
828+ </item>
829+ </layout>
830+ </item>
831+ <item row="7" column="3">
832+ <layout class="QHBoxLayout" name="horizontalLayout_9_1">
833+ <item>
834+ <widget class="QToolButton" name="toolButton_omotenashino_hangeul">
835+ <property name="sizePolicy">
836+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
837+ <horstretch>0</horstretch>
838+ <verstretch>0</verstretch>
839+ </sizepolicy>
840+ </property>
841+ <property name="font">
842+ <font>
843+ <pointsize>11</pointsize>
844+ </font>
845+ </property>
846+ <property name="text">
847+ <string>おもてなしのハングル</string>
848+ </property>
849+ <property name="checkable">
850+ <bool>true</bool>
851+ </property>
852+ </widget>
853+ </item>
854+ </layout>
855+ </item>
856+ <item row="15" column="1">
857+ <layout class="QHBoxLayout" name="horizontalLayout_142">
858+ <item>
859+ <widget class="QToolButton" name="toolButton_vrradio1">
860+ <property name="sizePolicy">
861+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
862+ <horstretch>0</horstretch>
863+ <verstretch>0</verstretch>
864+ </sizepolicy>
865+ </property>
866+ <property name="font">
867+ <font>
868+ <pointsize>11</pointsize>
869+ </font>
870+ </property>
871+ <property name="text">
872+ <string>ボキャブライダー(過去)</string>
873+ </property>
874+ <property name="checkable">
875+ <bool>true</bool>
876+ </property>
877+ </widget>
878+ </item>
879+ </layout>
880+ </item>
881+ <item row="15" column="2">
882+ <layout class="QHBoxLayout" name="horizontalLayout_144">
883+ <item>
884+ <widget class="QToolButton" name="toolButton_vrradio2">
885+ <property name="sizePolicy">
886+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
887+ <horstretch>0</horstretch>
888+ <verstretch>0</verstretch>
889+ </sizepolicy>
890+ </property>
891+ <property name="font">
892+ <font>
893+ <pointsize>11</pointsize>
894+ </font>
895+ </property>
896+ <property name="text">
897+ <string>ボキャブライダー(今年度)</string>
898+ </property>
899+ <property name="checkable">
900+ <bool>true</bool>
901+ </property>
902+ </widget>
903+ </item>
904+ </layout>
905+ </item>
906+ <item row="14" column="0">
907+ <widget class="Line" name="line_2">
908+ <property name="lineWidth">
909+ <number>2</number>
910+ </property>
911+ <property name="orientation">
912+ <enum>Qt::Horizontal</enum>
913+ </property>
914+ </widget>
915+ </item>
916+ <item row="15" column="0">
917+ <layout class="QHBoxLayout" name="horizontalLayout_22">
918+ <item>
919+ <widget class="QToolButton" name="toolButton_skip">
920+ <property name="sizePolicy">
921+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
922+ <horstretch>0</horstretch>
923+ <verstretch>0</verstretch>
924+ </sizepolicy>
925+ </property>
926+ <property name="font">
927+ <font>
928+ <pointsize>11</pointsize>
929+ </font>
930+ </property>
931+ <property name="text">
932+ <string>既存のファイルはスキップ</string>
933+ </property>
934+ <property name="checkable">
935+ <bool>true</bool>
936+ </property>
937+ <property name="checked">
938+ <bool>false</bool>
939+ </property>
940+ </widget>
941+ </item>
942+ </layout>
943+ </item>
944+ <item row="16" column="3">
945+ <layout class="QHBoxLayout" name="horizontalLayout_25">
946+ <item>
947+ <widget class="QPushButton" name="downloadButton">
948+ <property name="sizePolicy">
949+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
950+ <horstretch>0</horstretch>
951+ <verstretch>0</verstretch>
952+ </sizepolicy>
953+ </property>
954+ <property name="font">
955+ <font>
956+ <pointsize>11</pointsize>
957+ </font>
958+ </property>
959+ <property name="text">
960+ <string>ダウンロード</string>
961+ </property>
962+ </widget>
963+ </item>
964+ </layout>
965+ </item>
966+ <item row="15" column="3">
967+ <layout class="QHBoxLayout" name="horizontalLayout_26">
968+ <item>
969+ <widget class="QLabel" name="label_ext">
970+ <property name="sizePolicy">
971+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
972+ <horstretch>0</horstretch>
973+ <verstretch>0</verstretch>
974+ </sizepolicy>
975+ </property>
976+ <property name="font">
977+ <font>
978+ <pointsize>11</pointsize>
979+ </font>
980+ </property>
981+ <property name="layoutDirection">
982+ <enum>Qt::LeftToRight</enum>
983+ </property>
984+ <property name="text">
985+ <string>     拡張子:</string>
986+ </property>
987+ <property name="alignment">
988+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
989+ </property>
990+ </widget>
991+ </item>
992+ <item>
993+ <widget class="QComboBox" name="comboBox_extension">
994+ <property name="sizePolicy">
995+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
996+ <horstretch>0</horstretch>
997+ <verstretch>0</verstretch>
998+ </sizepolicy>
999+ </property>
1000+ <property name="font">
1001+ <font>
1002+ <pointsize>11</pointsize>
1003+ </font>
1004+ </property>
1005+ <item>
1006+ <property name="text">
1007+ <string>3g2</string>
1008+ </property>
1009+ </item>
1010+ <item>
1011+ <property name="text">
1012+ <string>3gp</string>
1013+ </property>
1014+ </item>
1015+ <item>
1016+ <property name="text">
1017+ <string>aac</string>
1018+ </property>
1019+ </item>
1020+ <item>
1021+ <property name="text">
1022+ <string>avi</string>
1023+ </property>
1024+ </item>
1025+ <item>
1026+ <property name="text">
1027+ <string>m4a</string>
1028+ </property>
1029+ </item>
1030+ <item>
1031+ <property name="text">
1032+ <string>mka</string>
1033+ </property>
1034+ </item>
1035+ <item>
1036+ <property name="text">
1037+ <string>mkv</string>
1038+ </property>
1039+ </item>
1040+ <item>
1041+ <property name="text">
1042+ <string>mov</string>
1043+ </property>
1044+ </item>
1045+ <item>
1046+ <property name="text">
1047+ <string>mp3</string>
1048+ </property>
1049+ </item>
1050+ <item>
1051+ <property name="text">
1052+ <string>ts</string>
1053+ </property>
1054+ </item>
1055+ </widget>
1056+ </item>
1057+ </layout>
1058+ </item>
1059+ <item row="14" column="1">
1060+ <layout class="QHBoxLayout" name="horizontalLayout_10">
1061+ <item>
1062+ <widget class="Line" name="line">
1063+ <property name="lineWidth">
1064+ <number>2</number>
1065+ </property>
1066+ <property name="orientation">
1067+ <enum>Qt::Horizontal</enum>
1068+ </property>
1069+ </widget>
1070+ </item>
1071+ </layout>
1072+ </item>
1073+ <item row="14" column="2">
1074+ <layout class="QHBoxLayout" name="horizontalLayout_10_1">
1075+ <item>
1076+ <widget class="Line" name="line_1">
1077+ <property name="lineWidth">
1078+ <number>2</number>
1079+ </property>
1080+ <property name="orientation">
1081+ <enum>Qt::Horizontal</enum>
6931082 </property>
694- <property name="checkable">
695- <bool>true</bool>
1083+ </widget>
1084+ </item>
1085+ </layout>
1086+ </item>
1087+ <item row="14" column="3">
1088+ <layout class="QHBoxLayout" name="horizontalLayout_10_2">
1089+ <item>
1090+ <widget class="Line" name="line_1_1">
1091+ <property name="lineWidth">
1092+ <number>2</number>
1093+ </property>
1094+ <property name="orientation">
1095+ <enum>Qt::Horizontal</enum>
6961096 </property>
6971097 </widget>
6981098 </item>
@@ -867,7 +1267,7 @@
8671267 </item>
8681268 </layout>
8691269 </widget>
870- <widget class="QWidget" name="layoutWidget">
1270+ <widget class="QWidget" name="layoutWidget1">
8711271 <property name="geometry">
8721272 <rect>
8731273 <x>10</x>
@@ -889,7 +1289,7 @@
8891289 </item>
8901290 </layout>
8911291 </widget>
892- <widget class="QWidget" name="layoutWidget">
1292+ <widget class="QWidget" name="layoutWidget2">
8931293 <property name="geometry">
8941294 <rect>
8951295 <x>300</x>
@@ -958,7 +1358,7 @@
9581358 <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
9591359 </property>
9601360 </widget>
961- <widget class="QWidget" name="layoutWidget">
1361+ <widget class="QWidget" name="layoutWidget3">
9621362 <property name="geometry">
9631363 <rect>
9641364 <x>300</x>
@@ -983,7 +1383,7 @@
9831383 </item>
9841384 </layout>
9851385 </widget>
986- <widget class="QWidget" name="layoutWidget">
1386+ <widget class="QWidget" name="layoutWidget4">
9871387 <property name="geometry">
9881388 <rect>
9891389 <x>20</x>
@@ -1060,26 +1460,41 @@
10601460 </widget>
10611461 <layoutdefault spacing="6" margin="11"/>
10621462 <tabstops>
1463+ <tabstop>toolButton_basic0</tabstop>
10631464 <tabstop>toolButton_basic1</tabstop>
10641465 <tabstop>toolButton_basic2</tabstop>
10651466 <tabstop>toolButton_basic3</tabstop>
10661467 <tabstop>toolButton_timetrial</tabstop>
1468+ <tabstop>toolButton_gendai</tabstop>
10671469 <tabstop>toolButton_kaiwa</tabstop>
1470+ <tabstop>toolButton_gakusyu</tabstop>
10681471 <tabstop>toolButton_business1</tabstop>
10691472 <tabstop>toolButton_business2</tabstop>
1070- <tabstop>toolButton_kouryaku</tabstop>
1071- <tabstop>toolButton_yomu</tabstop>
10721473 <tabstop>toolButton_enjoy</tabstop>
1073- <tabstop>toolButton_chinese</tabstop>
1074- <tabstop>toolButton_levelup_chinese</tabstop>
1474+ <tabstop>toolButton_vrradio</tabstop>
1475+ <tabstop>toolButton_optional1</tabstop>
1476+ <tabstop>toolButton_optional2</tabstop>
1477+ <tabstop>toolButton_optional3</tabstop>
1478+ <tabstop>toolButton_optional4</tabstop>
10751479 <tabstop>toolButton_french</tabstop>
1076- <tabstop>toolButton_italian</tabstop>
1077- <tabstop>toolButton_hangeul</tabstop>
1078- <tabstop>toolButton_levelup_hangeul</tabstop>
1480+ <tabstop>toolButton_french2</tabstop>
10791481 <tabstop>toolButton_german</tabstop>
1482+ <tabstop>toolButton_german2</tabstop>
10801483 <tabstop>toolButton_spanish</tabstop>
1484+ <tabstop>toolButton_spanish2</tabstop>
1485+ <tabstop>toolButton_italian</tabstop>
1486+ <tabstop>toolButton_italian2</tabstop>
10811487 <tabstop>toolButton_russian</tabstop>
1488+ <tabstop>toolButton_russian2</tabstop>
1489+ <tabstop>toolButton_hangeul</tabstop>
1490+ <tabstop>toolButton_levelup_hangeul</tabstop>
1491+ <tabstop>toolButton_chinese</tabstop>
1492+ <tabstop>toolButton_levelup_chinese</tabstop>
1493+ <tabstop>toolButton_omotenashino_chinese</tabstop>
1494+ <tabstop>toolButton_omotenashino_hangeul</tabstop>
10821495 <tabstop>toolButton_skip</tabstop>
1496+ <tabstop>toolButton_vrradio1</tabstop>
1497+ <tabstop>toolButton_vrradio2</tabstop>
10831498 <tabstop>comboBox_extension</tabstop>
10841499 <tabstop>downloadButton</tabstop>
10851500 <tabstop>past_days</tabstop>
@@ -1114,6 +1529,22 @@
11141529 </hints>
11151530 </connection>
11161531 <connection>
1532+ <sender>toolButton_basic0</sender>
1533+ <signal>toggled(bool)</signal>
1534+ <receiver>MainWindowClass</receiver>
1535+ <slot>toggled(bool)</slot>
1536+ <hints>
1537+ <hint type="sourcelabel">
1538+ <x>20</x>
1539+ <y>47</y>
1540+ </hint>
1541+ <hint type="destinationlabel">
1542+ <x>92</x>
1543+ <y>503</y>
1544+ </hint>
1545+ </hints>
1546+ </connection>
1547+ <connection>
11171548 <sender>toolButton_basic1</sender>
11181549 <signal>toggled(bool)</signal>
11191550 <receiver>MainWindowClass</receiver>
@@ -1226,7 +1657,7 @@
12261657 </hints>
12271658 </connection>
12281659 <connection>
1229- <sender>toolButton_kouryaku</sender>
1660+ <sender>toolButton_gendai</sender>
12301661 <signal>toggled(bool)</signal>
12311662 <receiver>MainWindowClass</receiver>
12321663 <slot>toggled(bool)</slot>
@@ -1242,7 +1673,7 @@
12421673 </hints>
12431674 </connection>
12441675 <connection>
1245- <sender>toolButton_yomu</sender>
1676+ <sender>toolButton_gakusyu</sender>
12461677 <signal>toggled(bool)</signal>
12471678 <receiver>MainWindowClass</receiver>
12481679 <slot>toggled(bool)</slot>
@@ -1274,6 +1705,54 @@
12741705 </hints>
12751706 </connection>
12761707 <connection>
1708+ <sender>toolButton_vrradio</sender>
1709+ <signal>toggled(bool)</signal>
1710+ <receiver>MainWindowClass</receiver>
1711+ <slot>toggled(bool)</slot>
1712+ <hints>
1713+ <hint type="sourcelabel">
1714+ <x>232</x>
1715+ <y>378</y>
1716+ </hint>
1717+ <hint type="destinationlabel">
1718+ <x>211</x>
1719+ <y>602</y>
1720+ </hint>
1721+ </hints>
1722+ </connection>
1723+ <connection>
1724+ <sender>toolButton_vrradio1</sender>
1725+ <signal>toggled(bool)</signal>
1726+ <receiver>MainWindowClass</receiver>
1727+ <slot>toggled(bool)</slot>
1728+ <hints>
1729+ <hint type="sourcelabel">
1730+ <x>232</x>
1731+ <y>378</y>
1732+ </hint>
1733+ <hint type="destinationlabel">
1734+ <x>211</x>
1735+ <y>602</y>
1736+ </hint>
1737+ </hints>
1738+ </connection>
1739+ <connection>
1740+ <sender>toolButton_vrradio2</sender>
1741+ <signal>toggled(bool)</signal>
1742+ <receiver>MainWindowClass</receiver>
1743+ <slot>toggled(bool)</slot>
1744+ <hints>
1745+ <hint type="sourcelabel">
1746+ <x>232</x>
1747+ <y>378</y>
1748+ </hint>
1749+ <hint type="destinationlabel">
1750+ <x>211</x>
1751+ <y>602</y>
1752+ </hint>
1753+ </hints>
1754+ </connection>
1755+ <connection>
12771756 <sender>toolButton_skip</sender>
12781757 <signal>toggled(bool)</signal>
12791758 <receiver>MainWindowClass</receiver>
@@ -1338,6 +1817,38 @@
13381817 </hints>
13391818 </connection>
13401819 <connection>
1820+ <sender>toolButton_omotenashino_hangeul</sender>
1821+ <signal>toggled(bool)</signal>
1822+ <receiver>MainWindowClass</receiver>
1823+ <slot>toggled(bool)</slot>
1824+ <hints>
1825+ <hint type="sourcelabel">
1826+ <x>282</x>
1827+ <y>77</y>
1828+ </hint>
1829+ <hint type="destinationlabel">
1830+ <x>324</x>
1831+ <y>533</y>
1832+ </hint>
1833+ </hints>
1834+ </connection>
1835+ <connection>
1836+ <sender>toolButton_omotenashino_chinese</sender>
1837+ <signal>toggled(bool)</signal>
1838+ <receiver>MainWindowClass</receiver>
1839+ <slot>toggled(bool)</slot>
1840+ <hints>
1841+ <hint type="sourcelabel">
1842+ <x>282</x>
1843+ <y>77</y>
1844+ </hint>
1845+ <hint type="destinationlabel">
1846+ <x>324</x>
1847+ <y>533</y>
1848+ </hint>
1849+ </hints>
1850+ </connection>
1851+ <connection>
13411852 <sender>toolButton_french</sender>
13421853 <signal>toggled(bool)</signal>
13431854 <receiver>MainWindowClass</receiver>
@@ -1354,6 +1865,22 @@
13541865 </hints>
13551866 </connection>
13561867 <connection>
1868+ <sender>toolButton_french2</sender>
1869+ <signal>toggled(bool)</signal>
1870+ <receiver>MainWindowClass</receiver>
1871+ <slot>toggled(bool)</slot>
1872+ <hints>
1873+ <hint type="sourcelabel">
1874+ <x>294</x>
1875+ <y>122</y>
1876+ </hint>
1877+ <hint type="destinationlabel">
1878+ <x>350</x>
1879+ <y>551</y>
1880+ </hint>
1881+ </hints>
1882+ </connection>
1883+ <connection>
13571884 <sender>toolButton_italian</sender>
13581885 <signal>toggled(bool)</signal>
13591886 <receiver>MainWindowClass</receiver>
@@ -1370,6 +1897,22 @@
13701897 </hints>
13711898 </connection>
13721899 <connection>
1900+ <sender>toolButton_italian2</sender>
1901+ <signal>toggled(bool)</signal>
1902+ <receiver>MainWindowClass</receiver>
1903+ <slot>toggled(bool)</slot>
1904+ <hints>
1905+ <hint type="sourcelabel">
1906+ <x>305</x>
1907+ <y>158</y>
1908+ </hint>
1909+ <hint type="destinationlabel">
1910+ <x>371</x>
1911+ <y>569</y>
1912+ </hint>
1913+ </hints>
1914+ </connection>
1915+ <connection>
13731916 <sender>toolButton_hangeul</sender>
13741917 <signal>toggled(bool)</signal>
13751918 <receiver>MainWindowClass</receiver>
@@ -1418,6 +1961,22 @@
14181961 </hints>
14191962 </connection>
14201963 <connection>
1964+ <sender>toolButton_german2</sender>
1965+ <signal>toggled(bool)</signal>
1966+ <receiver>MainWindowClass</receiver>
1967+ <slot>toggled(bool)</slot>
1968+ <hints>
1969+ <hint type="sourcelabel">
1970+ <x>340</x>
1971+ <y>271</y>
1972+ </hint>
1973+ <hint type="destinationlabel">
1974+ <x>359</x>
1975+ <y>612</y>
1976+ </hint>
1977+ </hints>
1978+ </connection>
1979+ <connection>
14211980 <sender>toolButton_spanish</sender>
14221981 <signal>toggled(bool)</signal>
14231982 <receiver>MainWindowClass</receiver>
@@ -1434,6 +1993,22 @@
14341993 </hints>
14351994 </connection>
14361995 <connection>
1996+ <sender>toolButton_spanish2</sender>
1997+ <signal>toggled(bool)</signal>
1998+ <receiver>MainWindowClass</receiver>
1999+ <slot>toggled(bool)</slot>
2000+ <hints>
2001+ <hint type="sourcelabel">
2002+ <x>357</x>
2003+ <y>305</y>
2004+ </hint>
2005+ <hint type="destinationlabel">
2006+ <x>435</x>
2007+ <y>507</y>
2008+ </hint>
2009+ </hints>
2010+ </connection>
2011+ <connection>
14372012 <sender>toolButton_russian</sender>
14382013 <signal>toggled(bool)</signal>
14392014 <receiver>MainWindowClass</receiver>
@@ -1449,6 +2024,86 @@
14492024 </hint>
14502025 </hints>
14512026 </connection>
2027+ <connection>
2028+ <sender>toolButton_optional1</sender>
2029+ <signal>toggled(bool)</signal>
2030+ <receiver>MainWindowClass</receiver>
2031+ <slot>toggled(bool)</slot>
2032+ <hints>
2033+ <hint type="sourcelabel">
2034+ <x>314</x>
2035+ <y>194</y>
2036+ </hint>
2037+ <hint type="destinationlabel">
2038+ <x>387</x>
2039+ <y>587</y>
2040+ </hint>
2041+ </hints>
2042+ </connection>
2043+ <connection>
2044+ <sender>toolButton_optional2</sender>
2045+ <signal>toggled(bool)</signal>
2046+ <receiver>MainWindowClass</receiver>
2047+ <slot>toggled(bool)</slot>
2048+ <hints>
2049+ <hint type="sourcelabel">
2050+ <x>314</x>
2051+ <y>194</y>
2052+ </hint>
2053+ <hint type="destinationlabel">
2054+ <x>387</x>
2055+ <y>587</y>
2056+ </hint>
2057+ </hints>
2058+ </connection>
2059+ <connection>
2060+ <sender>toolButton_optional3</sender>
2061+ <signal>toggled(bool)</signal>
2062+ <receiver>MainWindowClass</receiver>
2063+ <slot>toggled(bool)</slot>
2064+ <hints>
2065+ <hint type="sourcelabel">
2066+ <x>314</x>
2067+ <y>194</y>
2068+ </hint>
2069+ <hint type="destinationlabel">
2070+ <x>387</x>
2071+ <y>587</y>
2072+ </hint>
2073+ </hints>
2074+ </connection>
2075+ <connection>
2076+ <sender>toolButton_optional4</sender>
2077+ <signal>toggled(bool)</signal>
2078+ <receiver>MainWindowClass</receiver>
2079+ <slot>toggled(bool)</slot>
2080+ <hints>
2081+ <hint type="sourcelabel">
2082+ <x>314</x>
2083+ <y>194</y>
2084+ </hint>
2085+ <hint type="destinationlabel">
2086+ <x>387</x>
2087+ <y>587</y>
2088+ </hint>
2089+ </hints>
2090+ </connection>
2091+ <connection>
2092+ <sender>toolButton_russian2</sender>
2093+ <signal>toggled(bool)</signal>
2094+ <receiver>MainWindowClass</receiver>
2095+ <slot>toggled(bool)</slot>
2096+ <hints>
2097+ <hint type="sourcelabel">
2098+ <x>395</x>
2099+ <y>339</y>
2100+ </hint>
2101+ <hint type="destinationlabel">
2102+ <x>460</x>
2103+ <y>520</y>
2104+ </hint>
2105+ </hints>
2106+ </connection>
14522107 </connections>
14532108 <slots>
14542109 <slot>download()</slot>
--- a/scrambledialog.cpp
+++ b/scrambledialog.cpp
@@ -21,10 +21,45 @@
2121 #include "scrambledialog.h"
2222 #include "ui_scrambledialog.h"
2323
24-ScrambleDialog::ScrambleDialog( QString scramble, QWidget *parent )
24+#define OPTIONAL1 "english/basic1"
25+#define OPTIONAL2 "english/basic2"
26+#define OPTIONAL3 "english/basic3"
27+#define OPTIONAL4 "english/enjoy"
28+#define OPT_TITLE1 "任意講座1"
29+#define OPT_TITLE2 "任意講座2"
30+#define OPT_TITLE3 "任意講座3"
31+#define OPT_TITLE4 "任意講座4"
32+
33+QString ScrambleDialog::optional1;
34+QString ScrambleDialog::optional2;
35+QString ScrambleDialog::optional3;
36+QString ScrambleDialog::optional4;
37+QString ScrambleDialog::opt_title1;
38+QString ScrambleDialog::opt_title2;
39+QString ScrambleDialog::opt_title3;
40+QString ScrambleDialog::opt_title4;
41+
42+//QString optional1 = MainWindow::optional1;
43+//QString optional2 = MainWindow::optional2;
44+//QString optional3 = MainWindow::optional3;
45+//QString optional4 = MainWindow::optional4;
46+//QString opt_title1 = MainWindow::opt_title1;
47+//QString opt_title2 = MainWindow::opt_title2;
48+//QString opt_title3 = MainWindow::opt_title3;
49+//QString opt_title4 = MainWindow::opt_title4;
50+
51+
52+ScrambleDialog::ScrambleDialog( QString opt_title1, QString opt_title2, QString opt_title3, QString opt_title4, QString optional1, QString optional2 , QString optional3, QString optional4, QWidget *parent )
2553 : QDialog(parent), ui(new Ui::ScrambleDialog) {
2654 ui->setupUi(this);
27- ui->scramble->setText( scramble );
55+ ui->opt_title1->setText( opt_title1 ),
56+ ui->opt_title2->setText( opt_title2 ),
57+ ui->opt_title3->setText( opt_title3 ),
58+ ui->opt_title4->setText( opt_title4 ),
59+ ui->optional1->setText( optional1 ),
60+ ui->optional2->setText( optional2 ),
61+ ui->optional3->setText( optional3 ),
62+ ui->optional4->setText( optional4 );
2863 }
2964
3065 ScrambleDialog::~ScrambleDialog() {
@@ -32,5 +67,34 @@ ScrambleDialog::~ScrambleDialog() {
3267 }
3368
3469 QString ScrambleDialog::scramble() {
35- return ui->scramble->text();
70+ return ui->opt_title1->text();
71+}
72+
73+QString ScrambleDialog::scramble2() {
74+ return ui->opt_title2->text();
75+}
76+
77+QString ScrambleDialog::scramble3() {
78+ return ui->opt_title3->text();
79+}
80+
81+QString ScrambleDialog::scramble4() {
82+ return ui->opt_title4->text();
3683 }
84+
85+QString ScrambleDialog::scramble5() {
86+ return ui->optional1->text();
87+}
88+
89+QString ScrambleDialog::scramble6() {
90+ return ui->optional2->text();
91+}
92+
93+QString ScrambleDialog::scramble7() {
94+ return ui->optional3->text();
95+}
96+
97+QString ScrambleDialog::scramble8() {
98+ return ui->optional4->text();
99+}
100+
--- a/scrambledialog.h
+++ b/scrambledialog.h
@@ -31,9 +31,26 @@ class ScrambleDialog : public QDialog {
3131 Q_OBJECT
3232
3333 public:
34- explicit ScrambleDialog( QString scramble, QWidget *parent = 0 );
34+ explicit ScrambleDialog( QString opt_title1, QString opt_title2, QString opt_title3, QString opt_title4, QString optional1, QString optional2 , QString optional3, QString optional4, QWidget *parent = 0 );
3535 ~ScrambleDialog();
3636 QString scramble();
37+ QString scramble2();
38+ QString scramble3();
39+ QString scramble4();
40+ QString scramble5();
41+ QString scramble6();
42+ QString scramble7();
43+ QString scramble8();
44+
45+ static QString optional1;
46+ static QString optional2;
47+ static QString optional3;
48+ static QString optional4;
49+ static QString opt_title1;
50+ static QString opt_title2;
51+ static QString opt_title3;
52+ static QString opt_title4;
53+
3754
3855 private:
3956 Ui::ScrambleDialog *ui;
--- a/scrambledialog.ui
+++ b/scrambledialog.ui
@@ -7,17 +7,17 @@
77 <x>0</x>
88 <y>0</y>
99 <width>320</width>
10- <height>129</height>
10+ <height>329</height>
1111 </rect>
1212 </property>
1313 <property name="windowTitle">
14- <string>Dialog</string>
14+ <string>任意講座ボタン名称/URL設定</string>
1515 </property>
1616 <widget class="QDialogButtonBox" name="buttonBox">
1717 <property name="geometry">
1818 <rect>
1919 <x>10</x>
20- <y>90</y>
20+ <y>290</y>
2121 <width>301</width>
2222 <height>32</height>
2323 </rect>
@@ -29,7 +29,7 @@
2929 <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
3030 </property>
3131 </widget>
32- <widget class="QLineEdit" name="scramble">
32+ <widget class="QLineEdit" name="opt_title1">
3333 <property name="geometry">
3434 <rect>
3535 <x>30</x>
@@ -39,6 +39,36 @@
3939 </rect>
4040 </property>
4141 </widget>
42+ <widget class="QLineEdit" name="opt_title2">
43+ <property name="geometry">
44+ <rect>
45+ <x>30</x>
46+ <y>70</y>
47+ <width>231</width>
48+ <height>22</height>
49+ </rect>
50+ </property>
51+ </widget>
52+ <widget class="QLineEdit" name="opt_title3">
53+ <property name="geometry">
54+ <rect>
55+ <x>30</x>
56+ <y>90</y>
57+ <width>231</width>
58+ <height>22</height>
59+ </rect>
60+ </property>
61+ </widget>
62+ <widget class="QLineEdit" name="opt_title4">
63+ <property name="geometry">
64+ <rect>
65+ <x>30</x>
66+ <y>110</y>
67+ <width>231</width>
68+ <height>22</height>
69+ </rect>
70+ </property>
71+ </widget>
4272 <widget class="QLabel" name="label">
4373 <property name="geometry">
4474 <rect>
@@ -49,7 +79,60 @@
4979 </rect>
5080 </property>
5181 <property name="text">
52- <string>スクランブル文字列を入力してください。</string>
82+ <string>任意講座ボタン名称</string>
83+ </property>
84+ </widget>
85+ <widget class="QLineEdit" name="optional1">
86+ <property name="geometry">
87+ <rect>
88+ <x>30</x>
89+ <y>180</y>
90+ <width>231</width>
91+ <height>22</height>
92+ </rect>
93+ </property>
94+ </widget>
95+ <widget class="QLineEdit" name="optional2">
96+ <property name="geometry">
97+ <rect>
98+ <x>30</x>
99+ <y>200</y>
100+ <width>231</width>
101+ <height>22</height>
102+ </rect>
103+ </property>
104+ </widget>
105+ <widget class="QLineEdit" name="optional3">
106+ <property name="geometry">
107+ <rect>
108+ <x>30</x>
109+ <y>220</y>
110+ <width>231</width>
111+ <height>22</height>
112+ </rect>
113+ </property>
114+ </widget>
115+ <widget class="QLineEdit" name="optional4">
116+ <property name="geometry">
117+ <rect>
118+ <x>30</x>
119+ <y>240</y>
120+ <width>231</width>
121+ <height>22</height>
122+ </rect>
123+ </property>
124+ </widget>
125+ <widget class="QLabel" name="label">
126+ <property name="geometry">
127+ <rect>
128+ <x>20</x>
129+ <y>150</y>
130+ <width>246</width>
131+ <height>16</height>
132+ </rect>
133+ </property>
134+ <property name="text">
135+ <string>任意講座URL</string>
53136 </property>
54137 </widget>
55138 </widget>