Exemple #1
0
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;
}