Skip to content

Commit 42b4a11

Browse files
Merge pull request #737 from g-maxime/coherency
GUI: Add parsespeed option to settings page
2 parents 1108c9d + c581814 commit 42b4a11

24 files changed

Lines changed: 434 additions & 54 deletions

Source/GUI/Qt/DatabaseUi.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,4 +208,15 @@ void DatabaseUi::get_sql_query_for_update_ui_table_v12(std::string& q)
208208
q = create.str();
209209
}
210210

211+
//---------------------------------------------------------------------------
212+
void DatabaseUi::get_sql_query_for_update_ui_settings_table_v13(std::string& q)
213+
{
214+
std::stringstream create;
215+
create << "ALTER TABLE UI_SETTINGS"; // Table name
216+
create << " ADD DEFAULT_PARSESPEED TEXT NOT NULL DEFAULT 'last';";
217+
create << "ALTER TABLE UI_SETTINGS"; // Table name
218+
create << " ADD LAST_PARSESPEED TEXT DEFAULT NULL;";
219+
q = create.str();
220+
}
221+
211222
}

Source/GUI/Qt/DatabaseUi.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ class DatabaseUi : public Database
7070
virtual int ui_settings_save_last_verbosity(int, int user_id = -1) = 0;
7171
virtual int ui_settings_get_last_verbosity(int&, int user_id = -1) = 0;
7272

73+
virtual int ui_settings_save_default_parsespeed(const std::string&, int user_id = -1) = 0;
74+
virtual int ui_settings_get_default_parsespeed(std::string&, int user_id = -1) = 0;
75+
virtual int ui_settings_save_last_parsespeed(const std::string&, int user_id = -1) = 0;
76+
virtual int ui_settings_get_last_parsespeed(std::string&, int user_id = -1) = 0;
77+
7378
virtual int ui_settings_save_default_load_files_path(const std::string&, int user_id = -1) = 0;
7479
virtual int ui_settings_get_default_load_files_path(std::string&, int user_id = -1) = 0;
7580
virtual int ui_settings_save_last_load_files_path(const std::string&, int user_id = -1) = 0;
@@ -120,6 +125,7 @@ class DatabaseUi : public Database
120125
void get_sql_query_for_update_ui_table_v10(std::string& q);
121126
void get_sql_query_for_update_ui_table_v11(std::string& q);
122127
void get_sql_query_for_update_ui_table_v12(std::string& q);
128+
void get_sql_query_for_update_ui_settings_table_v13(std::string& q);
123129

124130
private:
125131
DatabaseUi (const DatabaseUi&);

Source/GUI/Qt/NoDatabaseUi.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,18 @@ int NoDatabaseUi::ui_settings_get_default_verbosity(int&, int)
150150
return 0;
151151
}
152152

153+
//---------------------------------------------------------------------------
154+
int NoDatabaseUi::ui_settings_save_default_parsespeed(const std::string&, int)
155+
{
156+
return 0;
157+
}
158+
159+
//---------------------------------------------------------------------------
160+
int NoDatabaseUi::ui_settings_get_default_parsespeed(std::string&, int)
161+
{
162+
return 0;
163+
}
164+
153165
//---------------------------------------------------------------------------
154166
int NoDatabaseUi::ui_settings_save_last_policy(const std::string&, int)
155167
{
@@ -186,6 +198,18 @@ int NoDatabaseUi::ui_settings_get_last_verbosity(int&, int)
186198
return 0;
187199
}
188200

