source: observatorio/simulacion/SimEscenariosEconomicos-Qtgui/svgViewer.H

simulacion
Last change on this file was 6c79fb4, checked in by Alejandro <amujica@…>, 10 years ago

Muestra el indice de dependencia de productos importados en el modulo de precios

  • Property mode set to 100644
File size: 4.4 KB
Line 
1/*
2  Copyright (C) 2012
3  Alejandro Mujica (amujica@cenditel.gob.ve)
4  Erwin Paredes (eparedes@cenditel.gob.ve)
5  José Ruiz (jruiz@cenditel.gob.ve)
6  Rodolfo Rangel (rrangel@cenditel.gob.ve)
7  Julie Vera (jvera@cenditel.gob.ve)
8
9  CENDITEL Fundación Centro Nacional de Desarrollo e Investigación en
10  Tecnologías Libres
11
12  Este programa es software libre; Usted puede usarlo bajo los términos de la
13  licencia de software GPL versión 2.0 de la Free Software Foundation.
14
15  Este programa se distribuye con la esperanza de que sea útil, pero SIN
16  NINGUNA GARANTÍA; tampoco las implícitas garantías de MERCANTILIDAD o
17  ADECUACIÓN A UN PROPÓSITO PARTICULAR.
18  Consulte la licencia GPL para más detalles. Usted debe recibir una copia
19  de la GPL junto con este programa; si no, escriba a la Free Software
20  Foundation Inc. 51 Franklin Street,5 Piso, Boston, MA 02110-1301, USA.
21*/
22
23/*
24  Este archivo contiene la definición de la clase SvgViewer.
25
26  Autor: Alejandro J. Mujica
27  Fecha:
28*/
29
30# ifndef SVG_VIEWER_H
31# define SVG_VIEWER_H
32
33# include <QtGui>
34
35# include <svgPanel.H>
36# include <wheelFilter.H>
37# include <ioManager.H>
38
39/** Abstrae un visor de imágenes svg.
40  *
41  * Permite visualizar la imagen, evaluar los click que se efectúen sobre ésta,
42  * acercamientos y alejamientos, impresión y moverse por la imagen por medio
43  * de barras de desplazamiento y/o arrastrando la imagen mediante
44  * "drag and drop".
45  *
46  * @author Alejandro J. Mujica
47  */
48class SvgViewer : public QWidget {
49
50    Q_OBJECT
51
52    // Factor por el cual se multiplicará el zoom.
53    static const double FACTOR_FOR_ZOOM;
54
55    QString xmlFileName;
56
57    QString dotFileName;
58
59    QString svgFileName;
60
61    QString graphName;
62
63    QPoint originalScrollPosition;
64
65    Graph graph;
66
67    QSize originalSize;
68
69    QVBoxLayout layout;
70
71    QScrollArea scrollArea;
72
73    SvgPanel svgWidget;
74
75    double scaleFactor;
76
77    QToolBar toolBar;
78
79    QAction actPrint;
80
81    QAction actZoomIn;
82
83    QAction actZoomOut;
84
85    QAction actFitToWindow;
86
87    QAction actNormalSize;
88
89    QAction actSaveImage;
90
91    QAction * actGenerateIndicators;
92
93    WheelFilter vpfilter;
94
95    WheelFilter vbfilter;
96
97    WheelFilter hbfilter;
98
99    void buildGraph();
100
101    void initGui();
102
103    void createActions();
104
105    void createToolBar();
106
107protected:
108    /// @overload
109    void closeEvent(QCloseEvent *);
110
111    /// @overload
112    bool eventFilter(QObject *, QEvent *);
113
114public:
115
116    /// @overload
117    void wheelEvent(QWheelEvent *);
118
119    SvgViewer(const QString &, const QString &, const QString &,
120              const QString &, QWidget * parent = 0);
121
122    /// Asigna un nuevo valor a la escala.
123    void setScaleFactor(const double & factor) { scaleFactor = factor; }
124
125    /// Redimensiona segun el tamaño original de la imagen y el valor de zoom.
126    void resizeSvg();
127
128    /// Escala la imagen.
129    void scaleImage(const double &);
130
131    /// Ajusta las barras de desplazamiento según el tamaño de la imagen.
132    void adjustSscrollBar(QScrollBar *, const double &);
133
134    /** Lee el archivo svg dado y visualiza la imagen.
135      *
136      * @param fileName nombre del archivo svg.
137      */
138    void load(const QString & fileName);
139
140    /// Inicializa la imagen a visualizar.
141    void init();
142
143    /** Consulta el grafo que se está visualizando.
144      *
145      * @return el grafo que se está visualizando.
146      */    Graph & getGraph();
147
148public slots:
149    /// Llama al controlador de la impresora para imprimir la imagen.
150    void slotPrint();
151
152    /// Efectúa acercamiento de la imagen.
153    void slotZoomIn();
154
155    /// Efectúa alejamiento de la imagen.
156    void slotZoomOut();
157
158    /// Ajusta la imagen lo mejor que pueda a la ventana sin deformarla.
159    void slotFitToWindow();
160
161    /// Coloca la imagen en su tamaño original.
162    void slotNormalSize();
163
164    /// Respalda las posiciones de las barras de desplazamiento.
165    void slotPanelMousePressed();
166
167    /** Verifica si alguno de los nodos fue seleccionado y de ser así lo envía
168      * para que se visualicen sus valores.
169      */
170    void slotPanelMouseClicked(QPoint);
171
172    /// Mueve las barras de desplazamiento para que se mueva la imagen.
173    void slotPanelMouseMoved(QPoint);
174
175    /// Permite almacenar la imagen actual donde el usuario lo desee.
176    void slotSaveImage();
177
178    /// Escribe los archivos de indicadores.
179    void slotGenenerateIndicators();
180
181signals:
182    /// Señal que se emite cuando un nodo es seleccionado.
183    void signalNodeClicked(Graph::Node *);
184};
185
186# endif
Note: See TracBrowser for help on using the repository browser.