/*
    PIQt Utils - Qt utilites for PIP

    Ivan Pelipenko peri4ko@yandex.ru, Andrey Bychkov work.a.b@yandex.ru

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef pivaluetree_edit_parameters_H
#define pivaluetree_edit_parameters_H

#include "pivaluetree.h"
#include "ui_pivaluetree_edit_parameters.h"

#include <QDialog>
#include <QFormLayout>
#include <QLabel>
#include <QMenu>

class PIVariantEdit;

class PIValueTreeEditParameters
	: public QDialog
	, public Ui::PIValueTreeEditParameters {
	Q_OBJECT

public:
	PIValueTreeEditParameters(QWidget * parent = nullptr);
	~PIValueTreeEditParameters();

	bool showFor(PIValueTree & vt);

	QMenu menu_grouping;

private:
	void
	createAttributes(QList<PIVariantEdit *> & list, QFormLayout * lay, const PIVariantMap & attr = PIVariantMap(), bool inv_filter = false);
	void applyAttributes(PIValueTree & vt);
	void checkAttribute(PIValueTree & vt, PIString an, PIVariant def);

	int last_IDs_count = -1;
	QList<PIVariantEdit *> ve_attr, ve_array;

private slots:
	void on_comboType_currentIndexChanged(int);
	void on_checkLabel_toggled(bool on);
};


#endif