201+
//---------------------------------------------------------------------------
202+
int NoDatabaseUi::ui_settings_save_last_parsespeed(const std::string&, int)
203+
{
204+
return 0;
205+
}
206+
207+
//---------------------------------------------------------------------------
208+
int NoDatabaseUi::ui_settings_get_last_parsespeed(std::string&, int)
209+
{
210+
return 0;
211+
}
212+
189213
//---------------------------------------------------------------------------
190214
int NoDatabaseUi::ui_settings_save_default_load_files_path(const std::string&, int)
191215
{

Source/GUI/Qt/NoDatabaseUi.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ class NoDatabaseUi : public DatabaseUi
5353
virtual int ui_settings_save_last_verbosity(int, int user_id = -1);
5454
virtual int ui_settings_get_last_verbosity(int&, int user_id = -1);
5555

56+
virtual int ui_settings_save_default_parsespeed(const std::string&, int user_id = -1);
57+
virtual int ui_settings_get_default_parsespeed(std::string&, int user_id = -1);
58+
virtual int ui_settings_save_last_parsespeed(const std::string&, int user_id = -1);
59+
virtual int ui_settings_get_last_parsespeed(std::string&, int user_id = -1);
60+
5661
virtual int ui_settings_save_default_load_files_path(const std::string&, int user_id = -1);
5762
virtual int ui_settings_get_default_load_files_path(std::string&, int user_id = -1);
5863
virtual int ui_settings_save_last_load_files_path(const std::string&, int user_id = -1);

Source/GUI/Qt/SQLLiteUi.cpp

Lines changed: 119 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ namespace MediaConch {
2828
// SQLLiteUi
2929
//***************************************************************************
3030

31-
int SQLLiteUi::ui_current_version = 13;
31+
int SQLLiteUi::ui_current_version = 14;
3232

3333
//***************************************************************************
3434
// Constructor/Destructor
@@ -113,6 +113,7 @@ int SQLLiteUi::ui_update_table()
113113
UPDATE_UI_TABLE_FOR_VERSION(10);
114114
UPDATE_UI_TABLE_FOR_VERSION(11);
115115
UPDATE_UI_TABLE_FOR_VERSION(12);
116+
// UPDATE_UI_TABLE_FOR_VERSION(13); nothing to do
116117

117118
#undef UPDATE_UI_TABLE_FOR_VERSION
118119

@@ -848,6 +849,7 @@ int SQLLiteUi::ui_settings_update_table()
848849
// UPDATE_UI_SETTINGS_TABLE_FOR_VERSION(10); nothing to do
849850
// UPDATE_UI_SETTINGS_TABLE_FOR_VERSION(11); nothing to do
850851
// UPDATE_UI_SETTINGS_TABLE_FOR_VERSION(12); nothing to do
852+
UPDATE_UI_SETTINGS_TABLE_FOR_VERSION(13);
851853

852854
#undef UPDATE_UI_SETTINGS_TABLE_FOR_VERSION
853855

@@ -1086,6 +1088,64 @@ int SQLLiteUi::ui_settings_get_default_verbosity(int& verbosity, int user_id)
10861088
return 0;
10871089
}
10881090

1091+
//---------------------------------------------------------------------------
1092+
int SQLLiteUi::ui_settings_save_default_parsespeed(const std::string& parsespeed, int user_id)
1093+
{
1094+
if (ui_settings_check_user_id(user_id))
1095+
return -1;
1096+
1097+
std::stringstream create;
1098+
1099+
reports.clear();
1100+
create << "UPDATE UI_SETTINGS ";
1101+
create << "SET DEFAULT_PARSESPEED = ? ";
1102+
create << "WHERE USER_ID = ?;";
1103+
1104+
query = create.str();
1105+
1106+
const char* end = NULL;
1107+
int ret = sqlite3_prepare_v2(db, query.c_str(), query.length() + 1, &stmt, &end);
1108+
if (ret != SQLITE_OK || !stmt || (end && *end))
1109+
return -1;
1110+
1111+
ret = sqlite3_bind_blob(stmt, 1, parsespeed.c_str(), parsespeed.length(), SQLITE_STATIC);
1112+
if (ret != SQLITE_OK)
1113+
return -1;
1114+
1115+
ret = sqlite3_bind_int(stmt, 2, user_id);
1116+
if (ret != SQLITE_OK)
1117+
return -1;
1118+
1119+
return execute();
1120+
return 0;
1121+
}
1122+
1123+
//---------------------------------------------------------------------------
1124+
int SQLLiteUi::ui_settings_get_default_parsespeed(std::string& parsespeed, int user_id)
1125+
{
1126+
if (ui_settings_check_user_id(user_id))
1127+
return -1;
1128+
1129+
reports.clear();
1130+
query = "SELECT DEFAULT_PARSESPEED FROM UI_SETTINGS WHERE USER_ID = ?;";
1131+
1132+
const char* end = NULL;
1133+
int ret = sqlite3_prepare_v2(db, query.c_str(), query.length() + 1, &stmt, &end);
1134+
if (ret != SQLITE_OK || !stmt || (end && *end))
1135+
return -1;
1136+
1137+
ret = sqlite3_bind_int(stmt, 1, user_id);
1138+
if (ret != SQLITE_OK)
1139+
return -1;
1140+
1141+
if (execute() || reports.size() != 1)
1142+
return -1;
1143+
1144+
if (reports[0].find("DEFAULT_PARSESPEED") != reports[0].end())
1145+
parsespeed = reports[0]["DEFAULT_PARSESPEED"];
1146+
return 0;
1147+
}
1148+
10891149
//---------------------------------------------------------------------------
10901150
int SQLLiteUi::ui_settings_save_last_policy(const std::string& policy, int user_id)
10911151
{
@@ -1258,6 +1318,64 @@ int SQLLiteUi::ui_settings_get_last_verbosity(int& verbosity, int user_id)
12581318
return 0;
12591319
}
12601320

1321+
//---------------------------------------------------------------------------
1322+
int SQLLiteUi::ui_settings_save_last_parsespeed(const std::string& parsespeed, int user_id)
1323+
{
1324+
if (ui_settings_check_user_id(user_id))
1325+
return -1;
1326+
1327+
std::stringstream create;
1328+
1329+
reports.clear();
1330+
create << "UPDATE UI_SETTINGS ";
1331+
create << "SET LAST_PARSESPEED = ? ";
1332+
create << "WHERE USER_ID = ?;";
1333+
1334+
query = create.str();
1335+
1336+
const char* end = NULL;
1337+
int ret = sqlite3_prepare_v2(db, query.c_str(), query.length() + 1, &stmt, &end);
1338+
if (ret != SQLITE_OK || !stmt || (end && *end))
1339+
return -1;
1340+
1341+
ret = sqlite3_bind_blob(stmt, 1, parsespeed.c_str(), parsespeed.length(), SQLITE_STATIC);
1342+
if (ret != SQLITE_OK)
1343+
return -1;
1344+
1345+
ret = sqlite3_bind_int(stmt, 2, user_id);
1346+
if (ret != SQLITE_OK)
1347+
return -1;
1348+
1349+
return execute();
1350+
return 0;
1351+
}
1352+
1353+
//---------------------------------------------------------------------------
1354+
int SQLLiteUi::ui_settings_get_last_parsespeed(std::string& parsespeed, int user_id)
1355+
{
1356+
if (ui_settings_check_user_id(user_id))
1357+
return -1;
1358+
1359+
reports.clear();
1360+
query = "SELECT LAST_PARSESPEED FROM UI_SETTINGS WHERE USER_ID = ?;";
1361+
1362+
const char* end = NULL;
1363+
int ret = sqlite3_prepare_v2(db, query.c_str(), query.length() + 1, &stmt, &end);
1364+
if (ret != SQLITE_OK || !stmt || (end && *end))
1365+
return -1;
1366+
1367+
ret = sqlite3_bind_int(stmt, 1, user_id);
1368+
if (ret != SQLITE_OK)
1369+
return -1;
1370+
1371+
if (execute() || reports.size() != 1)
1372+
return -1;
1373+
1374+
if (reports[0].find("LAST_PARSESPEED") != reports[0].end())
1375+
parsespeed = reports[0]["LAST_PARSESPEED"];
1376+
return 0;
1377+
}
1378+
12611379
//---------------------------------------------------------------------------
12621380
int SQLLiteUi::ui_settings_save_default_load_files_path(const std::string& load_path, int user_id)
12631381
{

Source/GUI/Qt/SQLLiteUi.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ class SQLLiteUi : public DatabaseUi, public SQLLite
6363
virtual int ui_settings_save_last_verbosity(int, int user_id = -1);
6464
virtual int ui_settings_get_last_verbosity(int&, int user_id = -1);
6565

66+
virtual int ui_settings_save_default_parsespeed(const std::string&, int user_id = -1);
67+
virtual int ui_settings_get_default_parsespeed(std::string&, int user_id = -1);
68+
virtual int ui_settings_save_last_parsespeed(const std::string&, int user_id = -1);
69+
virtual int ui_settings_get_last_parsespeed(std::string&, int user_id = -1);
70+
6671
virtual int ui_settings_save_default_load_files_path(const std::string&, int user_id = -1);
6772
virtual int ui_settings_get_default_load_files_path(std::string&, int user_id = -1);
6873
virtual int ui_settings_save_last_load_files_path(const std::string&, int user_id = -1);

Source/GUI/Qt/WebCommonPage.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,7 @@ namespace MediaConch
451451
void WebCommonPage::on_save_settings_selected(const QString& policy,
452452
const QString& display,
453453
const QString& verbosity,
454+
const QString& parsespeed,
454455
const QString& save_report_path, const QString& load_files_path,
455456
const QString& save_policy_path, const QString& load_policy_path,
456457
const QString& save_display_path, const QString& load_display_path)
@@ -481,6 +482,12 @@ namespace MediaConch
481482
//verbosity
482483
settings.change_default_verbosity(verbosity.toInt());
483484

485+
//verbosity
486+
if (parsespeed == "-1")
487+
settings.change_default_parsespeed("last");
488+
else
489+
settings.change_default_parsespeed(parsespeed.toStdString());
490+
484491
//Save report path
485492
std::string r_s_path;
486493
if (save_report_path == "last")
@@ -599,23 +606,27 @@ namespace MediaConch
599606
int display_i = mainwindow->select_correct_display();
600607
int verbosity_i = mainwindow->select_correct_verbosity();
601608
bool has_libcurl = mainwindow->mil_has_curl_enabled();
609+
QString parsespeed = QString().fromStdString(mainwindow->select_correct_parsespeed());
602610

603611
use_javascript(QString("document.getElementById('checkerUpload_policy').value = %1;").arg(policy_i));
604612
use_javascript(QString("document.getElementById('checkerUpload_display_selector').value = %1;").arg(display_i));
605613
use_javascript(QString("document.getElementById('checkerUpload_verbosity_selector').value = %1;").arg(verbosity_i));
614+
use_javascript(QString("document.getElementById('checkerUpload_parsespeed_selector').value = \"%1\";").arg(parsespeed));
606615
use_javascript("document.getElementById('checkerUpload_file').value = \"\";");
607616

608617
if (has_libcurl)
609618
{
610619
use_javascript(QString("document.getElementById('checkerOnline_policy').value = %1;").arg(policy_i));
611620
use_javascript(QString("document.getElementById('checkerOnline_display_selector').value = %1;").arg(display_i));
612621
use_javascript(QString("document.getElementById('checkerOnline_verbosity_selector').value = %1;").arg(verbosity_i));
622+
use_javascript(QString("document.getElementById('checkerOnline_parsespeed_selector').value = \"%1\";").arg(parsespeed));
613623
use_javascript("document.getElementById('checkerOnline_file').value = \"\";");
614624
}
615625

616626
use_javascript(QString("document.getElementById('checkerRepository_policy').value = %1;").arg(policy_i));
617627
use_javascript(QString("document.getElementById('checkerRepository_display_selector').value = %1;").arg(display_i));
618628
use_javascript(QString("document.getElementById('checkerRepository_verbosity_selector').value = %1;").arg(verbosity_i));
629+
use_javascript(QString("document.getElementById('checkerRepository_parsespeed_selector').value = \"%1\";").arg(parsespeed));
619630
use_javascript("document.getElementById('checkerRepository_directory').value = \"\";");
620631
}
621632

Source/GUI/Qt/WebCommonPage.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public Q_SLOTS:
7777
const QString& verbosity, bool fixer, const QStringList&);
7878
QString on_file_from_db_selected();
7979
QString status_reports_multi(const QStringList& ids, const QStringList& policy_ids);
80-
void on_save_settings_selected(const QString& policy, const QString& display, const QString& verbosity,
80+
void on_save_settings_selected(const QString& policy, const QString& display, const QString& verbosity, const QString& parsespeed,
8181
const QString& save_report, const QString& load_files,
8282
const QString& save_policy, const QString& load_policy,
8383
const QString& save_display, const QString& load_display);

0 commit comments

Comments
 (0)