jce-manager/src/jceData/Calendar/coursesSchedule/calendarSchedule.cpp
2014-10-24 03:24:50 +03:00

105 lines
3.4 KiB
C++

#include "calendarSchedule.h"
calendarSchedule::calendarSchedule(QWidget *parent) : QTableWidget(parent)
{
QStringList days,hours;
QTextStream hourString;
QString a;
int startingHour = HOURS_BEGIN;
int endingHour = HOURS_END;
int academicHour = ACADEMIN_HOUR;
hourString.setString(&a);
for (int i = startingHour;i <= endingHour; ++i)
{
if (i < 10)
hourString << "0" << i << ":" << "00" << " - " << "0" << i << ":" << academicHour;
else
hourString << i << ":" << "00" << " - " << i << ":" << academicHour;
hours << QObject::tr(hourString.string()->toStdString().c_str());
a = "";
}
days << QObject::tr("Sunday") << QObject::tr("Monday") << QObject::tr("Tuesday") << QObject::tr("Wednesday") << QObject::tr("Thursday") << QObject::tr("Friday");
setRowCount(endingHour - startingHour + 1);
setColumnCount(6); //number of days not including saturday ofcourse :)
setLayoutDirection(Qt::LayoutDirection::RightToLeft);\
setHorizontalHeaderLabels(days);
setVerticalHeaderLabels(hours);
setEditTriggers(QAbstractItemView::NoEditTriggers);
this->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
this->resizeRowsToContents();
}
void calendarSchedule::setPage(QString html)
{
CalendarPage::setPage(html);
qDebug() << Q_FUNC_INFO << "inserting into table";
insertCourseIntoTable();
}
void calendarSchedule::clearTableItems()
{
int i,j;
for (i = 0; i < rowCount(); i++)
for (j = 0; j < columnCount(); j++)
if (this->takeItem(i,j) != NULL)
delete this->takeItem(i,j);s
this->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
this->resizeRowsToContents();
}
void calendarSchedule::insertCourseIntoTable()
{
QTableWidgetItem *item;
QString courseString;
int currentHour,currentDay,blocksNumber;
int row,col;
for (calendarCourse *coursePtr: getCourses())
{
courseString = "";
currentHour = coursePtr->getHourBegin();
currentDay = coursePtr->getDay();
blocksNumber = coursePtr->getHourEnd() - coursePtr->getHourBegin(); //every hour is a block to fill!
while (blocksNumber >= 0)
{
row = currentHour - HOURS_BEGIN;
col = currentDay-1;
courseString = QString(coursePtr->getName() + "\n");
if (coursePtr->getLecturer() != LECTURER_DEFAULT_STRING)
courseString += coursePtr->getLecturer() + "\n";
else
courseString += QString("טרם נקבע מרצה או מתרגל\n");
if (coursePtr->getRoom() != ROOM_DEFAULT_STRING)
courseString += coursePtr->getRoom();
else
courseString += QString("טרם נקבעה כיתה");
item = new QTableWidgetItem(courseString);
item->setToolTip(coursePtr->toString());
if (this->takeItem(row,col) != NULL)
{
delete this->takeItem(row,col);
}
this->setItem(row,col,item);
// qDebug() << "set row,col,item" << row << "," << col << "," << coursePtr->getSerialNum();
currentHour++;
--blocksNumber;
}
}
this->resizeRowsToContents();
}