1 /* ============================================================
2 * Falkon - Qt web browser
3 * Copyright (C) 2010-2018 David Rosca <nowrep@gmail.com>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 * ============================================================ */
18 #ifndef QZCOMMON_H
19 #define QZCOMMON_H
20 
21 #include <QDebug>
22 #include <QFlags>
23 #include <QtWebEngineVersion>
24 
25 #ifdef FALKON_SHAREDLIBRARY
26 #define FALKON_EXPORT Q_DECL_EXPORT
27 #else
28 #define FALKON_EXPORT Q_DECL_IMPORT
29 #endif
30 
31 #ifndef Q_UNLIKELY
32 #define Q_UNLIKELY(x) x
33 #endif
34 
35 #ifndef Q_LIKELY
36 #define Q_LIKELY(x) x
37 #endif
38 
39 #ifndef QSL
40 #define QSL(x) QStringLiteral(x)
41 #endif
42 
43 #ifndef QL1S
44 #define QL1S(x) QLatin1String(x)
45 #endif
46 
47 #ifndef QL1C
48 #define QL1C(x) QLatin1Char(x)
49 #endif
50 
51 namespace Qz
52 {
53 // Version of session.dat file
54 extern const int sessionVersion;
55 
56 FALKON_EXPORT extern const char *APPNAME;
57 FALKON_EXPORT extern const char *VERSION;
58 FALKON_EXPORT extern const char *AUTHOR;
59 FALKON_EXPORT extern const char *COPYRIGHT;
60 FALKON_EXPORT extern const char *WWWADDRESS;
61 FALKON_EXPORT extern const char *BUGSADDRESS;
62 FALKON_EXPORT extern const char *WIKIADDRESS;
63 
64 enum BrowserWindowType {
65     BW_FirstAppWindow,
66     BW_OtherRestoredWindow,
67     BW_NewWindow,
68     BW_MacFirstWindow
69 };
70 
71 enum CommandLineAction {
72     CL_NoAction,
73     CL_OpenUrl,
74     CL_OpenUrlInCurrentTab,
75     CL_OpenUrlInNewWindow,
76     CL_StartWithProfile,
77     CL_StartWithoutAddons,
78     CL_NewTab,
79     CL_NewWindow,
80     CL_ShowDownloadManager,
81     CL_ToggleFullScreen,
82     CL_StartPrivateBrowsing,
83     CL_StartNewInstance,
84     CL_StartPortable,
85     CL_ExitAction,
86     CL_WMClass
87 };
88 
89 enum ObjectName {
90     ON_WebView,
91     ON_TabBar,
92     ON_TabWidget,
93     ON_BrowserWindow
94 };
95 
96 enum NewTabPositionFlag {
97     NT_SelectedTab = 1,
98     NT_NotSelectedTab = 2,
99     NT_CleanTab = 4,
100     NT_TabAtTheEnd = 8,
101     NT_NewEmptyTab = 16,
102 
103     NT_SelectedNewEmptyTab = NT_SelectedTab | NT_TabAtTheEnd | NT_NewEmptyTab,
104     NT_SelectedTabAtTheEnd = NT_SelectedTab | NT_TabAtTheEnd,
105     NT_NotSelectedTabAtTheEnd = NT_NotSelectedTab | NT_TabAtTheEnd,
106     NT_CleanSelectedTabAtTheEnd = NT_SelectedTab | NT_TabAtTheEnd | NT_CleanTab,
107     NT_CleanSelectedTab = NT_CleanTab | NT_SelectedTab,
108     NT_CleanNotSelectedTab = NT_CleanTab | NT_NotSelectedTab
109 };
110 
111 Q_DECLARE_FLAGS(NewTabPositionFlags, NewTabPositionFlag)
112 Q_DECLARE_OPERATORS_FOR_FLAGS(Qz::NewTabPositionFlags)
113 
114 }
115 
116 #if defined(Q_OS_WIN) || defined(Q_OS_OS2)
117 #define DEFAULT_THEME_NAME QSL("windows")
118 #elif defined(Q_OS_MACOS)
119 #define DEFAULT_THEME_NAME QSL("mac")
120 #elif defined(Q_OS_UNIX)
121 #define DEFAULT_THEME_NAME QSL("linux")
122 #else
123 #define DEFAULT_THEME_NAME QSL("default")
124 #endif
125 
126 #ifdef Q_OS_WIN
127 #define DISABLE_CHECK_UPDATES false
128 #else
129 #define DISABLE_CHECK_UPDATES true
130 #endif
131 
132 #define DEFAULT_CHECK_DEFAULTBROWSER false
133 
134 #ifdef Q_OS_WIN
135 #define DEFAULT_DOWNLOAD_USE_NATIVE_DIALOG false
136 #else
137 #define DEFAULT_DOWNLOAD_USE_NATIVE_DIALOG true
138 #endif
139 
140 #endif // QZCOMMON_H
141