author  unc0rr 
Sat, 25 Jun 2011 17:22:13 +0400  
changeset 5307  dd53755e0fca 
parent 5300  3d1a27042dda 
child 5756  b451fd21ff4c 
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 

3333  33 
#ifdef _WIN32 
34 
#include <Shlobj.h> 

35 
#endif 

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

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

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

38 
#endif 
3333  39 

579  40 
bool checkForDir(const QString & dir) 
41 
{ 

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

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

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

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

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

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

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

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

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

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

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

52 
return true; 
579  53 
} 
54 

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

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

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

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

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

62 
QList<QString>::iterator i = arguments.begin(); 
2035  63 
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

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

65 

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

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

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

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

71 
++i; 

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

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

73 
} 
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 
if(parsedArgs.contains("datadir")) { 
decdf48cffd7
david_ac adding a commandline parameter for the data dir, as requested by svenstaro
nemo
parents:
1969
diff
changeset

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

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

79 
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

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

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

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

84 

2428  85 
if(parsedArgs.contains("configdir")) { 
86 
QFileInfo f(parsedArgs["configdir"]); 

87 
*cConfigDir = f.absoluteFilePath(); 

3932  88 
custom_config = true; 
2428  89 
} 
90 

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

91 
app.setStyle(new QPlastiqueStyle); 
2377  92 

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

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

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

95 
rand(); 
579  96 

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

97 
Q_INIT_RESOURCE(hedgewars); 
579  98 

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

99 
qApp>setStyleSheet 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

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

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

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

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

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

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

106 
"}" 
1154  107 

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

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

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

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

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

112 
"}" 
1893  113 

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

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

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

117 
"}" 
1893  118 

3185  119 
"QComboBox::separator {" 
120 
"border: solid; borderwidth: 3px; bordercolor: #ffcc00;" 

121 
"}" 

122 

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

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

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

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

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

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

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

131 
"}" 
1893  132 

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

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

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

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

136 
"}" 
1893  137 

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

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

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

141 
"}" 
1893  142 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

161 
/* 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

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

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

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

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

166 
"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

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

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

169 
"}" 
1893  170 

171 

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

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

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

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

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

177 
"}" 
1893  178 

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

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

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

181 
"}" 
1154  182 

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

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

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

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

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

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

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

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

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

192 
"}" 
1172  193 

1893  194 
"QTabBar::tab {" 
1897  195 
"borderbottomwidth: 0;" 
1893  196 
"borderradius: 0;" 
197 
"bordertopleftradius: 6px;" 

198 
"bordertoprightradius: 6px;" 

199 
"padding: 3px;" 

200 
"}" 

201 
"QTabBar::tab:!selected {" 

202 
"color: #0d0544;" 

203 
"backgroundcolor: #ffcc00;" 

204 
"}" 

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

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

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

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

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

209 
"}" 
1893  210 

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

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

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

213 
"}" 
1893  214 

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

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

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

217 
"}" 
1893  218 

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

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

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

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

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

223 
"}" 
1172  224 

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

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

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

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

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

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

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

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

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

234 
"width: 25px;" 
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::downarrow {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

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

238 
"}" 
2377  239 

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

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

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

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

243 
"}" 
2377  244 

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

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

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

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

248 
"}" 
1893  249 

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

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

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

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

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

254 
"}" 
1155  255 

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

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

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

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

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

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

261 
"}" 
2377  262 

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

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

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

265 
"}" 
1893  266 

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

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

269 
"}" 
1413  270 

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

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

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

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

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

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

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

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

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

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

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

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

282 
"backgroundcolor: #2d2564;" 
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::indicator {" 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

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

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

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

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

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

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

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

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

293 
"}" 
1450  294 

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

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

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

298 
"}" 
2377  299 

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

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

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

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

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

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

305 
"}" 
3714  306 
"QSlider::groove::horizontal {" 
307 
"height: 2px;" 

308 
"margin: 2px 0px;" 

309 
"backgroundcolor: #ffcc00;" 

310 
"}" 

311 
"QSlider::handle::horizontal {" 

312 
"border: 0px;" 

313 
"margin: 2px 0px;" 

314 
"borderradius: 3px;" 

315 
"backgroundcolor: #ffcc00;" 

316 
"width: 8px;" 

317 
"}" 

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

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

319 
); 
1150  320 

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

321 
bindir>cd("bin"); // workaround over NSIS installer 
579  322 

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

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

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

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

326 
cfgdir>setPath(*cConfigDir); 
2428  327 

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

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

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

332 
cfgdir>cd("Library/Application Support/Hedgewars"); 
3333  333 
#elif defined _WIN32 
334 
char path[1024]; 

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

336 
{ 

337 
cfgdir>cd(path); 

3758  338 
checkForDir(cfgdir>absolutePath() + "/Hedgewars"); 
3333  339 
cfgdir>cd("Hedgewars"); 
340 
} 

3758  341 
else // couldn't retrieve documents folder? almost impossible, but in case fall back to classic path 
3333  342 
{ 
3758  343 
checkForDir(cfgdir>absolutePath() + "/.hedgewars"); 
3333  344 
cfgdir>cd(".hedgewars"); 
345 
} 

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

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

350 
} 
3758  351 

352 
if (checkForDir(cfgdir>absolutePath())) 

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

353 
{ 
3758  354 
// alternative loading/lookup paths 
355 
// TODO: Uncomment paths as they're implemented 

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

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

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

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

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

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

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

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

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

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

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

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

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

369 

370 
// config/save paths 

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

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

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

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

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

376 
} 
579  377 

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

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

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

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

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

382 
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

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

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

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

386 
} 
579  387 

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

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

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

390 
dir.setPath(cfgdir>absolutePath() + "/Data/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

391 

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

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

393 
themes.append(dir.entryList(QDir::AllDirs  QDir::NoDotAndDotDot)); 
5276
562070d3f978
Derive themes list from list of dirs in Themes folder which have icon.png inside
unc0rr
parents:
5257
diff
changeset

394 

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

395 
dir.setPath(datadir>absolutePath() + "/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

396 
themes.append(dir.entryList(QDir::AllDirs  QDir::NoDotAndDotDot)); 
9d18b61bd3eb
 Implement ThemesModel (load theme icons once, store in memory, don't reload from disk every time selection changes)
unc0rr
parents:
5276
diff
changeset

397 

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 
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

399 

5307  400 
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

401 
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

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

403 
QFile tmpfile; 
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

404 
tmpfile.setFileName(QString("%1/Data/Themes/%2/icon.png").arg(cfgdir>absolutePath()).arg(themes.at(i))); 
5276
562070d3f978
Derive themes list from list of dirs in Themes folder which have icon.png inside
unc0rr
parents:
5257
diff
changeset

405 
if (!tmpfile.exists()) 
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

406 
tmpfile.setFileName(QString("%1/Themes/%2/icon.png").arg(datadir>absolutePath()).arg(themes.at(i))); 
5307  407 

408 
if(tmpfile.exists()) 

409 
{ // load icon 

410 
QPair<QIcon, QIcon> ic; 

411 
ic.first = QIcon(QFileInfo(tmpfile).absoluteFilePath()); 

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

412 

5307  413 
QFile previewIconFile; 
414 
previewIconFile.setFileName(QString("%1/Data/Themes/%2/icon@2x.png").arg(cfgdir>absolutePath()).arg(themes.at(i))); 

415 
if (previewIconFile.exists()) ic.second = QIcon(QFileInfo(previewIconFile).absoluteFilePath()); 

416 
else ic.second = QIcon(QString("%1/Themes/%2/icon@2x.png").arg(datadir>absolutePath()).arg(themes.at(i))); 

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 

5307  418 
icons.prepend(ic); 
419 
} 

420 
else 

421 
{ 

422 
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

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

424 
} 
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

425 

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

426 
themesModel = new ThemesModel(themes); 
5307  427 
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

428 
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

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

430 
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

431 
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

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

433 
} 
579  434 

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

435 
QDir tmpdir; 
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

436 
tmpdir.cd(cfgdir>absolutePath()); 
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

437 
tmpdir.cd("Data/Maps"); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

438 
tmpdir.setFilter(QDir::Dirs  QDir::NoDotAndDotDot); 
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

439 
mapList = new QStringList(tmpdir.entryList(QStringList("*"))); 
1210  440 

4513
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
3932
diff
changeset

441 
tmpdir.cd(datadir>absolutePath()); 
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

442 
tmpdir.cd("Maps"); 
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

443 
tmpdir.setFilter(QDir::Dirs  QDir::NoDotAndDotDot); 
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

444 
QStringList tmplist = QStringList(tmpdir.entryList(QStringList("*"))); 
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

445 
for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it) 
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

446 
if (!mapList>contains(*it,Qt::CaseInsensitive)) mapList>append(*it); 
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 

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

448 
tmpdir.cd(cfgdir>absolutePath()); 
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

449 
tmpdir.cd("Data/Scripts/Multiplayer"); 
4513
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
3932
diff
changeset

450 
tmpdir.setFilter(QDir::Files  QDir::NoDotAndDotDot); 
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
3932
diff
changeset

451 
scriptList = new QStringList(tmpdir.entryList(QStringList("*.lua"))); 
1dd97c710f5a
added general scripts to multiplayer and added option for scripts to allow user set schemes or weapon sets.
Henek
parents:
3932
diff
changeset

452 

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

453 
tmpdir.cd(datadir>absolutePath()); 
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

454 
tmpdir.cd("Scripts/Multiplayer"); 
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

455 
tmpdir.setFilter(QDir::Files  QDir::NoDotAndDotDot); 
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

456 
tmplist = QStringList(tmpdir.entryList(QStringList("*.lua"))); 
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

457 
for (QStringList::Iterator it = tmplist.begin(); it != tmplist.end(); ++it) 
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

458 
if (!scriptList>contains(*it,Qt::CaseInsensitive)) scriptList>append(*it); 
2898  459 

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

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

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

462 
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

463 
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

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

465 
cc = QLocale::system().name(); 
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

466 
QFile tmpfile; 
5300  467 
tmpfile.setFileName(cfgdir>absolutePath() + "/Data/Locale/hedgewars_" + cc); 
468 
if (!tmpfile.exists()) tmpfile.setFileName(datadir>absolutePath() + "/Locale/hedgewars_" + cc); 

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

469 
Translator.load(QFileInfo(tmpfile).absoluteFilePath()); 
2948
3f21a9dc93d0
Replace tabs with spaces using 'expand t 4' command
unc0rr
parents:
2913
diff
changeset

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

471 
} 
2898  472 

3679  473 
// Win32 registry setup (used for xfire detection etc.  don't set it if we're running in "portable" mode with a custom config dir) 
474 
#ifdef _WIN32 

3932  475 
if(!custom_config) 
3679  476 
{ 
3932  477 
QSettings registry_hklm("HKEY_LOCAL_MACHINE", QSettings::NativeFormat); 
478 
registry_hklm.setValue("Software/Hedgewars/Frontend", bindir>absolutePath().replace("/", "\\") + "\\hedgewars.exe"); 

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

3679  480 
} 
481 
#endif 

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

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

483 
// 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

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

485 
#endif 
2898  486 

5252  487 
app.form = new HWForm(); 
2377  488 

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

490 
return app.exec(); 
2845  491 
} 