131 lines
4 KiB
C++
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());
|
|
}
|