30
30
#include " StelCore.hpp"
31
31
#include " StelPainter.hpp"
32
32
#include " RefractionExtinction.hpp"
33
+ #include " StelSkyCultureMgr.hpp"
33
34
34
35
#include < QTextStream>
35
36
#include < QFile>
@@ -203,6 +204,100 @@ QString Nebula::getMagnitudeInfoString(const StelCore *core, const InfoStringGro
203
204
return res;
204
205
}
205
206
207
+ QString Nebula::getScreenLabel () const
208
+ {
209
+ return getCultureLabels (GETSTELMODULE (StelSkyCultureMgr)->getScreenLabelStyle ()).constFirst ();
210
+ }
211
+ QString Nebula::getInfoLabel () const
212
+ {
213
+ return getCultureLabels (GETSTELMODULE (StelSkyCultureMgr)->getInfoLabelStyle ()).join (" ; " );
214
+ }
215
+
216
+ QStringList Nebula::getCultureLabels (StelObject::CulturalDisplayStyle style) const
217
+ {
218
+ QStringList labels;
219
+ for (auto &cName: culturalNames)
220
+ {
221
+ QString label;
222
+ switch (style)
223
+ {
224
+ case CulturalDisplayStyle::Abbreviated:
225
+ label=" " ;
226
+ break ;
227
+ case CulturalDisplayStyle::Native:
228
+ label=cName.native ;
229
+ break ;
230
+ case CulturalDisplayStyle::Translated:
231
+ label=cName.translatedI18n ;
232
+ break ;
233
+ case CulturalDisplayStyle::Modern:
234
+ label=nameI18; // fully non-cultural!
235
+ break ;
236
+ case CulturalDisplayStyle::Pronounce:
237
+ label=cName.pronounceI18n ;
238
+ break ;
239
+ case CulturalDisplayStyle::Translit:
240
+ label=cName.transliteration ;
241
+ break ;
242
+ case CulturalDisplayStyle::IPA:
243
+ label=cName.IPA ;
244
+ break ;
245
+ case CulturalDisplayStyle::Pronounce_Translated:
246
+ label=QString (" %1 (%2)" ).arg (cName.pronounceI18n , cName.translatedI18n );
247
+ break ;
248
+ case CulturalDisplayStyle::Pronounce_IPA_Translated:
249
+ label=QString (" %1 [%2] (%3)" ).arg (cName.pronounceI18n , cName.IPA , cName.translatedI18n );
250
+ break ;
251
+ case CulturalDisplayStyle::Pronounce_Translated_Modern:
252
+ label=QString (" %1 (%2, %3)" ).arg (cName.pronounceI18n , cName.translatedI18n , englishName);
253
+ break ;
254
+ case CulturalDisplayStyle::Pronounce_IPA_Translated_Modern:
255
+ label=QString (" %1 [%2] (%3, %4)" ).arg (cName.pronounceI18n , cName.IPA , cName.translatedI18n , englishName);
256
+ break ;
257
+ case CulturalDisplayStyle::Native_Pronounce:
258
+ label=QString (" %1 [%2]" ).arg (cName.native , cName.pronounceI18n );
259
+ break ;
260
+ case CulturalDisplayStyle::Native_Pronounce_Translated:
261
+ label=QString (" %1 [%2] (%3)" ).arg (cName.native , cName.pronounceI18n , cName.translatedI18n );
262
+ break ;
263
+ case CulturalDisplayStyle::Native_Pronounce_IPA_Translated:
264
+ label=QString (" %1 [%2%3] (%4)" ).arg (cName.native , cName.pronounceI18n , cName.IPA .length () > 0 ? QString (" , %1" ).arg (cName.IPA ) : " " , cName.translatedI18n );
265
+ break ;
266
+ case CulturalDisplayStyle::Native_Translated:
267
+ label=QString (" %1 (%2)" ).arg (cName.native , cName.translatedI18n );
268
+ break ;
269
+ case CulturalDisplayStyle::Native_Translit_Translated:
270
+ label=QString (" %1 [%2] (%3)" ).arg (cName.native , cName.transliteration , cName.translatedI18n );
271
+ break ;
272
+ case CulturalDisplayStyle::Native_Translit_Pronounce_Translated:
273
+ label=QString (" %1 [%2, %3] (%4)" ).arg (cName.native , cName.transliteration , cName.pronounceI18n , cName.translatedI18n );
274
+ break ;
275
+ case CulturalDisplayStyle::Native_Translit_Pronounce_IPA_Translated:
276
+ label=QString (" %1 [%2, %3, %4] (%5)" ).arg (cName.native , cName.transliteration , cName.pronounceI18n , cName.IPA , cName.translatedI18n );
277
+ break ;
278
+ case CulturalDisplayStyle::Native_Translit_IPA_Translated:
279
+ label=QString (" %1 [%2, %3] (%4)" ).arg (cName.native , cName.transliteration , cName.IPA , cName.translatedI18n );
280
+ break ;
281
+ case CulturalDisplayStyle::Translit_Translated:
282
+ label=QString (" %1 (%2)" ).arg (cName.transliteration , cName.translatedI18n );
283
+ break ;
284
+ case CulturalDisplayStyle::Translit_Pronounce_Translated:
285
+ label=QString (" %1 [%2] (%3)" ).arg (cName.transliteration , cName.pronounceI18n , cName.translatedI18n );
286
+ break ;
287
+ case CulturalDisplayStyle::Translit_Pronounce_IPA_Translated:
288
+ label=QString (" %1 [%2, %3] (%4)" ).arg (cName.transliteration , cName.pronounceI18n , cName.IPA , cName.translatedI18n );
289
+ break ;
290
+ case CulturalDisplayStyle::Translit_IPA_Translated:
291
+ label=QString (" %1 [%2] (%4)" ).arg (cName.transliteration , cName.IPA , cName.translatedI18n );
292
+ break ;
293
+ // NO default here, else we may forget one.
294
+ }
295
+ labels << label;
296
+ }
297
+ return labels;
298
+ }
299
+
300
+
206
301
QString Nebula::getInfoString (const StelCore *core, const InfoStringGroup& flags) const
207
302
{
208
303
QString str;
@@ -212,6 +307,9 @@ QString Nebula::getInfoString(const StelCore *core, const InfoStringGroup& flags
212
307
if ((flags&Name) || (flags&CatalogNumber))
213
308
oss << " <h2>" ;
214
309
310
+ if (!culturalNames.isEmpty () && flags&Name)
311
+ oss << getInfoLabel () << " <br/>" ;
312
+
215
313
if (!nameI18.isEmpty () && flags&Name)
216
314
{
217
315
oss << getNameI18n ();
@@ -1107,7 +1205,8 @@ void Nebula::drawLabel(StelPainter& sPainter, float maxMagLabel) const
1107
1205
1108
1206
const float shift = 15 .f + (drawHintProportional ? getHintSize (sPainter ) : 0 .f );
1109
1207
1110
- QString str = getNameI18n ();
1208
+ // QString str = getNameI18n();
1209
+ QString str = getScreenLabel ();
1111
1210
if (str.isEmpty () || designationUsage)
1112
1211
str = getDSODesignation ();
1113
1212
0 commit comments