@@ -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
774777void 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 (" \" " ," "" );
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) {
0 commit comments