int main(int argc, char *argv[]) { QApplication a(argc, argv); InterfaceController c; MainWindow w; c.window=&w; QObject::connect(&w,SIGNAL(addButtonPressed()),&c,SLOT(callAddFilmDialog())); QObject::connect(&w,SIGNAL(getInfo(QString)),&c,SLOT(callInfoDialog(QString))); QObject::connect(&c,SIGNAL(addFilm(Film)),&w,SLOT(addFilm(Film))); QObject::connect(&w,SIGNAL(editButtonPressed(QString)),&c,SLOT(callEditFilmDialog(QString))); QObject::connect(&c,SIGNAL(editFilm(Film)),&w,SLOT(editFilm(Film))); QObject::connect(&w,SIGNAL(deleteButtonPressed(QString)),&c,SLOT(callDeleteFilmDialog(QString))); c.initTable(); w.show(); return a.exec(); }
/*! ** @brief Load configuration from a file ** ** @param[In] filename Filename to load from ** ** @return True/False */ bool ClassicPrint::load(QString filename) { QDomDocument doc("ClassicPrint"); QFile file(filename); if (!file.open(QIODevice::ReadOnly)) { return false; } if (!doc.setContent(&file)) { return false; } // Get the root element QDomElement root = doc.documentElement(); if (root.tagName() != "ClassicPrint") { return false; } // Iterate through all elements QDomNode n = root.firstChild(); while (!n.isNull()) { // Try to convert the node to an element. QDomElement e = n.toElement(); if(!e.isNull()) { if (e.tagName() == "LastPhotoFolder") { m_photo_folder = e.text(); } else if (e.tagName() == "LastSaveFolder") { m_save_folder = e.text(); } else if (e.tagName() == "LastSaveWidth") { m_save_width = e.text().toInt(); } else if (e.tagName() == "LastSaveHeight") { m_save_height = e.text().toInt(); } else if (e.tagName() == "Lenses") { QDomNode child = e.firstChild(); while (!child.isNull()) { // Try to convert the node to an element. QDomElement child_elem = child.toElement(); if(!child_elem.isNull()) { ClassicPrintLens* lens = new ClassicPrintLens(); if (lens->load_node(doc, child_elem)) { addLens(lens); } } child = child.nextSibling(); } } else if (e.tagName() == "Films") { QDomNode child = e.firstChild(); while (!child.isNull()) { // Try to convert the node to an element. QDomElement child_elem = child.toElement(); if(!child_elem.isNull()) { ClassicPrintFilm* film = new ClassicPrintFilm(); if (film->load_node(doc, child_elem)) { addFilm(film); } } child = child.nextSibling(); } } else if (e.tagName() == "Processes") { QDomNode child = e.firstChild(); while (!child.isNull()) { // Try to convert the node to an element. QDomElement child_elem = child.toElement(); if(!child_elem.isNull()) { ClassicPrintProcessing* proc = new ClassicPrintProcessing(this); if (proc->load_node(doc, child_elem)) { addProcessing(proc); } } child = child.nextSibling(); } } else if (e.tagName() == "CurrentLens") { delete m_current_lens; m_current_lens = new ClassicPrintLens(); if (!m_current_lens->load_node(doc, e)) { delete m_current_lens; m_current_lens = NULL; } } else if (e.tagName() == "CurrentFilm") { delete m_current_film; m_current_film = new ClassicPrintFilm(); if (!m_current_film->load_node(doc, e)) { delete m_current_film; m_current_film = NULL; } } else if (e.tagName() == "CurrentProcessing") { delete m_current_processing; m_current_processing = new ClassicPrintProcessing(this); if (!m_current_processing->load_node(doc, e)) { delete m_current_processing; m_current_processing = NULL; } } } n = n.nextSibling(); } // If any of the current settings are missing then pick the first saved setting if (!m_current_lens && (m_lenses.size() > 0)) { setCurrentLens(m_lenses.begin().value()->name()); } if (!m_current_film && (m_films.size() > 0)) { setCurrentFilm(m_films.begin().value()->name()); } if (!m_current_processing && (m_processes.size() > 0)) { setCurrentProcessing(m_processes.begin().value()->name()); } return true; }