need to fix getting calendar lineToCourse
This commit is contained in:
parent
026c6b937c
commit
fd612169d7
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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();
|
|
||||||
int status = 0;
|
|
||||||
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
|
|
||||||
//ui->plainTextEdit->setPlainText(loginHandel->getCurrentPageContect());
|
|
||||||
calendar->resetTable();
|
calendar->resetTable();
|
||||||
ui->statusBar->showMessage(tr("Done. Inserting schdule into table..."),1000);
|
page = ui->plainTextEdit->toPlainText();
|
||||||
calendar->setCalendar(loginHandel->getCurrentPageContect());
|
calendar->setCalendar(page);
|
||||||
ui->progressBar->setValue(100);
|
// ui->progressBar->setValue(0);
|
||||||
qDebug() << Q_FUNC_INFO << "calendar is loaded";
|
// qDebug() << Q_FUNC_INFO << "in: " << ui->tabWidget->currentWidget()->objectName();
|
||||||
ui->statusBar->showMessage(tr("Done"));
|
// int status = 0;
|
||||||
}
|
// 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)
|
||||||
|
// {
|
||||||
|
|
||||||
else if (status == jceLogin::JCE_NOT_CONNECTED)
|
// //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());
|
||||||
qWarning() << Q_FUNC_INFO << "not connected";
|
// calendar->resetTable();
|
||||||
QApplication::restoreOverrideCursor();
|
// ui->statusBar->showMessage(tr("Done. Inserting schdule into table..."),1000);
|
||||||
QMessageBox::critical(this,tr("Error"),tr("Not Connected"));
|
|
||||||
}
|
// page = loginHandel->getCurrentPageContect();
|
||||||
else
|
// calendar->setCalendar(page);
|
||||||
qCritical() << Q_FUNC_INFO << "calendar get ended with" << status;
|
// ui->progressBar->setValue(100);
|
||||||
}
|
// qDebug() << Q_FUNC_INFO << "calendar is loaded";
|
||||||
QApplication::restoreOverrideCursor();
|
// ui->statusBar->showMessage(tr("Done"));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// else if (status == jceLogin::JCE_NOT_CONNECTED)
|
||||||
|
// {
|
||||||
|
// 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()
|
||||||
{
|
{
|
||||||
|
|
1141
main/mainscreen.ui
1141
main/mainscreen.ui
File diff suppressed because it is too large
Load diff
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -36,6 +36,7 @@ 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>")
|
||||||
{
|
{
|
||||||
|
if (!dateHeader.isEmpty())
|
||||||
temp += dateHeader;
|
temp += dateHeader;
|
||||||
i = stitchText(html, temp, i+4);
|
i = stitchText(html, temp, i+4);
|
||||||
if (i == -1) //EOF
|
if (i == -1) //EOF
|
||||||
|
@ -49,6 +50,7 @@ void Page::manageTableContent(QString &html, int index)
|
||||||
}
|
}
|
||||||
else if (tableTag == "<td>" || tableTag == "<th>")
|
else if (tableTag == "<td>" || tableTag == "<th>")
|
||||||
{
|
{
|
||||||
|
if (!dateHeader.isEmpty())
|
||||||
temp += "\t"; // new cell -> tab between data
|
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
|
||||||
{
|
{
|
||||||
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue