Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////// mainwindow.cpp
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include "calform.h"
- #include "ui_calform.h"
- //#include "mycals.h"
- #include <QDebug>
- #include <QFileDialog>
- #include <QFileInfo>
- #include <QDesktopServices>
- #include <QUrl>
- #include <QDir>
- #include <QProcess>
- #include <QMessageBox>
- #include <QCompleter>
- #include <QTranslator>
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- setCentralWidget(ui->scrollArea);
- this->setWindowTitle(QString("%1 (calendar) v%2").arg(TIKZTAK).arg(VERSAO));
- // ui->scrollArea_2->hide();
- // on_pushButton_new_calendar_clicked();
- ui->groupBox_save_cal->hide();
- ui->mainToolBar->hide();
- ui->radioButton_en->setChecked(true);
- // testa se existe o file de idioma
- QString path = QDir::currentPath();
- if( translator_pt_br.load(path+"/translation/tikz-tak_pt-br.qm") ){
- qDebug() << "language file tikz-tak_pt-br.qm successfully loaded";
- } else {
- qDebug() << "failure loading language file tikz-tak_pt-br.qm";
- qDebug() << "no translation to pt-br available";
- ui->radioButton_br->setCheckable(false);
- ui->statusBar->showMessage(tr("WARNING: no translation to pt-br available"),4000);
- }
- QString compilationDateTime = QString(tr(
- "v%3 compiled on %1 %2")).arg(__DATE__).arg(__TIME__).arg(VERSAO);
- QLabel *statusBuilt = new QLabel();
- statusBuilt->setText(compilationDateTime);
- ui->statusBar->addPermanentWidget(statusBuilt);
- ui->statusBar->setMaximumHeight(22);
- ui->statusBar->setSizeGripEnabled(false);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- // necessario para traduzir o evento
- void MainWindow::changeEvent(QEvent* event)
- {
- if(event->type() == QEvent::LanguageChange)
- {
- // CalForm *calform = new CalForm;
- ui->retranslateUi(this);
- ui->lineEdit_save_cal->setPlaceholderText(tr("<file name without extension>"));
- }
- QWidget::changeEvent(event);
- }
- //// quais serao deletados e instalados ao clicar no botao
- //void MainWindow::on_pushButton_clicked()
- //{
- // qApp->installTranslator(&translatorFa);
- // qApp->removeTranslator(&translatorGe);
- //}
- void MainWindow::on_pushButton_new_calendar_clicked()
- {
- ui->scrollArea_2->show();
- ui->groupBox_save_cal->hide();
- ui->tabWidget->clear();
- on_pushButton_add_cal_clicked();
- // ui->pushButton_reset->click();
- // ui->lineEdit_1->setFocus();
- }
- void MainWindow::on_actionNew_triggered()
- {
- ui->pushButton_new_calendar->click();
- }
- void MainWindow::on_actionExit_triggered()
- {
- QCoreApplication::quit();
- }
- void MainWindow::on_pushButton_compile_clicked()
- {
- ui->statusBar->showMessage(tr("Compiling calendar..."),1000);
- QString tex_file = QDir().absolutePath()+"/tikz-tak.tex";
- QString aux_file = QDir().absolutePath()+"/tikz-tak.aux";
- QString pdflatex = QDir().absolutePath()+"/texlive/bin/x86_64-linux/pdflatex";
- qDebug() << tex_file;
- QFile aux (aux_file);
- aux.remove();
- QProcess process;
- process.startDetached(pdflatex, QStringList()<< tex_file);
- // QProcess process;
- // process.setProgram(pdflatex);
- // process.setArguments({tex_file});
- //// process.setWorkingDirectory(musicDirPath);
- // process.setStandardOutputFile(QProcess::nullDevice());
- // process.setStandardErrorFile(QProcess::nullDevice());
- // qint64 pid;
- // process.startDetached(&pid);
- // QProcess::startDetached("kill", {QString::number(pid)});
- }
- void MainWindow::on_pushButton_view_pdf_clicked()
- {
- ui->statusBar->showMessage(tr("Visualizing PDF calendar..."),1000);
- QString pdf_file = QDir().absolutePath()+"/tikz-tak.pdf";
- qDebug() << pdf_file;
- QProcess process;
- process.startDetached("xdg-open", QStringList()<< pdf_file);
- }
- void MainWindow::on_pushButton_save_cal_clicked()
- {
- ui->scrollArea_2->show();
- ui->groupBox_save_cal->show();
- ui->lineEdit_save_cal->clear();
- ui->lineEdit_save_cal->setPlaceholderText(tr("<file name without extension>"));
- ui->lineEdit_save_cal->setFocus();
- QDir dir(QDir::currentPath()+QDir::separator()+"saved_calendars");
- QStringList filters;
- filters << "*.tkc" ;
- dir.setNameFilters(filters);
- QFileInfoList list_of_files = dir.entryInfoList();
- QStringList wordList;
- for (int i = 0; i < list_of_files.size(); i++)
- {
- // qDebug() << "Filename " + QString::number(i) + " = " + mylist.at(i).baseName();
- wordList.append(list_of_files.at(i).baseName());
- }
- // QStringList wordList = dir.entryList(QDir::Files);
- // qDebug() << wordList;
- QCompleter *completer = new QCompleter(wordList, this);
- completer->setCaseSensitivity(Qt::CaseInsensitive);
- ui->lineEdit_save_cal->setCompleter(completer);
- }
- //void MainWindow::on_pushButton_open_cal_clicked()
- //{
- // QString filename = QFileDialog::getOpenFileName(
- // this,
- // tr("Open TikZ-TAK calendar file"),
- // QDir::currentPath()+QDir::separator()+"saved_calendars",
- // "TikZ-TAK Calendar (*.tkc);;All Files (*.*)"
- // );
- // ui->groupBox_calendar_data->show();
- // ui->groupBox_save_cal->hide();
- // int num_lineEdit = 3;
- // int num_spinBox = 2;
- // int num_checkBox = 7;
- // int num_dateEdit = 2;
- // QFile inputFile(filename);
- // if (inputFile.open(QIODevice::ReadOnly)){
- // QTextStream in(&inputFile);
- // int i = 1 - 5; // 5 comes from comments in .tkc file
- // while (!in.atEnd()){
- // QString line = in.readLine();
- // qDebug() << line;
- // if (i>0 && i <= num_lineEdit){
- // QString linha = "lineEdit_"+QString::number(i);
- // QLineEdit* target = this->findChild<QLineEdit*>(linha);
- //// qDebug() << line;
- // if (target) {
- // target->setText(line);
- // }
- // else {
- // qDebug() << "no such child" << linha;
- // }
- // }
- // if (num_lineEdit+1 <= i && i <= num_lineEdit+num_spinBox){
- // QString linha = "spinBox_"+QString::number(i-num_lineEdit);
- // QSpinBox* target = this->findChild<QSpinBox*>(linha);
- //// qDebug() << line;
- // if (target) {
- // target->setValue(line.toInt());
- // }
- // else {
- // qDebug() << "no such child" << linha;
- // }
- // }
- // if (num_lineEdit+num_spinBox+1 <= i && i <= num_lineEdit+num_spinBox+num_checkBox){
- // QString linha = "checkBox_"+QString::number(i-(num_lineEdit+num_spinBox));
- // QCheckBox* target = this->findChild<QCheckBox*>(linha);
- //// qDebug() << line;
- // if (target) {
- // target->setChecked(line.toInt());
- // }
- // else {
- // qDebug() << "no such child" << linha;
- // }
- // }
- // if (num_lineEdit+num_spinBox+num_checkBox+1 <= i && i <= num_lineEdit+num_spinBox+num_checkBox+num_dateEdit){
- // QString linha = "dateEdit_"+QString::number(i-(num_lineEdit+num_spinBox+num_checkBox));
- // QDateEdit* target = this->findChild<QDateEdit*>(linha);
- //// qDebug() << line;
- // if (target) {
- // QDate Date = QDate::fromString(line,"d/M/yyyy");
- // target->setDate(Date);
- // }
- // else {
- // qDebug() << "no such child" << linha;
- // }
- // }
- // i += 1;
- // }
- // inputFile.close();
- // }
- //}
- void MainWindow::on_lineEdit_save_cal_returnPressed()
- {
- // on_pushButton_save_cal_OK_clicked();
- }
- void MainWindow::on_actionOpen_triggered()
- {
- // on_pushButton_open_cal_clicked();
- }
- void MainWindow::on_actionSave_as_triggered()
- {
- on_pushButton_save_cal_clicked();
- }
- void MainWindow::on_pushButton_exit_clicked()
- {
- on_actionExit_triggered();
- }
- void MainWindow::on_radioButton_br_clicked()
- {
- qApp->removeTranslator(&translator_en);
- qApp->installTranslator(&translator_pt_br);
- }
- void MainWindow::on_radioButton_en_clicked()
- {
- qApp->removeTranslator(&translator_pt_br);
- qApp->installTranslator(&translator_en);
- }
- void MainWindow::on_pushButton_add_cal_clicked()
- {
- CalForm *calform = new CalForm;
- int i = ui->tabWidget->count()+1;
- ui->tabWidget->addTab(calform, QString("Cal %0").arg(i));
- ui->tabWidget->setCurrentIndex(ui->tabWidget->count()-1);
- calform->ui->pushButton_reset->click();
- // connect(ui->pushButton_add_cal, &QPushButton::clicked, calform->pushButton_reset, &QPushButton::clicked);
- }
- void MainWindow::on_tabWidget_tabCloseRequested(int index)
- {
- ui->tabWidget->removeTab(index);
- }
- void MainWindow::on_pushButton_clicked()
- {
- CalForm *calform = new CalForm;
- connect(ui->pushButton, &QPushButton::clicked, calform->ui->pushButton_submit, &QPushButton::clicked);
- }
- // std::vector<CalForm*> calforms;
- // for (const auto &calform : calforms) {
- // calforms.push_back(calform);
- // qDebug() << "submited";
- // calform->ui->pushButton_submit->click();
- // }
- ////////////// form.cpp
- #include "calform.h"
- #include "ui_calform.h"
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QFile>
- #include <QFileDialog>
- #include <QFileInfo>
- #include <QDebug>
- #include <QMessageBox>
- CalForm::CalForm(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::CalForm)
- {
- ui->setupUi(this);
- }
- CalForm::~CalForm()
- {
- delete ui;
- ui->dateEdit_1->setDate(QDate::currentDate());
- ui->dateEdit_2->setDate(QDate::currentDate());
- }
- void CalForm::on_pushButton_submit_clicked()
- {
- MainWindow *mainwindow = new MainWindow();
- qDebug() << "submit clicked";
- // int i = mainwindow->ui->tabWidget->indexOf(mainwindow->ui->tabWidget->setCurrentWidget(mainwindow->ui->tab));
- qDebug() << "tab num." ;
- QDate Mydate1 = ui->dateEdit_1->date();
- QDate Mydate2 = ui->dateEdit_2->date();
- // int year1 = Mydate1.year();
- // int month1 = Mydate1.month();
- // int day1 = Mydate1.day();
- // int year2 = Mydate2.year();
- // int month2 = Mydate2.month();
- // int day2 = Mydate2.day();
- // int first_day = Mydate1.dayOfWeek();
- // int first_friday = 5;
- QString year1 = QString::number(Mydate1.year());
- QString year2 = QString::number(Mydate2.year());
- QString month1 = QString::number(Mydate1.month());
- QString month2 = QString::number(Mydate2.month());
- QString day1 = QString::number(Mydate1.day());
- QString day2 = QString::number(Mydate2.day());
- int day_of_week1 = Mydate1.dayOfWeek();
- int firstFriday_int = Mydate1.day() - day_of_week1 + 5;
- firstFriday_int = (firstFriday_int <= 0) ? firstFriday_int + 7 : firstFriday_int % 7;
- QString firstFriday = QString::number(firstFriday_int);
- QString group = ui->lineEdit_1->text();
- QString course = ui->lineEdit_2->text();
- QString class_time = ""; //ui->lineEdit_3->text();
- QString class_day = "";
- QString time_tmp = "";
- QString day_tmp = "";
- QString class_day_sep = ",";
- QString class_time_sep = "";
- QString num_credits = QString::number(ui->spinBox_1->value());
- QString num_classes = QString::number(ui->spinBox_2->value());
- // qDebug() << "years: " << year1 << year2;
- // qDebug() << "months: " << month1 << month2;
- // qDebug() << "days: " << day1 << day2;
- // qDebug() << "dias de aula: " << dias_de_aula;
- // qDebug() << "1a sexta: " << firstFriday;
- QFile cal_file("current.tex");
- if (cal_file.open(QIODevice::WriteOnly)) {
- QTextStream out(&cal_file);
- if (ui->checkBox_1->isChecked()){
- class_time = ui->lineEdit_3->text();
- if (class_day == ""){
- class_day = "\\segunda";
- day_tmp = "seg";
- } else {
- class_day = class_day+class_day_sep+"\\segunda";
- day_tmp = day_tmp+"/seg";
- // class_time = class_time+ui->lineEdit_3->text();
- }
- }
- if (ui->checkBox_2->isChecked()){
- if (class_time != ""){
- class_time_sep = "/";
- }
- class_time += class_time_sep+ui->lineEdit_4->text();
- if (class_day == ""){
- class_day = "\\terca";
- day_tmp = "ter";
- } else {
- class_day = class_day+class_day_sep+"\\terca";
- day_tmp = day_tmp+"/ter";
- }
- }
- if (ui->checkBox_3->isChecked()){
- if (class_time != ""){
- class_time_sep = "/";
- }
- class_time += class_time_sep+ui->lineEdit_5->text();
- if (class_day == ""){
- class_day = "\\quarta";
- day_tmp = "qua";
- } else {
- class_day = class_day+class_day_sep+"\\quarta";
- day_tmp = day_tmp+"/qua";
- }
- }
- if (ui->checkBox_4->isChecked()){
- if (class_time != ""){
- class_time_sep = "/";
- }
- class_time += class_time_sep+ui->lineEdit_6->text();
- if (class_day == ""){
- class_day = "\\quinta";
- day_tmp = "qui";
- } else {
- class_day = class_day+class_day_sep+"\\quinta";
- day_tmp = day_tmp+"/qui";
- }
- }
- if (ui->checkBox_5->isChecked()){
- if (class_time != ""){
- class_time_sep = "/";
- }
- class_time += class_time_sep+ui->lineEdit_7->text();
- if (class_day == ""){
- class_day = "\\sexta";
- day_tmp = "sex";
- } else {
- class_day = class_day+class_day_sep+"\\sexta";
- day_tmp = day_tmp+"/sex";
- }
- }
- if (ui->checkBox_6->isChecked()){
- if (class_time != ""){
- class_time_sep = "/";
- }
- class_time += class_time_sep+ui->lineEdit_8->text();
- if (class_day == ""){
- class_day = "\\sabado";
- day_tmp = "sab";
- } else {
- class_day = class_day+class_day_sep+"\\sabado";
- day_tmp = day_tmp+"/sab";
- }
- }
- if (ui->checkBox_7->isChecked()){
- if (class_time != ""){
- class_time_sep = "/";
- }
- class_time += class_time_sep+ui->lineEdit_9->text();
- if (class_day == ""){
- class_day = "\\domingo";
- day_tmp = "dom";
- } else {
- class_day = class_day+class_day_sep+"\\domingo";
- day_tmp = day_tmp+"/dom";
- }
- }
- out << "\\ano{"+QString(year1)+"}" << endl;
- out << "\\PeriodoLetivo{"+day1+"}{"+month1+"}{"+day2+"}{"+month2+"}" << endl;
- out << "\\Curso{"+group+"}" << endl;
- out << "\\Disciplina{"+course+"}" << endl;
- out << "\\DiasDeAula{"+class_day+"}" << endl;
- out << "\\dia{"+day_tmp+"}" << endl;
- out << "\\PrimeiraSexta{"+firstFriday+"}" << endl;
- out << "\\hora{"+class_time+"}" << endl;
- out << "\\NumeroDeAulas{"+num_classes+"}" << endl;
- out << "\\Creditos{"+num_credits+"}" << endl;
- out << "\\GerarCalendario" << endl;
- cal_file.flush();
- cal_file.close();
- }
- }
- void CalForm::on_pushButton_reset_clicked()
- {
- ui->lineEdit_1->clear();
- ui->lineEdit_2->clear();
- ui->checkBox_1->setChecked(false);
- ui->checkBox_2->setChecked(false);
- ui->checkBox_3->setChecked(false);
- ui->checkBox_4->setChecked(false);
- ui->checkBox_5->setChecked(false);
- ui->checkBox_6->setChecked(false);
- ui->checkBox_7->setChecked(false);
- ui->dateEdit_1->setDate(QDate::currentDate());
- ui->dateEdit_2->setDate(QDate::currentDate());
- ui->lineEdit_3->clear();
- ui->lineEdit_3->setPlaceholderText("<hh--hh>");
- ui->lineEdit_holidays->setPlaceholderText("<mm-dd,mm-dd,...,mm-dd>");
- ui->spinBox_2->setValue(4);
- // int num_1 = ui->spinBox_2->value()/2 * 15;
- ui->spinBox_1->setValue(30);
- // ui->groupBox_save_cal->hide();
- ui->lineEdit_1->setFocus();
- }
- //void CalForm::on_pushButton_save_cal_OK_clicked()
- //{
- // bool save = true;
- // QString tkc = ".tkc";
- // QString file_to_save = ui->lineEdit_save_cal->text();
- // QString tkc_file = QDir::currentPath()+QDir::separator()+"saved_calendars"+QDir::separator()+file_to_save+tkc;
- // if (file_to_save == ""){
- // qDebug() << "empty file name";
- // save = false;
- // } else {
- // bool fileExists = QFileInfo::exists(tkc_file) && QFileInfo(tkc_file).isFile();
- // if (fileExists){
- // qDebug() << "file" << file_to_save << "already exists";
- // QMessageBox::StandardButton reply;
- // reply = QMessageBox::question(this,tr("Warning"),tr("File already exists! Overwrite it?"),QMessageBox::Yes|QMessageBox::No);
- //// reply.setButtonText(QMessageBox::Yes, tr("Yes"));
- //// reply.setButtonText(QMessageBox::No, tr("No"));
- // if (reply == QMessageBox::Yes){
- // save = true;
- // } else {
- // save = false;
- // }
- // }
- // }
- // if (save) {
- // ui->statusBar->showMessage(tr("Saving calendar..."),1500);
- // QMessageBox::information(this,tr("Calendar saved"),tr("The current calendar was saved in\n")+tkc_file);
- // qDebug() << "saved in " << tkc_file;
- // QFile cal_file(tkc_file);
- // if (cal_file.open(QIODevice::WriteOnly)) {
- // QTextStream out(&cal_file);
- // out <<
- // "/**************************/\n"<<
- // "/* do not change anything */\n"<<
- // "/* except you know */\n"<<
- // "/* what you are doing */\n"<<
- // "/**************************/"
- // << endl;
- // out << ui->lineEdit_1->text() << endl;
- // out << ui->lineEdit_2->text() << endl;
- // out << ui->lineEdit_3->text() << endl;
- // out << ui->spinBox_1 ->value() << endl;
- // out << ui->spinBox_2 ->value() << endl;
- // if (ui->checkBox_1->isChecked()){
- // out << 1 << endl;
- // } else {
- // out << 0 << endl;
- // }
- // if (ui->checkBox_2->isChecked()){
- // out << 1 << endl;
- // } else {
- // out << 0 << endl;
- // }
- // if (ui->checkBox_3->isChecked()){
- // out << 1 << endl;
- // } else {
- // out << 0 << endl;
- // }
- // if (ui->checkBox_4->isChecked()){
- // out << 1 << endl;
- // } else {
- // out << 0 << endl;
- // }
- // if (ui->checkBox_5->isChecked()){
- // out << 1 << endl;
- // } else {
- // out << 0 << endl;
- // }
- // if (ui->checkBox_6->isChecked()){
- // out << 1 << endl;
- // } else {
- // out << 0 << endl;
- // }
- // if (ui->checkBox_7->isChecked()){
- // out << 1 << endl;
- // } else {
- // out << 0 << endl;
- // }
- // out << ui->dateEdit_1->text() << endl;
- // out << ui->dateEdit_2->text() << endl;
- // cal_file.flush();
- // cal_file.close();
- // }
- // ui->groupBox_save_cal->hide();
- // }
- //}
- void CalForm::on_pushButton_clicked()
- {
- QMessageBox::information(this,tr("Holidays"),tr("List of predefined Holidays"));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement