This repository was archived by the owner on Sep 23, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmainwindow.h
More file actions
103 lines (88 loc) · 3.02 KB
/
mainwindow.h
File metadata and controls
103 lines (88 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/* Copyright (c) 2010, Antonie Jovanoski
*
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact e-mail: Antonie Jovanoski <minimoog77_at_gmail.com>
*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QSqlDatabase>
#include <QSystemTrayIcon>
#include "qmlapplicationviewer.h"
class NetworkAccessManagerFactory;
class OAuthTwitter;
class QTweetUserStream;
class QTweetUser;
class QTweetDMStatus;
class QTweetStatus;
class TweetQmlListModel;
class MentionsQmlListModel;
class DirectMessagesQmlListModel;
class SearchQmlListModel;
class UserInfo;
class UserTimelineListModel;
class ConversationListModel;
class QMenu;
class MainWindow : public QmlApplicationViewer
{
Q_OBJECT
Q_PROPERTY(QString userScreenName READ userScreenName NOTIFY userScreenNameChanged)
Q_PROPERTY(bool authed READ authed NOTIFY authedChanged)
public:
explicit MainWindow(QWidget *parent = 0);
void startUp();
Q_INVOKABLE void authorize(const QString& username, const QString& password);
Q_INVOKABLE void updateButtonClicked(const QString& id, const QString& text, const QString& screenName);
QString userScreenName() const;
bool authed() const;
signals:
void userScreenNameChanged();
void authedChanged();
void showNotification(const QString& notificationText);
private slots:
void authorizationFinished();
void authorizationFailed();
void verifyCredentialsFinished(const QTweetUser& userinfo);
void directMessageNewFinished(const QTweetDMStatus& dm);
void statusUpdateFinished(const QTweetStatus& status);
void changeUserPass();
protected:
void closeEvent(QCloseEvent *e);
//void changeEvent(QEvent *e);
private:
void setupTrayIcon();
void createDatabase(const QString& databaseName);
void updateCurrentPage();
void createDeclarativeView();
void readSettings();
void writeSettings();
OAuthTwitter *m_oauthTwitter;
QTweetUserStream *m_userStream;
TweetQmlListModel* m_tweetListModel;
MentionsQmlListModel* m_mentionsListModel;
DirectMessagesQmlListModel *m_directMessagesListModel;
SearchQmlListModel *m_searchListModel;
UserTimelineListModel *m_userTimelineListModel;
UserInfo *m_userInfo;
ConversationListModel *m_conversationListModel;
qint64 m_userId;
QString m_userScreenName;
bool m_authed;
QSqlDatabase m_database;
QSystemTrayIcon *m_trayIcon;
QMenu *m_trayIconMenu;
};
#endif // MAINWINDOW_H