1/*
2 *   Copyright 2012 Aleix Pol Gonzalez <aleixpol@kde.org>
3 *
4 *   This program is free software; you can redistribute it and/or modify
5 *   it under the terms of the GNU Library General Public License as
6 *   published by the Free Software Foundation; either version 2 or
7 *   (at your option) any later version.
8 *
9 *   This program is distributed in the hope that it will be useful,
10 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
11 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 *   GNU General Public License for more details
13 *
14 *   You should have received a copy of the GNU Library General Public
15 *   License along with this program; if not, write to the
16 *   Free Software Foundation, Inc.,
17 *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 */
19
20import QtQuick 2.0
21import org.kde.plasma.components 2.0 as PlasmaComponents
22import org.kde.analitza 1.0
23
24Item {
25    property Component compactRepresentation: Component {
26        PlasmaComponents.Button {
27            iconSource: "kalgebra"
28            onClicked: plasmoid.togglePopup()
29        }
30    }
31    property string displayedFunction
32    onDisplayedFunctionChanged: {
33        plots.clear()
34        view.addFunction(displayedFunction)
35    }
36
37    PlasmaComponents.TextField {
38        id: input
39        anchors {
40            top: parent.top
41            left: parent.left
42            right: parent.right
43        }
44        onAccepted: {
45            displayedFunction = text
46            plasmoid.writeConfig("function", text)
47        }
48    }
49
50    Component.onCompleted: {
51        plasmoid.addEventListener('ConfigChanged', function() {
52            displayedFunction = plasmoid.readConfig("function")
53            input.text = displayedFunction
54        });
55    }
56
57    Graph2D {
58        id: view
59        anchors {
60            fill: parent
61            topMargin: input.height
62        }
63
64        model: PlotsModel { id: plots }
65
66        ticksShown: false
67    }
68}
69