author  sheepluva 
Sat, 22 Oct 2011 01:00:21 +0200  
changeset 6176  19ef039a8474 
parent 6174  2d5717595471 
child 6177  5eba8970e8ae 
permissions  rwrr 
579  1 
/* 
1066  2 
* Hedgewars, a free turn based strategy game 
4976  3 
* Copyright (c) 20052011 Andrey Korotaev <unC0Rr@gmail.com> 
579  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; version 2 of the License 

8 
* 

9 
* This program is distributed in the hope that it will be useful, 

10 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 

11 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

12 
* GNU General Public License for more details. 

13 
* 

14 
* You should have received a copy of the GNU General Public License 

15 
* along with this program; if not, write to the Free Software 

16 
* Foundation, Inc., 59 Temple Place  Suite 330, Boston, MA 021111307, USA 

17 
*/ 

18 

5252  19 
#include "HWApplication.h" 
20 

579  21 
#include <QTranslator> 
22 
#include <QLocale> 

23 
#include <QMessageBox> 

1416
60b86d6fe9ae
Force plastique style, as others don't fully support stylesheets
unc0rr
parents:
1415
diff
changeset

24 
#include <QPlastiqueStyle> 
2034
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

25 
#include <QRegExp> 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

26 
#include <QMap> 
2898  27 
#include <QSettings> 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

28 
#include <QStringListModel> 
1146  29 

579  30 
#include "hwform.h" 
31 
#include "hwconsts.h" 

32 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

33 
#include "HWDataManager.h" 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

34 

3333  35 
#ifdef _WIN32 
36 
#include <Shlobj.h> 

37 
#endif 

5095
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
4976
diff
changeset

38 
#ifdef __APPLE__ 
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
4976
diff
changeset

39 
#include "CocoaInitializer.h" 
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
4976
diff
changeset

40 
#endif 
3333  41 

579  42 
bool checkForDir(const QString & dir) 
43 
{ 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

44 
QDir tmpdir; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

45 
if (!tmpdir.exists(dir)) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

46 
if (!tmpdir.mkdir(dir)) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

47 
{ 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

48 
QMessageBox::critical(0, 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

49 
QObject::tr("Error"), 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

50 
QObject::tr("Cannot create directory %1").arg(dir), 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

51 
QObject::tr("OK")); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

52 
return false; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

53 
} 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

54 
return true; 
579  55 
} 
56 

