Skip to content

Commit 17e933f

Browse files
authored
Merge pull request #62 from iTrace-Dev/develop
Pre-ICSE Alpha0.2.3 Release
2 parents 7be9519 + 86e3f88 commit 17e933f

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

CONTRIBUTORS.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
iTrace-Toolkit was created through the help of the following people (alphabetized):
2+
3+
- Joshua Behler
4+
- Drew Guarnera
5+
- Praxis Weston

Filter.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ Popup {
184184
columns: 1
185185
id: pupilLayout
186186
readonly property string min: "0.00"
187-
readonly property string max: "3.50"
187+
readonly property string max: "10.0"
188188
Text {
189189
text: "Pupil Diameters (mm)"
190190
font.pointSize: 10

controller.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -366,10 +366,13 @@ void Controller::importPluginXML(const QString& file_path) {
366366
types["msvs"] = "vstudio_plugin";
367367
types["eclipse"] = "eclipse_plugin";
368368
types["atom"] = "atom_plugin";
369+
types["sublime"] = "sublime_plugin";
370+
types["vscode"] = "vscode_plugin";
369371
types["chrome"] = "chrome_plugin";
370372
ide_plugin_type = plugin_file.getElementAttribute("plugin_type").toLower();
373+
QString file_type = types.find(ide_plugin_type) == types.end() ? "unsupported_plugin" : types.at(ide_plugin_type);
371374
// Insert file
372-
idb.insertFile(QCryptographicHash::hash(plugin_file.getFilePath().toUtf8().constData(),QCryptographicHash::Sha1).toHex(),session_id,plugin_file.getFilePath(),types.at(ide_plugin_type));
375+
idb.insertFile(QCryptographicHash::hash(plugin_file.getFilePath().toUtf8().constData(),QCryptographicHash::Sha1).toHex(),session_id,plugin_file.getFilePath(),file_type);
373376
}
374377
else if(element == "response") {
375378
// Insert ide_context
@@ -469,7 +472,7 @@ void Controller::generateFixationData(QVector<QString> tasks, QString algSetting
469472
idb.insertFixationRun(fixation_run_id,session_id,fixation_date_time,fixation_filter_settings);
470473

471474
int fixation_order = 1;
472-
for(auto fix = session_fixations.begin(); fix != session_fixations.end(); ++fix) {
475+
for(auto fix = session_fixations.rbegin(); fix != session_fixations.rend(); ++fix) {
473476
QString fixation_id = QUuid::createUuid().toString();
474477
fixation_id.remove("{"); fixation_id.remove("}");
475478
idb.insertFixation(fixation_id,fixation_run_id,QString::number(fix->fixation_event_time),QString::number(fixation_order),QString::number(fix->x),QString::number(fix->y),fix->target,QString::number(fix->source_file_line),QString::number(fix->source_file_col),fix->token == "" ? "null" : "\""+fix->token+"\"",fix->syntactic_category == "" ? "null" : "\""+fix->syntactic_category+"\"",fix->xpath == "" ? "null" : "\""+fix->xpath+"\"",QString::number(fix->left_pupil_diameter),QString::number(fix->right_pupil_diameter),QString::number(fix->duration));
@@ -717,16 +720,16 @@ QString Controller::generateQuery(QString targets, QString token_types, QString
717720
// Add in Targets
718721
if(targets != "") {
719722
QStringList target_list = targets.split(',');
720-
query += QString("fixation_target = \"%1\"").arg(target_list[0]);
723+
query += QString("(fixation_target = \"%1\"").arg(target_list[0]);
721724
for(auto i = target_list.begin()+1; i != target_list.end(); ++i) {
722725
query += QString(" OR fixation_target = \"%1\" ").arg(*i);
723726
}
724-
query += " AND ";
727+
query += ") AND ";
725728
}
726729
// Add in Tokens
727730
if(token_types != "") {
728731
QStringList token_list = token_types.split(',');
729-
query += QString("(fixation_target = \"%1\"").arg(token_list[0]);
732+
query += QString("(token = \"%1\"").arg(token_list[0]);
730733
for(auto i = token_list.begin()+1; i != token_list.end(); ++i) {
731734
query += QString(" OR token = \"%1\" ").arg(*i);
732735
}
@@ -773,7 +776,8 @@ void Controller::saveQueryFile(QString query, QString file_path) {
773776

774777
void Controller::generateQueriedData(QString query, QString output_type, QString output_url) {
775778
QVector<QVector<QString>> data = idb.runFilterQuery(query);
776-
QString safeQuery = query.replace("\"", "\\\"");
779+
QString safeQuery = query;//.replace("\"", "\\\"");
780+
//QString safeQuery = "'" + query.mid(1,query.length()-2) + "'";
777781
QString savename = output_url+"/fixation_query_"+QString::number(std::time(nullptr))+output_type;
778782
changeFilePathOS(savename);
779783
std::cout << savename << std::endl;
@@ -784,7 +788,7 @@ void Controller::generateQueriedData(QString query, QString output_type, QString
784788
output.open();
785789
output.exec("CREATE TABLE IF NOT EXISTS fixation(fixation_id TEXT PRIMARY KEY,fixation_run_id INTEGER,fixation_start_event_time INTEGER,fixation_order_number INTEGER,x INTEGER,y INTEGER,fixation_target TEXT,source_file_line INTEGER, source_file_col INTEGER,token TEXT,syntactic_category TEXT,xpath TEXT,left_pupil_diameter REAL,right_pupil_diameter REAL,duration INTEGER, query TEXT)");
786790
for(auto i : data) {
787-
output.exec(QString("INSERT INTO fixation(fixation_id,fixation_run_id,fixation_start_event_time,fixation_order_number,x,y,fixation_target,source_file_line,source_file_col,token,syntactic_category,xpath,left_pupil_diameter,right_pupil_diameter,duration,query) VALUES(\"%1\",%2,%3,%4,%5,%6,\"%7\",%8,%9,%10,%11,%12,%13,%14,%15,\"%16\")").arg(i[0]).arg(i[1]).arg(i[2]).arg(i[3]).arg(i[4]).arg(i[5]).arg(i[6]).arg(i[7]).arg(i[8]).arg(i[9] == "null" ? "null" : "\""+i[9]+"\"").arg(i[10] == "null" ? "null" : "\""+i[10]+"\"").arg(i[11] == "null" ? "null" : "\""+i[11]+"\"").arg(i[12]).arg(i[13]).arg(i[14]).arg(safeQuery).replace("\"\"","\""));
791+
output.exec(QString("INSERT INTO fixation(fixation_id,fixation_run_id,fixation_start_event_time,fixation_order_number,x,y,fixation_target,source_file_line,source_file_col,token,syntactic_category,xpath,left_pupil_diameter,right_pupil_diameter,duration,query) VALUES(\"%1\",%2,%3,%4,%5,%6,\"%7\",%8,%9,%10,%11,%12,%13,%14,%15,'%16')").arg(i[0]).arg(i[1]).arg(i[2]).arg(i[3]).arg(i[4]).arg(i[5]).arg(i[6]).arg(i[7]).arg(i[8]).arg(i[9] == "null" ? "null" : "\""+i[9]+"\"").arg(i[10] == "null" ? "null" : "\""+i[10]+"\"").arg(i[11] == "null" ? "null" : "\""+i[11]+"\"").arg(i[12]).arg(i[13]).arg(i[14]).arg(safeQuery));
788792
}
789793
output.close();
790794
QSqlDatabase::removeDatabase("output");
@@ -799,6 +803,7 @@ void Controller::generateQueriedData(QString query, QString output_type, QString
799803
/////// XML
800804
else if(output_type == ".xml") {
801805
std::ofstream output(savename.toUtf8().constData());
806+
safeQuery = safeQuery.replace("\"","&quot;");
802807
output << "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<itrace_fixation_query query=\"" << safeQuery << "\">\n";
803808
for(auto fix : data) {
804809
output << "\t" << (QString("<fixation fixation_id=\"%1\" fixation_run_id=\"%2\" fixation_start_event_time=\"%3\" fixation_order_number=\"%4\" x=\"%5\" y=\"%6\" fixation_target=\"%7\" source_file_line=\"%8\" source_file_col=\"%9\" token=\"%10\" syntactic_category=\"%11\" xpath=\"%12\" left_pupil_diameter=\"%13\" right_pupil_diameter=\"%14\" duration=\"%15\" />").arg(fix[0]).arg(fix[1]).arg(fix[2]).arg(fix[3]).arg(fix[4]).arg(fix[5]).arg(fix[6]).arg(fix[7]).arg(fix[8]).arg(fix[9]).arg(fix[10]).arg(fix[11]).arg(fix[12]).arg(fix[13]).arg(fix[14])).toUtf8().constData() << "\n";
@@ -809,6 +814,7 @@ void Controller::generateQueriedData(QString query, QString output_type, QString
809814
/////// JSON
810815
else if(output_type == ".json") {
811816
std::ofstream output(savename.toUtf8().constData());
817+
safeQuery = safeQuery.replace("\"","\\\"");
812818
output << "{\n\t\"query\": \"" << safeQuery << "\",\n";
813819
output << "\t\"fixations\": [\n";
814820
for(auto fix : data) {

main.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ Window {
279279
}
280280

281281
ToolTip.visible: hovered | down
282-
ToolTip.text: "Select a folder to recursively upload all srcML or XML files inside it"
282+
ToolTip.text: "Select a folder to recursively upload all Core and Plugin XML files inside it"
283283

284284
enabled: false
285285

0 commit comments

Comments
 (0)