reviewed and iterated with Marko Niemelä
[situare] / src / ui / updatelocation / updatelocationdialog.h
1 /*
2    Situare - A location system for Facebook
3    Copyright (C) 2010  Ixonos Plc. Authors:
4
5       Katri Kaikkonen - katri.kaikkonen@ixonos.com
6       Henri Lampela - henri.lampela@ixonos.com
7
8    Situare is free software; you can redistribute it and/or
9    modify it under the terms of the GNU General Public License
10    version 2 as published by the Free Software Foundation.
11
12    Situare is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with Situare; if not, write to the Free Software
19    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
20    USA.
21 */
22
23 #ifndef UPDATELOCATIONDIALOG_H
24 #define UPDATELOCATIONDIALOG_H
25
26 #include <QDialog>
27 #ifdef Q_WS_MAEMO_5
28 #include <QAbstractKineticScroller>
29 #endif // Q_WS_MAEMO_5
30 #include "texteditautoresizer.h"
31
32 class QCheckBox;
33 class QDialogButtonBox;
34 class QGroupBox;
35 class QLabel;
36 class QLineEdit;
37 class QPushButton;
38 class QScrollArea;
39 class QTextEdit;
40
41 /**
42 * @brief Update Location UI
43 *
44 * UI for update location functionality.
45 *
46 * @class UpdateLocationDialog
47 */
48 class UpdateLocationDialog : public QDialog
49 {
50     Q_OBJECT
51
52 public:
53     /**
54     * @brief Default constructor
55     *
56     * @param userMessage update location dialog message
57     * @param publishOnFacebook update location dialog Facebook publish policity
58     * @param parent
59     */
60     UpdateLocationDialog(const QString &userMessage = "", bool publishOnFacebook = false,
61                          QWidget *parent = 0);
62
63 /*******************************************************************************
64  * MEMBER FUNCTIONS AND SLOTS
65  ******************************************************************************/
66
67 public slots:
68
69     /**
70     * @brief Public slot, which is used to set the street address to location label
71     *
72     * @param address Street address, result from SituareService's reverseGeo
73     */
74     void setAddress(const QString &address);
75
76 private slots:
77
78     /**
79     * @brief Private slot, which is used to connect send button
80     *
81     */
82     void sendUpdate();
83
84 /*******************************************************************************
85  * SIGNALS
86  ******************************************************************************/
87
88 signals:
89     /**
90     * @brief Signal Signal for requestLocationUpdate from SituareEngine via MainWindow class
91     *
92     * @param status Status message
93     * @param publish Publish on Facebook
94     */
95     void statusUpdate(const QString &status, const bool &publish);
96
97 /*******************************************************************************
98  * DATA MEMBERS
99  ******************************************************************************/
100
101 private:
102     QLabel *m_locationLabel; ///< Pointer to locationLabel
103     QCheckBox *m_checkBox; ///< Pointer to CheckBox
104     QTextEdit *m_textEdit; ///< Pointer to TextEdit
105 };
106
107 #endif // UPDATELOCATIONDIALOG_H