3697  57 
int main(int argc, char *argv[]) { 
5252  58 
HWApplication app(argc, argv); 
4888  59 
app.setAttribute(Qt::AA_DontShowIconsInMenus,false); 
579  60 

2034
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

61 
QStringList arguments = app.arguments(); 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

62 
QMap<QString, QString> parsedArgs; 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

63 
{ 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

64 
QList<QString>::iterator i = arguments.begin(); 
2035  65 
while(i != arguments.end()) { 
2034
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

66 
QString arg = *i; 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

67 

decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

68 
QRegExp opt("(\\S+)=(.+)"); 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

69 
if(opt.exactMatch(arg)) { 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

70 
parsedArgs[opt.cap(1)] = opt.cap(2); 
2035  71 
i = arguments.erase(i); 
72 
} else { 

73 
++i; 

2034
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

74 
} 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

75 
} 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

76 
} 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

77 

decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

78 
if(parsedArgs.contains("datadir")) { 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

79 
QFileInfo f(parsedArgs["datadir"]); 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

80 
if(!f.exists()) { 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

81 
qWarning() << "WARNING: Cannot open DATA_PATH=" << f.absoluteFilePath(); 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

82 
} 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

83 
*cDataDir = f.absoluteFilePath(); 
3932  84 
custom_data = true; 
2034
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

85 
} 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

86 

2428  87 
if(parsedArgs.contains("configdir")) { 
88 
QFileInfo f(parsedArgs["configdir"]); 

89 
*cConfigDir = f.absoluteFilePath(); 

3932  90 
custom_config = true; 
2428  91 
} 
92 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

93 
app.setStyle(new QPlastiqueStyle); 
2377  94 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

95 
QDateTime now = QDateTime::currentDateTime(); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

96 
srand(now.toTime_t()); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

97 
rand(); 
579  98 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

99 
Q_INIT_RESOURCE(hedgewars); 
579  100 

5849  101 
QString styleSheetFromHell = 
102 
QString( 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

103 
"HWForm,QDialog{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

104 
"backgroundimage: url(\":/res/Background.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

105 
"backgroundposition: bottom center;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

106 
"backgroundrepeat: repeatx;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

107 
"backgroundcolor: #141250;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

108 
"}" 
1154  109 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

110 
"* {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

111 
"color: #ffcc00;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

112 
"selectionbackgroundcolor: #ffcc00;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

113 
"selectioncolor: #00351d;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

114 
"}" 
1893  115 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

116 
"QLineEdit, QListWidget, QTableView, QTextBrowser, QSpinBox, QComboBox, " 
1893  117 
"QComboBox QAbstractItemView, QMenu::item {" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

118 
"backgroundcolor: rgba(13, 5, 68, 70%);" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

119 
"}" 
1893  120 

3185  121 
"QComboBox::separator {" 
122 
"border: solid; borderwidth: 3px; bordercolor: #ffcc00;" 

123 
"}" 

124 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

125 
"QPushButton, QListWidget, QTableView, QLineEdit, QHeaderView, " 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

126 
"QTextBrowser, QSpinBox, QToolBox, QComboBox, " 
1893  127 
"QComboBox QAbstractItemView, IconedGroupBox, " 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

128 
".QGroupBox, GameCFGWidget, TeamSelWidget, SelWeaponWidget, " 
1897  129 
"QTabWidget::pane, QTabBar::tab {" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

130 
"border: solid;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

131 
"borderwidth: 3px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

132 
"bordercolor: #ffcc00;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

133 
"}" 
1893  134 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

135 
"QPushButton:hover, QLineEdit:hover, QListWidget:hover, " 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

136 
"QSpinBox:hover, QToolBox:hover, QComboBox:hover {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

137 
"bordercolor: yellow;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

138 
"}" 
1893  139 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

140 
"QLineEdit, QListWidget,QTableView, QTextBrowser, " 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

141 
"QSpinBox, QToolBox { " 
3019  142 
"borderradius: 10px;" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

143 
"}" 
1893  144 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

145 
"QLineEdit, QLabel, QHeaderView, QListWidget, QTableView, " 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

146 
"QSpinBox, QToolBox::tab, QComboBox, QComboBox QAbstractItemView, " 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

147 
"IconedGroupBox, .QGroupBox, GameCFGWidget, TeamSelWidget, " 
3019  148 
"SelWeaponWidget, QCheckBox, QRadioButton, QPushButton {" 
149 
"font: bold 13px;" 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

150 
"}" 
2517  151 
"SelWeaponWidget QTabWidget::pane, SelWeaponWidget QTabBar::tab:selected {" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

152 
"backgroundposition: bottom center;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

153 
"backgroundrepeat: repeatx;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

154 
"backgroundcolor: #000000;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

155 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

156 
".QGroupBox,GameCFGWidget,TeamSelWidget,SelWeaponWidget {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

157 
"backgroundposition: bottom center;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

158 
"backgroundrepeat: repeatx;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

159 
"borderradius: 16px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

160 
"backgroundcolor: rgba(13, 5, 68, 70%);" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

161 
"padding: 6px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

162 
"}" 
2072
6e0fcbcc3f60
Custom controls implementing paintEvent play poorly with stars, especially SquareLabel
nemo
parents:
2035
diff
changeset

163 
/* Experimenting with PaintOnScreen and borderradius on IconedGroupBox children didn't work out well 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

164 
"IconedGroupBox QComboBox, IconedGroupBox QPushButton, IconedGroupBox QLineEdit, " 
2072
6e0fcbcc3f60
Custom controls implementing paintEvent play poorly with stars, especially SquareLabel
nemo
parents:
2035
diff
changeset

165 
"IconedGroupBox QSpinBox {" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

166 
"borderradius: 0;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

167 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

168 
"IconedGroupBox, IconedGroupBox *, QTabWidget::pane, QTabBar::tab:selected, QToolBox::tab QWidget{" */ 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

169 
"IconedGroupBox, QTabWidget::pane, QTabBar::tab:selected, QToolBox::tab QWidget{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

170 
"backgroundcolor: #130f2c;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

171 
"}" 
1893  172 

173 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

174 
"QPushButton {" 
3019  175 
"borderradius: 8px;" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

176 
"backgroundorigin: margin;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

177 
"backgroundposition: top left;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

178 
"backgroundcolor: rgba(18, 42, 5, 70%);" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

179 
"}" 
1893  180 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

181 
"QPushButton:pressed{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

182 
"bordercolor: white;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

183 
"}" 
1154  184 

6129  185 
"QPushButton:focus {" 
186 
"outline: none;" 

187 
"}" 

188 

189 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

190 
"QHeaderView {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

191 
"borderradius: 0;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

192 
"borderwidth: 0;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

193 
"borderbottomwidth: 3px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

194 
"backgroundcolor: #00351d;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

195 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

196 
"QTableView {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

197 
"alternatebackgroundcolor: #2f213a;" 
3865  198 
"gridlinecolor: transparent;" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

199 
"}" 
1172  200 

1893  201 
"QTabBar::tab {" 
1897  202 
"borderbottomwidth: 0;" 
1893  203 
"borderradius: 0;" 
204 
"bordertopleftradius: 6px;" 

205 
"bordertoprightradius: 6px;" 

206 
"padding: 3px;" 

207 
"}" 

208 
"QTabBar::tab:!selected {" 

209 
"color: #0d0544;" 

210 
"backgroundcolor: #ffcc00;" 

211 
"}" 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

212 
"QSpinBox::upbutton{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

213 
"background: transparent;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

214 
"width: 16px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

215 
"height: 10px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

216 
"}" 
1893  217 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

218 
"QSpinBox::uparrow {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

219 
"image: url(\":/res/spin_up.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

220 
"}" 
1893  221 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

222 
"QSpinBox::downarrow {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

223 
"image: url(\":/res/spin_down.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

224 
"}" 
1893  225 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

226 
"QSpinBox::downbutton {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

227 
"background: transparent;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

228 
"width: 16px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

229 
"height: 10px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

230 
"}" 
1172  231 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

232 
"QComboBox {" 
3019  233 
"borderradius: 10px;" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

234 
"padding: 3px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

235 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

236 
"QComboBox:pressed{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

237 
"bordercolor: white;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

238 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

239 
"QComboBox::dropdown{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

240 
"border: transparent;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

241 
"width: 25px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

242 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

243 
"QComboBox::downarrow {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

244 
"image: url(\":/res/dropdown.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

245 
"}" 
2377  246 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

247 
"VertScrArea {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

248 
"backgroundposition: bottom center;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

249 
"backgroundrepeat: repeatx;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

250 
"}" 
2377  251 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

252 
"IconedGroupBox {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

253 
"borderradius: 16px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

254 
"padding: 2px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

255 
"}" 
1893  256 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

257 
"QGroupBox::title{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

258 
"subcontrolorigin: margin;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

259 
"subcontrolposition: top left;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

260 
"textalign: left;" 
5925
2a9353b800cd
Move options caption to box title. This frees up quite a bit of space at 800x600
nemo
parents:
5849
diff
changeset

261 
"left: 15px;" 
2a9353b800cd
Move options caption to box title. This frees up quite a bit of space at 800x600
nemo
parents:
5849
diff
changeset

262 
"top: 4px;" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

263 
"}" 
1155  264 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

265 
"QCheckBox::indicator:checked{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

266 
"image: url(\":/res/checked.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

267 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

268 
"QCheckBox::indicator:unchecked{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

269 
"image: url(\":/res/unchecked.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

270 
"}" 
2377  271 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

272 
".QWidget{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

273 
"background: transparent;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

274 
"}" 
1893  275 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

276 
"QTabWidget::pane {" 
1893  277 
"bordertopwidth: 2px;" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

278 
"}" 
1413  279 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

280 
"QMenu{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

281 
"backgroundcolor: #ffcc00;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

282 
"margin: 3px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

283 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

284 
"QMenu::item {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

285 
"backgroundcolor: #0d0544;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

286 
"border: 1px solid transparent;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

287 
"font: bold;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

288 
"padding: 2px 25px 2px 20px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

289 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

290 
"QMenu::item:selected {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

291 
"backgroundcolor: #2d2564;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

292 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

293 
"QMenu::indicator {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

294 
"width: 16px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

295 
"height: 16px;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

296 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

297 
"QMenu::indicator:nonexclusive:checked{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

298 
"image: url(\":/res/checked.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

299 
"}" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

300 
"QMenu::indicator:nonexclusive:unchecked{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

301 
"image: url(\":/res/unchecked.png\");" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

302 
"}" 
1450  303 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

304 
"QToolTip{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

305 
"backgroundcolor: #0d0544;" 
3019  306 
"border: 1px solid #ffcc00;" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

307 
"}" 
2377  308 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

309 
":disabled{" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

310 
"color: #a0a0a0;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

311 
"}" 
2072
6e0fcbcc3f60
Custom controls implementing paintEvent play poorly with stars, especially SquareLabel
nemo
parents:
2035
diff
changeset

312 
"SquareLabel, ItemNum {" 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

313 
"backgroundcolor: #000000;" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

314 
"}" 
3714  315 
"QSlider::groove::horizontal {" 
316 
"height: 2px;" 

317 
"margin: 2px 0px;" 

318 
"backgroundcolor: #ffcc00;" 

319 
"}" 

320 
"QSlider::handle::horizontal {" 

321 
"border: 0px;" 

322 
"margin: 2px 0px;" 

323 
"borderradius: 3px;" 

324 
"backgroundcolor: #ffcc00;" 

325 
"width: 8px;" 

326 
"}" 

5849  327 
); 
1150  328 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

329 
bindir>cd("bin"); // workaround over NSIS installer 
579  330 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

331 
if(cConfigDir>length() == 0) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

332 
cfgdir>setPath(cfgdir>homePath()); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

333 
else 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

334 
cfgdir>setPath(*cConfigDir); 
2428  335 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

336 
if(cConfigDir>length() == 0) 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

337 
{ 
1965  338 
#ifdef __APPLE__ 
3758  339 
checkForDir(cfgdir>absolutePath() + "/Library/Application Support/Hedgewars"); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

340 
cfgdir>cd("Library/Application Support/Hedgewars"); 
3333  341 
#elif defined _WIN32 
342 
char path[1024]; 

343 
if(!SHGetFolderPathA(0, CSIDL_PERSONAL, NULL, 0, path)) 

344 
{ 

345 
cfgdir>cd(path); 

3758  346 
checkForDir(cfgdir>absolutePath() + "/Hedgewars"); 
3333  347 
cfgdir>cd("Hedgewars"); 
348 
} 

3758  349 
else // couldn't retrieve documents folder? almost impossible, but in case fall back to classic path 
3333  350 
{ 
3758  351 
checkForDir(cfgdir>absolutePath() + "/.hedgewars"); 
3333  352 
cfgdir>cd(".hedgewars"); 
353 
} 

2428  354 
#else 
3758  355 
checkForDir(cfgdir>absolutePath() + "/.hedgewars"); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

356 
cfgdir>cd(".hedgewars"); 
2428  357 
#endif 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

358 
} 
3758  359 

360 
if (checkForDir(cfgdir>absolutePath())) 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

361 
{ 
3758  362 
// alternative loading/lookup paths 
363 
// TODO: Uncomment paths as they're implemented 

364 
checkForDir(cfgdir>absolutePath() + "/Data"); 

365 
//checkForDir(cfgdir>absolutePath() + "/Data/Forts"); 

366 
//checkForDir(cfgdir>absolutePath() + "/Data/Graphics"); 

367 
//checkForDir(cfgdir>absolutePath() + "/Data/Graphics/Flags"); 

368 
//checkForDir(cfgdir>absolutePath() + "/Data/Graphics/Graves"); 

369 
//checkForDir(cfgdir>absolutePath() + "/Data/Graphics/Hats"); 

370 
//checkForDir(cfgdir>absolutePath() + "/Data/Maps"); 

371 
//checkForDir(cfgdir>absolutePath() + "/Data/Missions"); 

372 
//checkForDir(cfgdir>absolutePath() + "/Data/Missions/Campaign"); 

373 
//checkForDir(cfgdir>absolutePath() + "/Data/Missions/Training"); 

374 
//checkForDir(cfgdir>absolutePath() + "/Data/Sounds"); 

375 
//checkForDir(cfgdir>absolutePath() + "/Data/Sounds/voices"); 

376 
//checkForDir(cfgdir>absolutePath() + "/Data/Themes"); 

377 

378 
// config/save paths 

379 
checkForDir(cfgdir>absolutePath() + "/Demos"); 

380 
checkForDir(cfgdir>absolutePath() + "/Saves"); 

381 
checkForDir(cfgdir>absolutePath() + "/Screenshots"); 

382 
checkForDir(cfgdir>absolutePath() + "/Teams"); 

3914  383 
checkForDir(cfgdir>absolutePath() + "/Logs"); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

384 
} 
579  385 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

386 
datadir>cd(bindir>absolutePath()); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

387 
datadir>cd(*cDataDir); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

388 
if(!datadir>cd("hedgewars/Data")) { 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

389 
QMessageBox::critical(0, QMessageBox::tr("Error"), 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

390 
QMessageBox::tr("Failed to open data directory:\n%1\n" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

391 
"Please check your installation"). 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

392 
arg(datadir>absolutePath()+"/hedgewars/Data")); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

393 
return 1; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

394 
} 
579  395 

5276
562070d3f978
Derive themes list from list of dirs in Themes folder which have icon.png inside
unc0rr
parents:
5257
diff
changeset

396 
{ 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

397 
QStringList themes; 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

398 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

399 
themes.append(HWDataManager::instance().entryList( 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

400 
"Themes", 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

401 
QDir::AllDirs  QDir::NoDotAndDotDot) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

402 
); 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

403 

9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

404 
QList<QPair<QIcon, QIcon> > icons; 
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

405 

5307  406 
themes.sort(); 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

407 
for(int i = themes.size()  1; i >= 0; i) 
5276
562070d3f978
Derive themes list from list of dirs in Themes folder which have icon.png inside
unc0rr
parents:
5257
diff
changeset

408 
{ 
6167  409 
QString file = HWDataManager::instance().findFileForRead( 
410 
QString("Themes/%1/icon.png").arg(themes.at(i)) 

411 
); 

5307  412 

6167  413 
if(QFile::exists(file)) 
5307  414 
{ // load icon 
415 
QPair<QIcon, QIcon> ic; 

6167  416 
ic.first = QIcon(file); 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

417 

6167  418 
// load preview icon 
419 
ic.second = QIcon( 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

420 
HWDataManager::instance().findFileForRead( 
6167  421 
QString("Themes/%1/icon@2x.png").arg(themes.at(i)) 
422 
) 

423 
); 

5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

424 

5307  425 
icons.prepend(ic); 
426 
} 

427 
else 

428 
{ 

429 
themes.removeAt(i); 

5276
562070d3f978
Derive themes list from list of dirs in Themes folder which have icon.png inside
unc0rr
parents:
5257
diff
changeset

430 
} 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

431 
} 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

432 

9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

433 
themesModel = new ThemesModel(themes); 
5307  434 
Q_ASSERT(themes.size() == icons.size()); 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

435 
for(int i = 0; i < icons.size(); ++i) 
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

436 
{ 
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

437 
themesModel>setData(themesModel>index(i), icons[i].first, Qt::DecorationRole); 
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

438 
themesModel>setData(themesModel>index(i), icons[i].second, Qt::UserRole); 
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

439 
} 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

440 
} 
579  441 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

442 
mapList = new QStringList(HWDataManager::instance().entryList( 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

443 
QString("Maps"), 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

444 
QDir::Dirs  QDir::NoDotAndDotDot 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

445 
) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

446 
); 
5238
46ddaf14509d
Enable ~/.hedgewars/Data (or platform equivalent) to override/extend pretty much everything in system Data dir. Obviously desyncing can occur, so this is at user's own risk. Should simplify map etc install. Needs testing.
nemo
parents:
5095
diff
changeset

447 

6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

448 
scriptList = new QStringList(HWDataManager::instance().entryList( 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

449 
QString("Scripts/Multiplayer"), 
6174  450 
QDir::Files, 
6160
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

451 
QStringList("*.lua") 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

452 
) 
863d3edf5690
cleaning up some more, also adding a WIP file. changes: hats in the hat selection are now sorted like this: NoHat, Reserved hats (alphabetically), All other hats (alphabeticall)
sheepluva
parents:
6129
diff
changeset

453 
); 
2898  454 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

455 
QTranslator Translator; 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

456 
{ 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

457 
QSettings settings(cfgdir>absolutePath() + "/hedgewars.ini", QSettings::IniFormat); 
5289
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

458 
QString cc = settings.value("misc/locale", QString()).toString(); 
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

459 
if(cc.isEmpty()) 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

460 
cc = QLocale::system().name(); 
6167  461 

462 
// load locale file into translator 

463 
Translator.load( 

464 
HWDataManager::instance().findFileForRead( 

465 
QString("Locale/hedgewars_" + cc) 

466 
) 

467 
); 

2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

468 
app.installTranslator(&Translator); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

469 
} 
2898  470 

5756  471 
#ifdef _WIN32 
3679  472 
// Win32 registry setup (used for xfire detection etc.  don't set it if we're running in "portable" mode with a custom config dir) 
3932  473 
if(!custom_config) 
3679  474 
{ 
3932  475 
QSettings registry_hklm("HKEY_LOCAL_MACHINE", QSettings::NativeFormat); 
476 
registry_hklm.setValue("Software/Hedgewars/Frontend", bindir>absolutePath().replace("/", "\\") + "\\hedgewars.exe"); 

477 
registry_hklm.setValue("Software/Hedgewars/Path", bindir>absolutePath().replace("/", "\\")); 

3679  478 
} 
479 
#endif 

5095
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
4976
diff
changeset

480 
#ifdef __APPLE__ 
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
4976
diff
changeset

481 
// this creates the autoreleasepool that prevents leaking 
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
4976
diff
changeset

482 
CocoaInitializer initializer; 
15dd764b728c
fix autorelease pools not being set (issue 209) and format code a little
koda
parents:
4976
diff
changeset

483 
#endif 
6176
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

484 
// load external stylesheet if there is any 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

485 
QFile * file = 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

486 
new QFile(HWDataManager::instance().findFileForRead("misc/qt_style.css")); 
2898  487 

6176
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

488 
if (file>exists() && file>open(QIODevice::ReadOnly  QIODevice::Text)) 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

489 
{ 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

490 
QString style = ""; 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

491 
QTextStream in(file); 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

492 
while (!in.atEnd()) 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

493 
{ 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

494 
QString line = in.readLine(); 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

495 
if(!line.isEmpty()) 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

496 
style.append(line); 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

497 
} 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

498 
app.form = new HWForm(NULL, style); 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

499 
} 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

500 
else 
19ef039a8474
frontend will use the data file misc/qt_style.css instead of hardcoded stylesheet  if the file exists
sheepluva
parents:
6174
diff
changeset

501 
app.form = new HWForm(NULL, styleSheetFromHell); 
2377  502 

5252  503 
app.form>show(); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

504 
return app.exec(); 
2845  505 
} 