#ifndef TEXTSWITCHER_H
#define TEXTSWITCHER_H

#include "switcher.h"
#include "selectswitcher.h"
#include "gbuilder.h"
#include <QLineEdit>
#include <QComboBox>

class TextSwitcher : public Switcher
{
private:
    QLineEdit *widget;
    QList<QString> options;
    bool isOptions;
    QComboBox *combo;

public:
    TextSwitcher();

    ~TextSwitcher() {
        delete widget;
    }

    virtual QWidget* getComponent(QWidget *parent);

    virtual QString buildSwitcherString();

    virtual QDomNode& getProjectNode(QDomElement& el) {
        Switcher::getProjectNode(el);

        if (isOptions) el.setAttribute("value", combo->currentText());
        else  el.setAttribute("value", widget->text());

        return el;
    }


    virtual void setValuesFromNode(QDomElement &el);

    virtual void setSavedValues(QDomElement &el) {
        if (isOptions) {
            for (int i = 0; i < combo->count(); i++) {
                if (combo->itemText(i) == el.attribute("value", NONE_STR)) {
                   combo->setCurrentIndex(i);
                   return;
                }
            }
        }
        else widget->setText(el.attribute("value", ""));
    }
};

#endif // TEXTSWITCHER_H
