This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
hf_naptar/MainWindow.cpp
2020-05-10 12:24:31 +02:00

131 lines
4 KiB
C++

#include "MainWindow.h"
void MainWindow::markDay(){
cal->clear_marks();
int ev,honap,nap;
cal->get_date((guint&)ev,(guint&)honap,(guint&)nap);
for(int x=1; x < 32;++x){
if(np.foglalt(ev, honap+1, x))
cal->mark_day(x);
}
}
void MainWindow::daySelected(){
int ev,honap,nap;
cal->get_date((guint&)ev,(guint&)honap,(guint&)nap);
Datum day(ev,honap+1,nap);
if(np.foglalt(day))
for(Naptar::iterator it = np.begin();it != np.end();++it){
if(*it == day)
label->set_label(it->getMegjegyzes());
}
else
label->set_label("Erre a napra nincs bejegyzés!");
}
void MainWindow::about(){
if(aboutw != NULL)
return;
aboutw = new AboutWindow;
aboutw->signal_hide().connect(sigc::mem_fun(*this, &MainWindow::aboutWinClose));
aboutw->show();
}
void MainWindow::aboutWinClose(){
delete aboutw;
aboutw = NULL;
}
void MainWindow::addDate() {
if(addDatew != NULL)
return;
addDatew = new AddDateWindow(np);
addDatew->signal_hide().connect(sigc::mem_fun(*this, &MainWindow::addDateWinClose));
addDatew->show();
}
void MainWindow::addAnniversary(){
if(addDatew != NULL)
return;
addDatew = new AnniversaryWindow(np);
addDatew->signal_hide().connect(sigc::mem_fun(*this, &MainWindow::addDateWinClose));
addDatew->show();
}
void MainWindow::addDateWinClose(){
delete addDatew;
addDatew = NULL;
markDay();
daySelected();
}
MainWindow::MainWindow(BaseObjectType* b,const Glib::RefPtr<Gtk::Builder>& refGlade) : Gtk::Window(b), np(),builder(refGlade),aboutw(NULL),addDatew(NULL){
builder->get_widget("cal",cal);
builder->get_widget("label",label);
cal->signal_day_selected().connect(sigc::mem_fun(*this,&MainWindow::daySelected) );
cal->signal_prev_month().connect(sigc::mem_fun(*this,&MainWindow::markDay) );
cal->signal_next_month().connect(sigc::mem_fun(*this,&MainWindow::markDay) );
cal->signal_prev_year().connect(sigc::mem_fun(*this,&MainWindow::markDay) );
cal->signal_next_year().connect(sigc::mem_fun(*this,&MainWindow::markDay) );
builder->get_widget("import",mitem);
mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::importFile));
builder->get_widget("export",mitem);
mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::exportFile));
builder->get_widget("quit",mitem);
mitem->signal_activate().connect(sigc::mem_fun(*this,&Gtk::Window::close));
builder->get_widget("about",mitem);
mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::about));
builder->get_widget("add-date",mitem);
mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::addDate));
builder->get_widget("add-anv",mitem);
mitem->signal_activate().connect(sigc::mem_fun(*this,&MainWindow::addAnniversary));
daySelected();
markDay();
}
MainWindow::~MainWindow() {
delete cal;
delete label;
}
void MainWindow::importFile() {
Gtk::FileChooserDialog dialog("Kérem válasszon egy CSV fájlt",Gtk::FILE_CHOOSER_ACTION_OPEN);
dialog.set_transient_for(*this);
Glib::RefPtr<Gtk::FileFilter> file_filter1 = Gtk::FileFilter::create();
file_filter1->add_pattern("*.csv");
file_filter1->set_name("Pontosvesszővel elválasztott CSV fájl");
dialog.add_filter(file_filter1);
dialog.add_button("_Mégse", Gtk::RESPONSE_CANCEL);
dialog.add_button("Kiválasztás", Gtk::RESPONSE_OK);
int result = dialog.run();
if(result == Gtk::RESPONSE_OK)
np.importCSV(dialog.get_filename().c_str());
}
void MainWindow::exportFile() {
Gtk::FileChooserDialog dialog("Válasszon mentési helyet",Gtk::FILE_CHOOSER_ACTION_SAVE);
dialog.set_transient_for(*this);
Glib::RefPtr<Gtk::FileFilter> file_filter1 = Gtk::FileFilter::create();
file_filter1->add_pattern("*.csv");
file_filter1->set_name("Pontosvesszővel elválasztott CSV fájl");
dialog.add_filter(file_filter1);
dialog.add_button("_Mégse", Gtk::RESPONSE_CANCEL);
dialog.add_button("Kiválasztás", Gtk::RESPONSE_OK);
int result = dialog.run();
if(result == Gtk::RESPONSE_OK)
np.exportCSV(dialog.get_filename().c_str());
}