QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
qetapp.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2026 The QElectroTech Team
3 This file is part of QElectroTech.
4
5 QElectroTech is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9
10 QElectroTech is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef QET_APP_H
19#define QET_APP_H
20
22#include "qetarguments.h"
24
25#include <QByteArray>
26#include <QPalette>
27#include <QSystemTrayIcon>
28#include <QTranslator>
29
30class QSplashScreen;
31class QMenu;
32class QAction;
33class QMainWindow;
34
35#define QETAPP_COMMON_TBT_PROTOCOL "commontbt"
36#define QETAPP_COMPANY_TBT_PROTOCOL "companytbt"
37#define QETAPP_CUSTOM_TBT_PROTOCOL "customtbt"
38
39class AboutQET;
46class QETProject;
49class RecentFiles;
50
55class QETApp : public QObject
56{
57 Q_OBJECT
58 // constructors, destructor
59 public:
60 QETApp();
61 ~QETApp() override;
62
63 private:
64 QETApp(const QETApp &);
65
66 // methods
67 public:
68 static QETApp *instance();
69 void setLanguage(const QString &);
70 static QString langFromSetting ();
71 void switchLayout(Qt::LayoutDirection);
72 static void printHelp();
73 static void printVersion();
74 static void printLicense();
75
77
81 static QList<TitleBlockTemplatesCollection *> availableTitleBlockTemplatesCollections();
83
84 static QString commonElementsDir();
85 static QString companyElementsDir();
86 static QString customElementsDir();
87 static QString commonElementsDirN();
88 static QString companyElementsDirN();
89 static QString customElementsDirN();
90 static void resetCollectionsPath();
91 static QString commonTitleBlockTemplatesDir();
92 static QString companyTitleBlockTemplatesDir();
93 static QString customTitleBlockTemplatesDir();
94 static QString userMacrosDir();
95 static bool registerProject(QETProject *);
96 static bool unregisterProject(QETProject *);
97 static QMap<uint, QETProject *> registeredProjects();
98 static QETProject *project(const uint &);
99 static int projectId(const QETProject *);
100 static QString configDir();
101 static QString dataDir();
102 static QString documentDir();
103 static QString pictureDir();
104 static QString languagesPath();
105 static QString realPath(const QString &);
106 static QString symbolicPath(const QString &);
107 static QStringList handledFileExtensions();
108 static QStringList handledFiles(const QList<QUrl> &);
111
112#ifdef QET_ALLOW_OVERRIDE_CED_OPTION
113 public:
114 static void overrideCommonElementsDir(const QString &);
115 private:
120 static QString m_overrided_common_elements_dir;
121#endif
122
123#ifdef QET_ALLOW_OVERRIDE_CTBTD_OPTION
124 public:
125 static void overrideCommonTitleBlockTemplatesDir(const QString &);
126 private:
132 static QString common_tbt_dir_;
133#endif
134
135#ifdef QET_ALLOW_OVERRIDE_CD_OPTION
136 public:
137 static void overrideConfigDir(const QString &);
138 private:
144 static QString config_dir;
145#endif
146
147#ifdef QET_ALLOW_OVERRIDE_DD_OPTION
148 public:
149 static void overrideDataDir(const QString &);
150 private:
156 static QString data_dir;
157#endif
158
159 public:
160 static void overrideLangDir(const QString &);
165 static QString lang_dir;
166 static QFont diagramTextsFont(qreal = -1.0);
167 static QFont diagramTextsItemFont(qreal = -1.0);
168 static QFont dynamicTextsItemFont(qreal = -1.0);
169 static QFont indiTextsItemFont (qreal = -1.0);
170 static QETDiagramEditor *diagramEditorForFile(const QString &);
171 static QETDiagramEditor *diagramEditorAncestorOf (const QWidget *child);
172 static QList<QETDiagramEditor *> diagramEditors();
174 static QList<QETElementEditor *> elementEditors();
175 static QList<QETElementEditor *> elementEditors(QETProject *);
176 static QList<QETTitleBlockTemplateEditor *> titleBlockTemplateEditors();
177 static QList<QETTitleBlockTemplateEditor *> titleBlockTemplateEditors(QETProject *);
180
181#ifdef Q_OS_DARWIN
182 public:
183 bool eventFilter(QObject *object, QEvent *) override;
184#endif
185
186 // attributes
187 private:
189 QTranslator qtTranslator;
190 QTranslator qetTranslator;
191 QSystemTrayIcon *m_qsti;
192 QSplashScreen *m_splash_screen;
194 QAction *quitter_qet;
195 QAction *reduce_appli;
203 QAction *new_diagram;
204 QAction *new_element;
205 QHash<QMainWindow *, QByteArray> window_geometries;
206 QHash<QMainWindow *, QByteArray> window_states;
214 QSignalMapper signal_map;
223
228 static QMap<uint, QETProject *> registered_projects_;
229 static uint next_project_id;
233
234 static QString m_common_element_dir;
236
237 static QString m_company_element_dir;
239
240 static QString m_custom_element_dir;
242
244 static QString m_user_custom_tbt_dir;
245 static QString m_user_macros_dir;
246
247 public slots:
248 void systray(QSystemTrayIcon::ActivationReason);
249 void reduceEveryEditor();
250 void restoreEveryEditor();
257 void newDiagramEditor();
258 void newElementEditor();
259 bool closeEveryEditor();
260 void setMainWindowVisible(QMainWindow *, bool);
261 void invertMainWindowVisibility(QWidget *);
262 void useSystemPalette(bool);
263 void quitQET();
265 void openFiles(const QETArguments &);
266 void openProjectFiles(const QStringList &);
267 void openElementFiles(const QStringList &);
268 void openElementLocations(const QList<ElementsLocation> &);
269 void openTitleBlockTemplate(const TitleBlockTemplateLocation &, bool = false);
270 void openTitleBlockTemplate(const QString &);
271 void openTitleBlockTemplateFiles(const QStringList &);
272 void configureQET();
273 void aboutQET();
275 void receiveMessage(int instanceId, QByteArray message);
276
277 private:
278 template <class T> QList<T *> detectWindows() const;
279 template <class T> void setMainWindowsVisible(bool);
280 QList<QWidget *> floatingToolbarsAndDocksForMainWindow(QMainWindow *) const;
281 void parseArguments();
282 void initSplashScreen();
283 void setSplashScreenStep(const QString & = QString());
284 void initLanguage();
285 void initFonts();
286 void initStyle();
287 void initConfiguration();
288 void initSystemTray();
289 void buildSystemTrayMenu();
290 void checkBackupFiles();
291 void checkCrashDump();
292 void fetchWindowStats(
293 const QList<QETDiagramEditor *> &,
294 const QList<QETElementEditor *> &,
295 const QList<QETTitleBlockTemplateEditor *> &
296 );
297 template <class T> void addWindowsListToMenu(QMenu *, const QList<T *> &);
298 static int projectIdFromString(const QString &);
299 static QETProject *projectFromString(const QString &);
300};
301
302#endif
Definition elementscollectioncache.h:32
bool every_template_reduced
Definition qetapp.h:212
static TitleBlockTemplatesFilesCollection * customTitleBlockTemplatesCollection()
QETApp::customTitleBlockTemplatesCollection.
Definition qetapp.cpp:488
void configureQET()
QETApp::configureQET Allows the user to configure QET by launching an appropriate dialog.
Definition qetapp.cpp:2041
void newElementEditor()
QETApp::newElementEditor launches a new element editor.
Definition qetapp.cpp:427
static QString customElementsDir()
QETApp::customElementsDir.
Definition qetapp.cpp:656
QAction * reduce_diagrams
Definition qetapp.h:197
static QString m_custom_element_dir
Definition qetapp.h:240
bool every_template_visible
Definition qetapp.h:213
static RecentFiles * elementsRecentFiles()
QETApp::elementsRecentFiles.
Definition qetapp.cpp:1680
void openProjectFiles(const QStringList &)
QETApp::openProjectFiles Opens a list of files. Files are opened in the first visible schematic edito...
Definition qetapp.cpp:1835
void initStyle()
QETApp::initStyle Setup the gui style.
Definition qetapp.cpp:2289
static QString configDir()
QETApp::configDir Return the QET configuration folder, i.e. the path to the folder in which QET will ...
Definition qetapp.cpp:933
QAction * quitter_qet
Definition qetapp.h:194
QMenu * menu_systray
Definition qetapp.h:193
static bool m_company_element_dir_is_set
Definition qetapp.h:238
static QFont diagramTextsFont(qreal=-1.0)
QETApp::diagramTextsFont The font to use By default the font is "Liberation Sans" and size 9.
Definition qetapp.cpp:1358
bool every_element_reduced
Definition qetapp.h:210
void setLanguage(const QString &)
QETApp::setLanguage Change the language used by the application.
Definition qetapp.cpp:208
static RecentFiles * m_projects_recent_files
Definition qetapp.h:230
void openFiles(const QETArguments &)
QETApp::openFiles Open files passed as arguments.
Definition qetapp.cpp:1814
static QString m_user_custom_tbt_dir
Definition qetapp.h:244
void reduceEveryEditor()
QETApp::reduceEveryEditor Minimizes all application windows in the systray.
Definition qetapp.cpp:332
static TitleBlockTemplate * default_titleblock_template_
Definition qetapp.h:232
QTranslator qtTranslator
Definition qetapp.h:189
void invertMainWindowVisibility(QWidget *)
QETApp::invertMainWindowVisibility Display a window (schema editors / element editors) if this is hid...
Definition qetapp.cpp:1723
static RecentFiles * m_elements_recent_files
Definition qetapp.h:231
static QString dataDir()
QETApp::dataDir Return the QET data folder, i.e. the path to the folder in which QET will save log-fi...
Definition qetapp.cpp:960
QAction * new_element
Definition qetapp.h:204
static QString documentDir()
QETApp::documentDir Return the standard-folder where to save users documents This directory is genera...
Definition qetapp.cpp:985
static bool registerProject(QETProject *)
QETApp::registerProject.
Definition qetapp.cpp:2825
void restoreElementEditors()
QETApp::restoreElementEditors Restore all element editors in the systray.
Definition qetapp.cpp:389
void initConfiguration()
QETApp::initConfiguration Reads and takes into account the configuration of the application....
Definition qetapp.cpp:2312
void showDiagnosticsReport()
QETApp::showDiagnosticsReport Discussion #644, step 5: the manual "Help > Diagnostics > Savereport" a...
Definition qetapp.cpp:2673
QAction * reduce_templates
Definition qetapp.h:201
QSplashScreen * m_splash_screen
Definition qetapp.h:192
static QETApp * instance()
QETApp::instance.
Definition qetapp.cpp:195
QList< QWidget * > floatingToolbarsAndDocksForMainWindow(QMainWindow *) const
QETApp::floatingToolbarsAndDocksForMainWindow.
Definition qetapp.cpp:2099
void restoreDiagramEditors()
QETApp::restoreDiagramEditors Restore all schema editors in the systray.
Definition qetapp.cpp:368
void openTitleBlockTemplateFiles(const QStringList &)
QETApp::openTitleBlockTemplateFiles Open provided title block template files. If a title block templa...
Definition qetapp.cpp:2000
static QString realPath(const QString &)
QETApp::realPath Allows you to know the absolute path of the * .elmt file corresponding to a symbolic...
Definition qetapp.cpp:1029
void checkBackupFiles()
QETApp::checkBackupFiles Check for backup files. If backup was found, open a dialog and ask user what...
Definition qetapp.cpp:2556
static TitleBlockTemplatesFilesCollection * companyTitleBlockTemplatesCollection()
QETApp::companyTitleBlockTemplatesCollection.
Definition qetapp.cpp:467
void setMainWindowVisible(QMainWindow *, bool)
QETApp::setMainWindowVisible Show or hide a window (schema editors / element editors).
Definition qetapp.cpp:1695
QETApp(const QETApp &)
void reduceTitleBlockTemplateEditors()
QETApp::reduceTitleBlockTemplateEditors Reduce all known template editors.
Definition qetapp.cpp:398
void addWindowsListToMenu(QMenu *, const QList< T * > &)
Definition qetapp.cpp:2436
QSignalMapper signal_map
Definition qetapp.h:214
void useSystemPalette(bool)
QETApp::useSystemPalette Change the application palette.
Definition qetapp.cpp:1737
static bool m_common_element_dir_is_set
Definition qetapp.h:235
static QString companyElementsDirN()
QETApp::companyElementsDirN like QString QETApp::companyElementsDir but without "/" at the end.
Definition qetapp.cpp:742
static QString m_user_company_tbt_dir
Definition qetapp.h:243
bool every_element_visible
Definition qetapp.h:211
static bool m_custom_element_dir_is_set
Definition qetapp.h:241
QAction * restore_templates
Definition qetapp.h:202
static QString commonElementsDir()
QETApp::commonElementsDir.
Definition qetapp.cpp:592
static QStringList handledFiles(const QList< QUrl > &)
QETApp::handledFiles.
Definition qetapp.cpp:1120
static int projectId(const QETProject *)
QETApp::projectId.
Definition qetapp.cpp:2890
QAction * restore_appli
Definition qetapp.h:196
static TitleBlockTemplatesFilesCollection * m_custom_tbt_collection
Definition qetapp.h:226
static QETProject * project(const uint &)
QETApp::project.
Definition qetapp.cpp:2873
~QETApp() override
QETApp::~QETApp.
Definition qetapp.cpp:166
QAction * restore_diagrams
Definition qetapp.h:198
void receiveMessage(int instanceId, QByteArray message)
QETApp::receiveMessage openFiles from message.
Definition qetapp.cpp:1625
bool every_editor_reduced
Definition qetapp.h:207
static TitleBlockTemplatesFilesCollection * m_common_tbt_collection
Definition qetapp.h:224
static TitleBlockTemplate * defaultTitleBlockTemplate()
QETApp::defaultTitleBlockTemplate.
Definition qetapp.cpp:1576
static int projectIdFromString(const QString &)
QETApp::projectIdFromString.
Definition qetapp.cpp:2455
void buildSystemTrayMenu()
QETApp::buildSystemTrayMenu builds the icon menu in the systray.
Definition qetapp.cpp:2499
static QString languagesPath()
QETApp::languagesPath.
Definition qetapp.cpp:1278
static QString companyElementsDir()
QETApp::companyElementsDir.
Definition qetapp.cpp:693
static void printLicense()
QETApp::printLicense Display license on standard output.
Definition qetapp.cpp:2799
static QList< QETTitleBlockTemplateEditor * > titleBlockTemplateEditors()
QETApp::titleBlockTemplateEditors.
Definition qetapp.cpp:1511
void setMainWindowsVisible(bool)
Definition qetapp.cpp:1659
static QETApp * m_qetapp
Definition qetapp.h:188
QHash< QMainWindow *, QByteArray > window_states
Definition qetapp.h:206
static QETDiagramEditor * diagramEditorForFile(const QString &)
QETApp::diagramEditorForFile.
Definition qetapp.cpp:1146
static QString commonTitleBlockTemplatesDir()
QETApp::commonTitleBlockTemplatesDir.
Definition qetapp.cpp:790
void newDiagramEditor()
QETApp::newDiagramEditor launches a new schema editor.
Definition qetapp.cpp:417
void systray(QSystemTrayIcon::ActivationReason)
QETApp::systray Manages QSystemTrayIcon related events.
Definition qetapp.cpp:297
bool non_interactive_execution_
non_interactive_execution_ Whether the application will end without any user interaction
Definition qetapp.h:221
void setSplashScreenStep(const QString &=QString())
QETApp::setSplashScreenStep Changes the text of the splash screen and takes events into account....
Definition qetapp.cpp:2222
static QString userMacrosDir()
QETApp::userMacrosDir.
Definition qetapp.cpp:885
static QList< QETElementEditor * > elementEditors()
QETApp::elementEditors.
Definition qetapp.cpp:1502
static QETDiagramEditor * diagramEditorAncestorOf(const QWidget *child)
QETApp::diagramEditorAncestorOf.
Definition qetapp.cpp:1167
static uint next_project_id
Definition qetapp.h:229
void restoreEveryEditor()
QETApp::restoreEveryEditor Restores all application windows in the systray.
Definition qetapp.cpp:345
static QString lang_dir
lang_dir Directory containing localization files.
Definition qetapp.h:165
static QList< TitleBlockTemplatesCollection * > availableTitleBlockTemplatesCollections()
QETApp::availableTitleBlockTemplatesCollections.
Definition qetapp.cpp:508
static TitleBlockTemplatesFilesCollection * m_company_tbt_collection
Definition qetapp.h:225
static QString commonElementsDirN()
QETApp::commonElementsDirN like QString QETApp::commonElementsDir but without "/" at the end.
Definition qetapp.cpp:730
void openTitleBlockTemplate(const TitleBlockTemplateLocation &, bool=false)
QETApp::openTitleBlockTemplate Launch a new title block template editor to edit the given template.
Definition qetapp.cpp:1972
void parseArguments()
QETApp::parseArguments Parse the following arguments:
Definition qetapp.cpp:2142
static QTextOrientationSpinBoxWidget * createTextOrientationSpinBoxWidget()
QETApp::createTextOrientationSpinBoxWidget Instantiates a QTextOrientationSpinBoxWidget and configure...
Definition qetapp.cpp:1553
static QString customTitleBlockTemplatesDir()
QETApp::customTitleBlockTemplatesDir.
Definition qetapp.cpp:853
static QString customElementsDirN()
QETApp::customElementsDirN like QString QETApp::customElementsDir but without "/" at the end.
Definition qetapp.cpp:754
void initLanguage()
QETApp::initLanguage Determine and apply the language to use for the application.
Definition qetapp.cpp:2236
static QFont indiTextsItemFont(qreal=-1.0)
QETApp::indiTextsItemFont The default font to use for independent text item.
Definition qetapp.cpp:1450
static QList< QETDiagramEditor * > diagramEditors()
QETApp::diagramEditors.
Definition qetapp.cpp:1471
QAction * new_diagram
Definition qetapp.h:203
static ElementsCollectionCache * collectionCache()
QETApp::collectionCache.
Definition qetapp.cpp:436
void restoreTitleBlockTemplateEditors()
QETApp::restoreTitleBlockTemplateEditors Restore all known template editors.
Definition qetapp.cpp:407
QHash< QMainWindow *, QByteArray > window_geometries
Definition qetapp.h:205
static QString pictureDir()
QETApp::pictureDir Returns the standard-folder of users pictures This directory is generally C:/Users...
Definition qetapp.cpp:1004
QAction * reduce_elements
Definition qetapp.h:199
void quitQET()
QETApp::quitQET Request the closing of all windows; if the user accepts them, the application quits.
Definition qetapp.cpp:1766
void reduceElementEditors()
QETApp::reduceElementEditors Minimize all element editors in systray.
Definition qetapp.cpp:379
void openElementLocations(const QList< ElementsLocation > &)
QETApp::openElementLocations Open the elements whose location is passed in parameter....
Definition qetapp.cpp:1932
QList< T * > detectWindows() const
Definition qetapp.cpp:1643
static bool unregisterProject(QETProject *)
QETApp::unregisterProject Cancel the recording of the project project.
Definition qetapp.cpp:2852
void aboutQET()
QETApp::aboutQET Open the dialog about qet.
Definition qetapp.cpp:2081
static QString m_user_macros_dir
Definition qetapp.h:245
static QString companyTitleBlockTemplatesDir()
QETApp::companyTitleBlockTemplatesDir.
Definition qetapp.cpp:820
bool every_diagram_visible
Definition qetapp.h:209
void reduceDiagramEditors()
QETApp::reduceDiagramEditors Minimize all schema editors in the systray.
Definition qetapp.cpp:358
static void printHelp()
QETApp::printHelp Display help and usage on standard output.
Definition qetapp.cpp:2756
static QFont dynamicTextsItemFont(qreal=-1.0)
QETApp::dynamicTextsFont the default font of dynamic element text item.
Definition qetapp.cpp:1426
void checkCrashDump()
QETApp::checkCrashDump Discussion #644, step 5: if the crash handler (step 4) left an unretrieved dum...
Definition qetapp.cpp:2645
static QFont diagramTextsItemFont(qreal=-1.0)
QETApp::diagramTextsItemFont the font to use in independent text items.
Definition qetapp.cpp:1392
void initSplashScreen()
QETApp::initSplashScreen Initializes the splash screen if and only if the execution is interactive....
Definition qetapp.cpp:2203
bool closeEveryEditor()
QETApp::closeEveryEditor Close all editors.
Definition qetapp.cpp:1333
static TitleBlockTemplatesCollection * titleBlockTemplatesCollection(const QString &)
QETApp::titleBlockTemplatesCollection.
Definition qetapp.cpp:529
void checkRemainingWindows()
QETApp::checkRemainingWindows Check if there are any windows (hidden or not) and exit if there are no...
Definition qetapp.cpp:1783
QAction * reduce_appli
Definition qetapp.h:195
QAction * restore_elements
Definition qetapp.h:200
static RecentFiles * projectsRecentFiles()
QETApp::projectsRecentFiles.
Definition qetapp.cpp:1670
QTranslator qetTranslator
Definition qetapp.h:190
void initFonts()
QETApp::initFonts Setup the fonts to use in the application.
Definition qetapp.cpp:2245
static QStringList handledFileExtensions()
QETApp::handledFileExtensions.
Definition qetapp.cpp:1104
bool every_diagram_reduced
Definition qetapp.h:208
void switchLayout(Qt::LayoutDirection)
Definition qetapp.cpp:285
static QMap< uint, QETProject * > registeredProjects()
QETApp::registeredProjects.
Definition qetapp.cpp:2809
static QString langFromSetting()
QETApp::langFromSetting.
Definition qetapp.cpp:264
static QETProject * projectFromString(const QString &)
QETApp::projectFromString.
Definition qetapp.cpp:2488
static ElementsCollectionCache * collections_cache_
Definition qetapp.h:227
QSystemTrayIcon * m_qsti
Definition qetapp.h:191
static QETDiagramEditor * diagramEditor(QETProject *project)
QETApp::diagramEditor.
Definition qetapp.cpp:1481
QPalette initial_palette_
System color palette.
Definition qetapp.h:222
void initSystemTray()
QETApp::initSystemTray Build the icon in the systray and its menu.
Definition qetapp.cpp:2366
void fetchWindowStats(const QList< QETDiagramEditor * > &, const QList< QETElementEditor * > &, const QList< QETTitleBlockTemplateEditor * > &)
QETApp::fetchWindowStats Updates the booleans concerning the state of the windows.
Definition qetapp.cpp:2693
QETArguments qet_arguments_
Command-line arguments parser.
Definition qetapp.h:215
static void resetCollectionsPath()
QETApp::resetCollectionsPath Reset the path of the user and common element collection and also the us...
Definition qetapp.cpp:767
void openElementFiles(const QStringList &)
QETApp::openElementFiles Open the elements files passed in parameter. If an element is already open,...
Definition qetapp.cpp:1881
static QMap< uint, QETProject * > registered_projects_
Definition qetapp.h:228
static void overrideLangDir(const QString &)
QETApp::overrideLangDir Redefines the path of the folder containing the language files.
Definition qetapp.cpp:1265
static QString symbolicPath(const QString &)
QETApp::symbolicPath Build the symbolic path (of the type custom: // tools_pervers / sado_maso / cont...
Definition qetapp.cpp:1069
static TitleBlockTemplatesFilesCollection * commonTitleBlockTemplatesCollection()
QETApp::commonTitleBlockTemplatesCollection.
Definition qetapp.cpp:446
static QString m_company_element_dir
Definition qetapp.h:237
QETApp()
QETApp::QETApp.
Definition qetapp.cpp:110
static void printVersion()
QETApp::printVersion Print version to standard output.
Definition qetapp.cpp:2789
static QString m_common_element_dir
Definition qetapp.h:234
Definition qetarguments.h:26
Definition qetdiagrameditor.h:53
Definition qetelementeditor.h:39
Definition qetproject.h:77
Definition qettemplateeditor.h:38
Definition qtextorientationspinboxwidget.h:27
Definition recentfiles.h:26
The TitleBlockTemplate class This class represents an title block template for an electric diagram....
Definition titleblocktemplate.h:38
Definition templatelocation.h:29
Definition templatescollection.h:35
Definition templatescollection.h:125