diff --git a/main/CalendarTab/CalendarManager.cpp b/main/CalendarTab/CalendarManager.cpp
index 4f41dbf..cb7c4a2 100644
--- a/main/CalendarTab/CalendarManager.cpp
+++ b/main/CalendarTab/CalendarManager.cpp
@@ -9,7 +9,7 @@ void CalendarManager::setCalendar(std::string html)
{
caliSchedPtr->setPage(html);
}
-void CalendarManager::exportCalendarCSV()
+void CalendarManager::exportCalendarCSV(CalendarDialog *calDialog)
{
if(CSV_Exporter::exportCalendar(this->caliSchedPtr))
{
diff --git a/main/CalendarTab/CalendarManager.h b/main/CalendarTab/CalendarManager.h
index 1a92f8c..c9d56b8 100644
--- a/main/CalendarTab/CalendarManager.h
+++ b/main/CalendarTab/CalendarManager.h
@@ -16,7 +16,7 @@ public:
{
delete caliSchedPtr;
}
- void exportCalendarCSV();
+ void exportCalendarCSV(CalendarDialog*);
void setCalendar(std::string html);
void resetTable() { if (caliSchedPtr != NULL) caliSchedPtr->clearTableItems(); }
diff --git a/main/mainscreen.cpp b/main/mainscreen.cpp
index f6c4b74..01193ef 100644
--- a/main/mainscreen.cpp
+++ b/main/mainscreen.cpp
@@ -343,7 +343,10 @@ void MainScreen::on_exportToCVSBtn_clicked()
if(buttonClicked == 0)
return;
//calDialog.getStartDate(),calDialog.getEndDate()
- this->calendar->exportCalendarCSV();
+ if(calDialog.ok())
+ this->calendar->exportCalendarCSV(&calDialog);
+ else
+ showMSG("Somthig was not right with the dates you chose... try again");
}
}
diff --git a/main/mainscreen.cpp.autosave b/main/mainscreen.cpp.autosave
new file mode 100644
index 0000000..bf15bf2
--- /dev/null
+++ b/main/mainscreen.cpp.autosave
@@ -0,0 +1,394 @@
+#include "mainscreen.h"
+#include "ui_mainscreen.h"
+
+
+MainScreen::MainScreen(QWidget *parent) :QMainWindow(parent), ui(new Ui::MainScreen)
+{
+ ui->setupUi(this);
+
+ //this->setFixedSize(this->size()); //main not resizeable
+
+
+ //Login Tab
+ ui->pswdLineEdit->setEchoMode((QLineEdit::Password));
+
+ //Status Bar
+ ui->actionEnglish->setChecked(true);
+ ui->statusBar->setStyleSheet("QStatusBar::item { border: 0px solid black };");
+ ButtomStatusLabel = new QLabel(this);
+ statusLabel = new QLabel(this);
+ ui->statusBar->setMaximumSize(this->geometry().width(),StatusIconHeight);
+ ui->statusBar->addPermanentWidget(ButtomStatusLabel,0);
+ ui->statusBar->addPermanentWidget(statusLabel,1);
+ setLabelConnectionStatus(jceLogin::jceStatus::JCE_NOT_CONNECTED);
+
+ //Course, Setting, Calendar Tab
+ calendarSchedule * calendarSchedulePtr = new calendarSchedule();
+ ui->calendarGridLayoutMain->addWidget(calendarSchedulePtr);
+ ui->CoursesTab->setDisabled(true);
+ ui->avgLCD->setPalette(QPalette(QPalette::WindowText,Qt::blue));
+
+
+
+ //Pointer allocating
+
+ this->userLoginSetting = new user("","");
+ this->courseTableMgr = new coursesTableManager(ui->coursesTable,userLoginSetting);
+ this->loginHandel = new loginHandler(userLoginSetting);
+ this->calendar = new CalendarManager(calendarSchedulePtr);
+ this->data = new SaveData();
+
+ //check login File
+ //SaveData::init(); --> No need. constructor dose everything.
+ if (data->isSaved())
+ {
+ ui->usrnmLineEdit->setText(data->getUsername());
+ ui->pswdLineEdit->setText(data->getPassword());
+ ui->keepLogin->setChecked(true);
+ }
+
+ //Local Check and ui setting.
+ if(data->getLocal() == "en")
+ {
+ ui->actionHebrew->setChecked(false);
+ ui->actionOS_Default->setChecked(false);
+ ui->actionEnglish->setChecked(true);
+ }else if(data->getLocal() == "he"){
+ ui->actionHebrew->setChecked(true);
+ ui->actionOS_Default->setChecked(false);
+ ui->actionEnglish->setChecked(false);
+ }else{
+ ui->actionHebrew->setChecked(false);
+ ui->actionOS_Default->setChecked(true);
+ ui->actionEnglish->setChecked(false);
+ }
+
+}
+
+MainScreen::~MainScreen()
+{
+ delete userLoginSetting;
+ delete loginHandel;
+ delete ui;
+
+ //Delete save data
+ delete data;
+}
+void MainScreen::on_loginButton_clicked()
+{
+ if (loginHandel->isLoggedInFlag())
+ uiSetDisconnectMode();
+
+ else
+ uiSetConnectMode();
+
+}
+void MainScreen::on_getCalendarBtn_clicked()
+{
+ int status = 0;
+ if (loginHandel->isLoggedInFlag())
+ {
+ if ((status = loginHandel->makeCalendarRequest(ui->spinBoxYear->value(),ui->spinBoxSemester->value())) == jceLogin::JCE_GRADE_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->setCalendar(loginHandel->getCurrentPageContect().toStdString());
+ }
+
+ else if (status == jceLogin::JCE_NOT_CONNECTED)
+ {
+ QMessageBox::critical(this,tr("Error"),tr("Not Connected"));
+ }
+ }
+}
+
+void MainScreen::on_ratesButton_clicked()
+{
+ std::string pageString;
+ int status = 0;
+ if (loginHandel->isLoggedInFlag())
+ {
+ if ((status = loginHandel->makeGradeRequest(ui->spinBoxCoursesFromYear->value(),ui->spinBoxCoursesToYear->value(),ui->spinBoxCoursesFromSemester->value(),ui->spinBoxCoursesToSemester->value())) == jceLogin::JCE_GRADE_PAGE_PASSED)
+ {
+ pageString = loginHandel->getCurrentPageContect().toStdString();
+ courseTableMgr->setCoursesList(pageString);
+ courseTableMgr->insertJceCoursesIntoTable();
+ }
+ else if (status == jceLogin::JCE_NOT_CONNECTED)
+ {
+ QMessageBox::critical(this,tr("Error"),tr("Not Connected"));
+ }
+ }
+
+
+
+}
+void MainScreen::on_checkBoxCoursesInfluence_toggled(bool checked)
+{
+ this->userLoginSetting->setInfluenceCourseOnly(checked);
+ this->courseTableMgr->influnceCourseChanged(checked);
+}
+void MainScreen::on_spinBoxCoursesFromYear_editingFinished()
+{
+ if (ui->spinBoxCoursesFromYear->value() > ui->spinBoxCoursesToYear->value())
+ {
+ ui->spinBoxCoursesFromYear->setValue(ui->spinBoxCoursesToYear->value());
+ ui->spinBoxCoursesFromYear->setFocus();
+ }
+
+}
+void MainScreen::on_spinBoxCoursesToYear_editingFinished()
+{
+ if (ui->spinBoxCoursesFromYear->value() > ui->spinBoxCoursesToYear->value())
+ {
+ ui->spinBoxCoursesToYear->setValue(ui->spinBoxCoursesFromYear->value());
+ ui->spinBoxCoursesToYear->setFocus();
+
+ }
+}
+void MainScreen::on_spinBoxCoursesFromSemester_editingFinished()
+{
+ if (ui->spinBoxCoursesFromYear->value() == ui->spinBoxCoursesToYear->value())
+ {
+ if (ui->spinBoxCoursesFromSemester->value() > ui->spinBoxCoursesToSemester->value())
+ {
+ ui->spinBoxCoursesFromSemester->setValue(ui->spinBoxCoursesToSemester->value());
+ ui->spinBoxCoursesFromSemester->setFocus();
+ }
+ }
+}
+void MainScreen::on_spinBoxCoursesToSemester_editingFinished()
+{
+ if (ui->spinBoxCoursesFromYear->value() == ui->spinBoxCoursesToYear->value())
+ {
+ if (ui->spinBoxCoursesFromSemester->value() > ui->spinBoxCoursesToSemester->value())
+ {
+ ui->spinBoxCoursesToSemester->setValue(ui->spinBoxCoursesFromSemester->value());
+ ui->spinBoxCoursesToSemester->setFocus();
+ }
+ }
+}
+
+void MainScreen::on_coursesTable_itemChanged(QTableWidgetItem *item)
+{
+ if (this->courseTableMgr->changes(item->text(),item->row(),item->column()))
+ ui->avgLCD->display(courseTableMgr->getAvg());
+ else
+ QMessageBox::critical(this,"Error","Missmatching data");
+}
+
+void MainScreen::on_usrnmLineEdit_editingFinished()
+{
+ ui->usrnmLineEdit->setText(ui->usrnmLineEdit->text().toLower());
+}
+void MainScreen::uiSetDisconnectMode()
+{
+ setLabelConnectionStatus(jceLogin::jceStatus::JCE_NOT_CONNECTED);
+ ui->usrnmLineEdit->setText("");
+ ui->pswdLineEdit->setText("");
+ ui->usrnmLineEdit->setEnabled(true);
+ ui->pswdLineEdit->setEnabled(true);
+
+ loginHandel->makeDisconnectionRequest();
+ ui->loginButton->setText("&Login");
+ ui->getCalendarBtn->setDisabled(true);
+ ui->exportToCVSBtn->setDisabled(true);
+ ui->ratesButton->setDisabled(true);
+ return;
+}
+
+void MainScreen::uiSetConnectMode() //fix before distrbute
+{
+ string username;
+ string password;
+ if ((ui->usrnmLineEdit->text().isEmpty()) || (ui->pswdLineEdit->text().isEmpty()))
+ {
+ //add icon near to username and password to mark it
+ return;
+ }
+ setLabelConnectionStatus(jceLogin::jceStatus::JCE_START_VALIDATING_PROGRESS);
+
+ username = ui->usrnmLineEdit->text().toStdString();
+ password = ui->pswdLineEdit->text().toStdString();
+
+ ui->usrnmLineEdit->setDisabled(true);
+ ui->pswdLineEdit->setDisabled(true);
+
+ userLoginSetting->setUsername(username);
+ userLoginSetting->setPassword(password);
+
+ this->loginHandel->setPointers(statusLabel,ui->pswdLineEdit,ui->usrnmLineEdit);
+ if (loginHandel->makeConnection() == true)
+ {
+ setLabelConnectionStatus(jceLogin::jceStatus::JCE_YOU_ARE_IN);
+ ui->loginButton->setText("&Logout");
+ ui->ratesButton->setEnabled(true);
+ ui->CoursesTab->setEnabled(true);
+ ui->exportToCVSBtn->setEnabled(true);
+ ui->getCalendarBtn->setEnabled(true);
+
+ }
+ else
+ {
+ uiSetDisconnectMode();
+ }
+}
+void MainScreen::setLabelConnectionStatus(jceLogin::jceStatus statusDescription)
+{
+ QPixmap iconPix;
+ switch (statusDescription)
+ {
+
+ case jceLogin::jceStatus::JCE_START_VALIDATING_PROGRESS:
+ iconPix.load(":/icons/blueStatusIcon.png");
+ statusLabel->setText(tr("Connecting"));
+ break;
+ case jceLogin::jceStatus::JCE_YOU_ARE_IN:
+ iconPix.load(":/icons/greenStatusIcon.png");
+ statusLabel->setText(tr("Connected"));
+ break;
+ default:
+ iconPix.load(":/icons/redStatusIcon.png");
+ statusLabel->setText(tr("Disconnected"));
+ break;
+ }
+ ButtomStatusLabel->setPixmap(iconPix);
+
+ this->repaint();
+}
+
+void MainScreen::showMSG(QString msg)
+{
+ QMessageBox msgBox;
+ msgBox.setText(msg);
+ msgBox.exec();
+}
+void MainScreen::on_actionCredits_triggered()
+{
+ QMessageBox::about(this, "About", tr("CREDITS-ROOL-UP1") + " v1.0
"
+ + tr("CREDITS-ROOL-UP2")+"
GNU LESSER GENERAL PUBLIC LICENSE V2
"
+ + tr("CREDITS-ROOL-UP3")+"
"
+ "jceAverageCalculator Repository"
+ "
"+tr("CREDITS-ROOL-UP4")+" Jce Connection
"
+ +tr("DevBy")+":"
+ "