need to fix getting calendar lineToCourse

This commit is contained in:
liranbg 2014-10-05 15:33:57 +03:00
parent 026c6b937c
commit fd612169d7
6 changed files with 1205 additions and 41 deletions

View file

@ -125,13 +125,13 @@ void loginHandler::setLoginFlag(bool flag)
} }
QString loginHandler::getCurrentPageContect() QString loginHandler::getCurrentPageContect()
{ {
QTextEdit phrase; QTextEdit parse;
if (isLoggedInFlag()) if (isLoggedInFlag())
phrase.setText(jceLog->getPage()); parse.setText(jceLog->getPage());
else else
throw jceLogin::ERROR_ON_GETTING_INFO; throw jceLogin::ERROR_ON_GETTING_INFO;
return phrase.toPlainText(); return parse.toPlainText();
} }
int loginHandler::makeGradeRequest(int fromYear, int toYear, int fromSemester, int toSemester) int loginHandler::makeGradeRequest(int fromYear, int toYear, int fromSemester, int toSemester)
{ {

View file

@ -233,39 +233,47 @@ void MainScreen::on_graphButton_clicked()
{ {
courseTableMgr->showGraph(); courseTableMgr->showGraph();
} }
//EVENTS ON CALENDAR TAB //EVENTS ON CALENDAR TAB
void MainScreen::on_getCalendarBtn_clicked() void MainScreen::on_getCalendarBtn_clicked()
{ {
ui->progressBar->setValue(0); QString page;
qDebug() << Q_FUNC_INFO << "in: " << ui->tabWidget->currentWidget()->objectName(); calendar->resetTable();
int status = 0; page = ui->plainTextEdit->toPlainText();
QApplication::setOverrideCursor(Qt::WaitCursor); calendar->setCalendar(page);
if (loginHandel->isLoggedInFlag()) // ui->progressBar->setValue(0);
{ // qDebug() << Q_FUNC_INFO << "in: " << ui->tabWidget->currentWidget()->objectName();
ui->statusBar->showMessage(tr("Getting schedule...")); // int status = 0;
if ((status = loginHandel->makeCalendarRequest(ui->spinBoxYear->value(),ui->spinBoxSemester->value())) == jceLogin::JCE_PAGE_PASSED) // QString page;
{ // QApplication::setOverrideCursor(Qt::WaitCursor);
// if (loginHandel->isLoggedInFlag())
// {
// ui->statusBar->showMessage(tr("Getting schedule..."));
// if ((status = loginHandel->makeCalendarRequest(ui->spinBoxYear->value(),ui->spinBoxSemester->value())) == jceLogin::JCE_PAGE_PASSED)
// {
//Use it for debug. add plain text and change the object name to 'plainTextEdit' so you will get the html request // //Use it for debug. add plain text and change the object name to 'plainTextEdit' so you will get the html request
//ui->plainTextEdit->setPlainText(loginHandel->getCurrentPageContect()); // //ui->plainTextEdit->setPlainText(loginHandel->getCurrentPageContect());
calendar->resetTable(); // calendar->resetTable();
ui->statusBar->showMessage(tr("Done. Inserting schdule into table..."),1000); // ui->statusBar->showMessage(tr("Done. Inserting schdule into table..."),1000);
calendar->setCalendar(loginHandel->getCurrentPageContect());
ui->progressBar->setValue(100);
qDebug() << Q_FUNC_INFO << "calendar is loaded";
ui->statusBar->showMessage(tr("Done"));
}
else if (status == jceLogin::JCE_NOT_CONNECTED) // page = loginHandel->getCurrentPageContect();
{ // calendar->setCalendar(page);
qWarning() << Q_FUNC_INFO << "not connected"; // ui->progressBar->setValue(100);
QApplication::restoreOverrideCursor(); // qDebug() << Q_FUNC_INFO << "calendar is loaded";
QMessageBox::critical(this,tr("Error"),tr("Not Connected")); // ui->statusBar->showMessage(tr("Done"));
} // }
else
qCritical() << Q_FUNC_INFO << "calendar get ended with" << status; // else if (status == jceLogin::JCE_NOT_CONNECTED)
} // {
QApplication::restoreOverrideCursor(); // qWarning() << Q_FUNC_INFO << "not connected";
// QApplication::restoreOverrideCursor();
// QMessageBox::critical(this,tr("Error"),tr("Not Connected"));
// }
// else
// qCritical() << Q_FUNC_INFO << "calendar get ended with" << status;
// }
// QApplication::restoreOverrideCursor();
} }
void MainScreen::on_exportToCVSBtn_clicked() void MainScreen::on_exportToCVSBtn_clicked()
{ {

File diff suppressed because it is too large Load diff

View file

@ -8,10 +8,13 @@ QString CalendarPage::htmlToString()
void CalendarPage::setPage(QString html) void CalendarPage::setPage(QString html)
{ {
qDebug() << "parsing calendar";
courses = new std::list<calendarCourse*>(); courses = new std::list<calendarCourse*>();
tempHtml = getString(html); tempHtml = getString(html);
tempHtml = tokenToLines(tempHtml); tempHtml = tokenToLines(tempHtml);
qDebug() << "creating courses list";
calendarListInit(tempHtml); calendarListInit(tempHtml);
qDebug() << "done";
} }
@ -114,6 +117,7 @@ calendarCourse *CalendarPage::lineToCourse(QString line)
else else
room = ROOM_DEFAULT_STRING; room = ROOM_DEFAULT_STRING;
qDebug() << serial << name << type << lecturer << points << semesterHours << dayAndHour << room;
tempC = new calendarCourse(serial,name,type,lecturer,points,semesterHours,dayAndHour,room); tempC = new calendarCourse(serial,name,type,lecturer,points,semesterHours,dayAndHour,room);
return tempC; return tempC;

View file

@ -37,8 +37,8 @@ calendarSchedule::calendarSchedule()
void calendarSchedule::setPage(QString html) void calendarSchedule::setPage(QString html)
{ {
CalendarPage::setPage(html); CalendarPage::setPage(html);
qDebug() << Q_FUNC_INFO << "inserting into table";
insertCourseIntoTable(); // insertCourseIntoTable();
} }
void calendarSchedule::clearTableItems() void calendarSchedule::clearTableItems()
@ -57,15 +57,17 @@ void calendarSchedule::insertCourseIntoTable()
QTableWidgetItem *item; QTableWidgetItem *item;
QString courseString; QString courseString;
int currentHour,currentDay,blocksNumer; int currentHour,currentDay,blocksNumber;
int row,col; int row,col;
for (calendarCourse *coursePtr: *getCourses()) for (calendarCourse *coursePtr: *getCourses())
{ {
qDebug() << coursePtr->getSerialNum();
courseString = ""; courseString = "";
currentHour = coursePtr->getHourBegin(); currentHour = coursePtr->getHourBegin();
currentDay = coursePtr->getDay(); currentDay = coursePtr->getDay();
blocksNumer = coursePtr->getHourEnd() - coursePtr->getHourBegin(); //every hour is a block to fill! blocksNumber = coursePtr->getHourEnd() - coursePtr->getHourBegin(); //every hour is a block to fill!
while (blocksNumer >= 0) qDebug() << blocksNumber;
while (blocksNumber >= 0)
{ {
row = currentHour - HOURS_BEGIN; row = currentHour - HOURS_BEGIN;
col = currentDay-1; col = currentDay-1;
@ -88,7 +90,7 @@ void calendarSchedule::insertCourseIntoTable()
this->setItem(row,col,item); this->setItem(row,col,item);
currentHour++; currentHour++;
--blocksNumer; --blocksNumber;
} }
horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

View file

@ -36,7 +36,8 @@ void Page::manageTableContent(QString &html, int index)
QString tableTag = html.mid(i, 4); //legth of "tr/td" QString tableTag = html.mid(i, 4); //legth of "tr/td"
if (tableTag == "<tr>") if (tableTag == "<tr>")
{ {
temp += dateHeader; if (!dateHeader.isEmpty())
temp += dateHeader;
i = stitchText(html, temp, i+4); i = stitchText(html, temp, i+4);
if (i == -1) //EOF if (i == -1) //EOF
break; break;
@ -49,7 +50,8 @@ void Page::manageTableContent(QString &html, int index)
} }
else if (tableTag == "<td>" || tableTag == "<th>") else if (tableTag == "<td>" || tableTag == "<th>")
{ {
temp += "\t"; // new cell -> tab between data if (!dateHeader.isEmpty())
temp += "\t"; // new cell -> tab between data
if (html.mid(i, 6) == "<td><a") //link to lecturer portal, need to be deleted if (html.mid(i, 6) == "<td><a") //link to lecturer portal, need to be deleted
{ {
i += 6; i += 6;
@ -58,19 +60,28 @@ void Page::manageTableContent(QString &html, int index)
} }
else else
i = stitchText(html, temp, i+4); i = stitchText(html, temp, i+4);
if (dateHeader.isEmpty())
temp += "\t";
if (i == -1) //EOF if (i == -1) //EOF
break; break;
} }
else if (tableTag == "<td ") // a Year title (in grades table) else if (tableTag == "<td ") // a Year title (in grades table)
{ {
if (!dateHeader.isEmpty())
if (!temp.isEmpty()) if (!temp.isEmpty())
if (temp.lastIndexOf(dateHeader) == temp.length()-dateHeader.length()) if (temp.lastIndexOf(dateHeader) == temp.length()-dateHeader.length())
{ {
temp.chop(dateHeader.length()+1); temp.chop(dateHeader.length()+1);
temp += "\t"; temp += "\t";
} }
while (html.mid(i,3) != "<b>") while ((html.mid(i,3) != "<b>") && (i < (int)html.length()))
{
if (html.mid(i,5) == "</td>")
break;
i++; i++;
}
i = stitchText(html, temp, i); i = stitchText(html, temp, i);
} }