-
Notifications
You must be signed in to change notification settings - Fork 6
/
mainwindow.h
359 lines (279 loc) · 11.2 KB
/
mainwindow.h
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
/****************************************************************************
// elforkane Copyright (C) 2012 yahia nouah <[email protected]>
//
// This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
// This is free software, and you are welcome to redistribute it
// under certain conditions; type `show c' for details.
//
// The hypothetical commands `show w' and `show c' should show the appropriate
// parts of the General Public License. Of course, your program's commands
// might be different; for a GUI interface, you would use an "about box".
//
// You should also get your employer (if you work as a programmer) or school,
// if any, to sign a "copyright disclaimer" for the program, if necessary.
// For more information on this, and how to apply and follow the GNU GPL, see
// <http://www.gnu.org/licenses/>.
//
// The GNU General Public License does not permit incorporating your program
// into proprietary programs. If your program is a subroutine library, you
// may consider it more useful to permit linking proprietary applications with
// the library. If this is what you want to do, use the GNU Lesser General
// Public License instead of this License. But first, please read
// <http://www.gnu.org/philosophy/why-not-lgpl.html>.
// ----------------------------------------------------------
** If you have questions regarding the use of this file, please contact
** yahia nouah ([email protected])
** $elforkane_END_LICENSE$
**
****************************************************************************/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QObject>
#include <QMainWindow>
//#include "network.h"
#include "database.h"
#include "sceenbase.h"
#include "fs-wallpapers/fullscreen.h"
#include <QtGlobal>
#include <QSystemTrayIcon>
#include <QSpinBox>
#include <QProgressBar>
#include <QToolButton>
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#include "playermultimedia.h"
#else
#include "player.h"
#endif
QT_FORWARD_DECLARE_CLASS(QLabel)
QT_FORWARD_DECLARE_CLASS(QSlider)
QT_FORWARD_DECLARE_CLASS(QAbstractButton)
QT_FORWARD_DECLARE_CLASS(QWinTaskbarButton)
QT_FORWARD_DECLARE_CLASS(QWinTaskbarProgress)
QT_FORWARD_DECLARE_CLASS(QWinThumbnailToolBar)
QT_FORWARD_DECLARE_CLASS(QWinThumbnailToolButton)
///--------------------------Pixmap-------------------------------
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
Database *database;
Sceenbase *sceenbase;
// netWork *NetWork;
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
PlayerMultimedia *mPlayer;
#else
Player *mPlayer;
#endif
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
//slot for terminal
void setPage(int page);
void setSora(int sora);
void setJozaa(int jozaa);
void setHizb(int hizb);
void setAya(int sora,int aya);
bool m_plaOne;
void toggleFullScreen();
bool m_minimizToTry;//تصغير بجانب الساغة
void mediaPlay();//القراءة
protected:
void resizeEvent ( QResizeEvent *);
void moveEvent ( QMoveEvent * );
bool eventFilter(QObject *obj, QEvent *ev);
void changeEvent(QEvent *e);
virtual void closeEvent(QCloseEvent *e );
signals:
void popupVisible(bool );
private slots:
bool mediaPlayInLocale(QString dirPath);
bool mediaPlayAyat(QString dirPath);
void mediaPlayInNetwork();
// QPixmap disignePage(QString safha);
//! [ انشاء ادوات البرنامج]
void setupToolbarIcons();//انشاء الادوات
// void creatMediaControles(); //انشاء لوحة ادوات الوسائط المتحركة
void actMediaExec();
void comboMediaExec();
void chargeDataTools();//تحميل البيانات على الادوات
void menuTefsirAndTranslation();
//systry
void createTrayIcon();
void iconActivated(QSystemTrayIcon::ActivationReason reason);
void showMessage();
void setshowInfo(bool show);
//! [setting]
void loadSetting();
void saveSetting();
void stupActionsShortcuts();
//! [التنقل الى اماكن محددة]
void setCurentPos(int pos); //الانتقال الى الموضع المحدد
//slot for spin
void goAya();
void goJozaa();
void goHizb();
void goPage();
void goSura(int index);//الذهاب الى السورة المحددة
// void goAyaSelected();//الذهاب الى الاية المحددة عند النقر على الاية
//! [animation]
//لحركة التلقائية عند تغيير الصفحات
// void animPageRight();//تحريك الي لليمين
// void animPageLeft();//تحريك الي لليسار
void moveSelection(int top,int hight,int x1,int x2); //تحريك التحديد الى الموضع الجديد
void fullScreenPixmap(int top,int high,int x1,int x2);//استخراج نص الاية الحالية لوضعية ملء الشاشة
//! [phonon]
void mediaFinished();//انتهاء القراءة
//! [phononEffect]
//! [generale]
void getOption(int tab,QString title);
void locateThemePath(); //التحقق من مسارات الصور للسمة ان كانت موجودة
void hidePopup();
// void newPages();//رسم صفحات جديدة
void convertTextToHtm(QString text);
void chargeLastAndFirstAya();//معرفة اول واخر اية سواء في الصفحة او السورة
void setSpinAyaMaximum(int index);
void translationChanged();
void tefsirChanged();
void txtQuran();
//! [actions]
void on_actionNextPage_triggered();
void on_actionPrevPage_triggered();
void on_actionNextSura_triggered();
void on_actionPrevSura_triggered();
void on_actionNextAya_triggered();
void on_actionPrevAya_triggered();
void on_actionOptions_triggered();
void on_actionFullScreen_triggered();
void on_actionAddReceter_triggered();
void on_actionRemoveReceter_triggered();//حذف المقرئ المحدد
void on_actionAbout_triggered();
void on_actionQuranText_triggered();
void on_actionEditeReceter_triggered();
void on_actionRceterEdite_triggered();
void editReciter();//تحرير المقرئ
void on_actionRepeatOption_triggered();
//other tools
void comboBoxResiter_activated(int index);
void comboBoxSoraJozaa_currentIndexChanged(int index);
void treeWidgetIndex_itemActivated(QTreeWidgetItem *item, int );
void lineEditSearchTree_textChanged(const QString &arg1);
void popup_toggled(bool checked);
void on_graphicsView_customContextMenuRequested(const QPoint );
void on_actionNavigation_toggled(bool arg1);
void on_toolButtonGoSearch_clicked();
void on_treeWidgetSearch_itemActivated(QTreeWidgetItem *item, int );
void on_lineEditSearch_returnPressed();
void on_lineEditSearchAnd_returnPressed();
void on_actionEnableAnimFull_toggled(bool arg1);
void on_actionMemoriz_triggered(bool checked);
//void desableHifdhPage();
void runtimerScreen();
//void on_actionScriptDownload_triggered();
void createTaskbar();
void createThumbnailToolBar();
void updateThumbnailToolBar();
void on_actionPlayPause_triggered();
void on_actionQuit_triggered();
void on_actionStopMedia_triggered();
private:
Ui::MainWindow *ui;
// QTextEdit *textEdit;
QStringList listShortcut;
QLabel *labelTransTefsir;
//متغيرات البرنامج
bool m_animEnabled;
bool m_fitInView;
bool m_showPopup;
bool m_autoRepeatSura;
bool m_autoRepeatPage;
bool m_autoRepeatOne;
bool m_autoRepeatFromTo;
bool m_autoPlayNext;
bool isPlay;//هل القراة تشتغل
bool m_showInfo;//عرض المعلومات بجانب الساعة
bool m_textIcon;
bool m_isRepeatNumber;
bool m_showMediaControl;
bool isTefsirPopup;
bool m_showMenu;
bool m_showSelection;
bool m_reciteBasmala;
bool m_standardTool;
int m_id; //الموضع الحالي
int m_sura; //رقم السورة الحالية
int m_aya; //رقم الاية الحالية
int m_jozaa; //رقم الجزء الحالي
int m_hizb; //رقم الحزب الحالي
int m_robaa; //رقم الربع الحالي
// int m_pHieght; //طول الصفحة
// int m_pWith; //عرض الصفحة
bool m_restoreDefaults;
int m_curentSafha; //الصفحة الحالية المحددة
// int m_difer; //الفرق بين الصفحة اليسرة واليمنى عند تحريك الصفحة بواسطة المؤشر
int m_px; // موضع الصور س
int m_numPlayed; // مرات القراءة حتى الان
int m_repeatNumber; // عدد التكرار
int m_receter; //المقرئ
int m_repeatAyaFirst; //اول الاية في الصفحة او السورة
int m_repeatAyaLast;//اخر الاية في الصفحة او السورة
int m_infoDely;//مدة بقاء المعلومة في ايقونة النظام
int m_curTranslation;// الترجمة الحالية
int m_locale;
bool m_saveMediaLoaded;
QString m_curentRiwaya;
//---------------------------------
bool m_fullAnimEnable;//تفعيل الحركة في وضع ملء الشاشة
QString m_fullbackgroundDir;
bool m_fullAnimated;
//int m_fullIndex;
// void loadPlugin();
// QList<SceenFullInterface *>myListSceen;
// QList<QString > listSceenName;
//-----------------------------------
QList<QAction *>myListActionTrans;
QString m_lng;//اللغة الحالية
QString m_appPath;//مسار بينات البرنامج
// QString m_y;
QString m_soundName;
QString m_themeFolder;//مجلد السمة
QString m_soundPath; //مسار الصوت الحالي
QString m_soundUrl;//موقع الصوت الحالي
QString m_layouDir;//اتجاه البرنامج
QColor m_selectColor;//لون التحديد
//Phonon
QProgressBar *progress;
//------systry-----
QSystemTrayIcon *trayIcon;
QAction *actionMinimiz;
QAction *actionRestore;
QAction *actionSowInfo;
//---------tool in toolbar
QComboBox *comboSura; //القائمة المنسدلة للسور
QSpinBox *spinAya; //اداة ادخال رقم الاية
QSpinBox *spinJozaa; //اداة ادخال رقم الجزء
QSpinBox *spinHizb; //اداة ادخال رقم الحزب
QSpinBox *spinSafha; //اداة ادخال رقم الصفحة
QAction *actTansTefsir; //زر عرض قائمة التفاسير والتراجم
QComboBox *comboBoxReciter; //القائمة المنسدلة للمقرئين
QToolButton *btnMenu;
QAction *actMediaSafha;
QAction *actMediaSura;
QAction *actMediaAya;
QAction *actMediaJozaa;
QAction *actMediaHizb;
QAction *actMediaReciter;
int oldCurPos;
QTimer *timerScreen;
SceenFull *mSceenFull;
/*
QWinTaskbarButton* taskbarButton;
QWinTaskbarProgress* taskbarProgress;
QWinThumbnailToolBar* thumbnailToolBar;
QWinThumbnailToolButton *playToolButton;
QWinThumbnailToolButton *forwardToolButton;
QWinThumbnailToolButton *backwardToolButton;
*/
};
#endif // MAINWINDOW_H