1 //
2 //
3 // Description: This file is part of FET
4 //
5 //
6 // Author: Lalescu Liviu <Please see https://lalescu.ro/liviu/ for details about contacting Liviu Lalescu (in particular, you can find here the e-mail address)>
7 // Copyright (C) 2003 Liviu Lalescu <https://lalescu.ro/liviu/>
8 //
9 /***************************************************************************
10  *                                                                         *
11  *   This program is free software: you can redistribute it and/or modify  *
12  *   it under the terms of the GNU Affero General Public License as        *
13  *   published by the Free Software Foundation, either version 3 of the    *
14  *   License, or (at your option) any later version.                       *
15  *                                                                         *
16  ***************************************************************************/
17 
18 #ifndef FETMAINFORM_H
19 #define FETMAINFORM_H
20 
21 #include <QtGlobal>
22 
23 #include "ui_fetmainform_template.h"
24 
25 #include <QMutex>
26 #include <QThread>
27 
28 #if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
29 #include <QtWidgets>
30 #else
31 #include <QtGui>
32 #endif
33 
34 #include <QResizeEvent>
35 #include <QCloseEvent>
36 
37 #include <QString>
38 #include <QStringList>
39 
40 #include <QAction>
41 #include <QMenu>
42 
43 #include <QMap>
44 
45 #include <QList>
46 #include <QHash>
47 
48 class QNetworkAccessManager;
49 class QNetworkReply;
50 
51 extern const QString COMPANY;
52 extern const QString PROGRAM;
53 
54 const int MAX_RECENT_FILES=10;
55 
56 class FetMainForm: public QMainWindow, public Ui::FetMainForm_template
57 {
58 	Q_OBJECT
59 
60 private:
61 	//
62 	QMenu* menuA_teacher_time_constraints;
63 	QMenu* menuAll_teachers_time_constraints;
64 	//
65 	QMenu* menuA_students_set_time_constraints;
66 	QMenu* menuAll_students_time_constraints;
67 	//
68 	QMenu* menuA_teacher_1_time_constraints; //for Mornings-Afternoons mode
69 	QMenu* menuA_teacher_2_time_constraints;
70 	QMenu* menuAll_teachers_1_time_constraints;
71 	QMenu* menuAll_teachers_2_time_constraints;
72 	//
73 	QMenu* menuA_students_set_1_time_constraints;
74 	QMenu* menuA_students_set_2_time_constraints;
75 	QMenu* menuAll_students_1_time_constraints;
76 	QMenu* menuAll_students_2_time_constraints;
77 
78 	QAction* dataTimeConstraintsActivitiesPreferredTimeSlotsAction;
79 	QAction* dataTimeConstraintsActivitiesSameStartingTimeAction;
80 	QAction* dataTimeConstraintsActivitiesOccupyMaxTimeSlotsFromSelectionAction;
81 	QAction* dataTimeConstraintsActivitiesOccupyMinTimeSlotsFromSelectionAction;
82 	QAction* dataTimeConstraintsActivitiesMaxSimultaneousInSelectedTimeSlotsAction;
83 	QAction* dataTimeConstraintsActivitiesMinSimultaneousInSelectedTimeSlotsAction;
84 	QAction* dataTimeConstraintsTeacherNotAvailableTimesAction;
85 	QAction* dataTimeConstraintsBasicCompulsoryTimeAction;
86 	QAction* dataTimeConstraintsStudentsSetNotAvailableTimesAction;
87 	QAction* dataTimeConstraintsBreakTimesAction;
88 	QAction* dataTimeConstraintsTeacherMaxDaysPerWeekAction;
89 	QAction* dataTimeConstraintsTeachersMaxHoursDailyAction;
90 	QAction* dataTimeConstraintsActivityPreferredStartingTimeAction;
91 	QAction* dataTimeConstraintsStudentsSetMaxGapsPerWeekAction;
92 	QAction* dataTimeConstraintsStudentsMaxGapsPerWeekAction;
93 	QAction* dataTimeConstraintsStudentsEarlyMaxBeginningsAtSecondHourAction;
94 	QAction* dataTimeConstraintsActivitiesNotOverlappingAction;
95 	QAction* dataTimeConstraintsActivityTagsNotOverlappingAction;
96 	QAction* dataTimeConstraintsMinDaysBetweenActivitiesAction;
97 	QAction* dataSpaceConstraintsBasicCompulsorySpaceAction;
98 	QAction* dataSpaceConstraintsRoomNotAvailableTimesAction;
99 	QAction* dataSpaceConstraintsTeacherRoomNotAvailableTimesAction;
100 	QAction* dataSpaceConstraintsActivityPreferredRoomAction;
101 	QAction* dataTimeConstraintsActivitiesSameStartingHourAction;
102 	QAction* dataSpaceConstraintsActivityPreferredRoomsAction;
103 	QAction* dataSpaceConstraintsStudentsSetHomeRoomAction;
104 	QAction* dataSpaceConstraintsStudentsSetHomeRoomsAction;
105 	QAction* dataTimeConstraintsTeachersMaxGapsPerWeekAction;
106 	QAction* dataTimeConstraintsTeacherMaxGapsPerWeekAction;
107 	QAction* dataTimeConstraintsStudentsSetEarlyMaxBeginningsAtSecondHourAction;
108 	QAction* dataTimeConstraintsTeacherMaxHoursDailyAction;
109 	QAction* dataTimeConstraintsStudentsSetMaxHoursDailyAction;
110 	QAction* dataTimeConstraintsStudentsMaxHoursDailyAction;
111 	QAction* dataTimeConstraintsStudentsMinHoursDailyAction;
112 	QAction* dataTimeConstraintsStudentsSetMinHoursDailyAction;
113 	QAction* dataTimeConstraintsStudentsSetMinGapsBetweenOrderedPairOfActivityTagsAction;
114 	QAction* dataTimeConstraintsStudentsMinGapsBetweenOrderedPairOfActivityTagsAction;
115 	QAction* dataTimeConstraintsTeacherMinGapsBetweenOrderedPairOfActivityTagsAction;
116 	QAction* dataTimeConstraintsTeachersMinGapsBetweenOrderedPairOfActivityTagsAction;
117 	QAction* dataTimeConstraintsTwoActivitiesConsecutiveAction;
118 	QAction* dataTimeConstraintsActivityEndsStudentsDayAction;
119 	QAction* dataTimeConstraintsActivityEndsTeachersDayAction;
120 	QAction* dataTimeConstraintsTeachersMinHoursDailyAction;
121 	QAction* dataTimeConstraintsTeacherMinHoursDailyAction;
122 	QAction* dataTimeConstraintsTeachersMaxGapsPerDayAction;
123 	QAction* dataTimeConstraintsTeacherMaxGapsPerDayAction;
124 	QAction* dataTimeConstraintsTeachersMaxGapsPerMorningAndAfternoonAction;
125 	QAction* dataTimeConstraintsTeacherMaxGapsPerMorningAndAfternoonAction;
126 	QAction* dataTimeConstraintsTeacherMaxSpanPerDayAction;
127 	QAction* dataTimeConstraintsTeachersMaxSpanPerDayAction;
128 	QAction* dataTimeConstraintsStudentsSetMaxSpanPerDayAction;
129 	QAction* dataTimeConstraintsStudentsMaxSpanPerDayAction;
130 	QAction* dataTimeConstraintsTeacherMinRestingHoursAction;
131 	QAction* dataTimeConstraintsTeachersMinRestingHoursAction;
132 	QAction* dataTimeConstraintsStudentsSetMinRestingHoursAction;
133 	QAction* dataTimeConstraintsStudentsMinRestingHoursAction;
134 	QAction* dataSpaceConstraintsSubjectPreferredRoomAction;
135 	QAction* dataSpaceConstraintsSubjectPreferredRoomsAction;
136 	QAction* dataSpaceConstraintsSubjectActivityTagPreferredRoomAction;
137 	QAction* dataSpaceConstraintsSubjectActivityTagPreferredRoomsAction;
138 	QAction* dataSpaceConstraintsTeacherHomeRoomAction;
139 	QAction* dataSpaceConstraintsTeacherHomeRoomsAction;
140 	QAction* dataSpaceConstraintsStudentsSetMaxBuildingChangesPerDayAction;
141 	QAction* dataSpaceConstraintsStudentsMaxBuildingChangesPerDayAction;
142 	QAction* dataSpaceConstraintsStudentsSetMaxBuildingChangesPerWeekAction;
143 	QAction* dataSpaceConstraintsStudentsMaxBuildingChangesPerWeekAction;
144 	QAction* dataSpaceConstraintsStudentsSetMinGapsBetweenBuildingChangesAction;
145 	QAction* dataSpaceConstraintsStudentsMinGapsBetweenBuildingChangesAction;
146 	QAction* dataSpaceConstraintsTeacherMaxBuildingChangesPerDayAction;
147 	QAction* dataSpaceConstraintsTeachersMaxBuildingChangesPerDayAction;
148 	QAction* dataSpaceConstraintsTeacherMaxBuildingChangesPerWeekAction;
149 	QAction* dataSpaceConstraintsTeachersMaxBuildingChangesPerWeekAction;
150 	QAction* dataSpaceConstraintsTeacherMinGapsBetweenBuildingChangesAction;
151 	QAction* dataSpaceConstraintsTeachersMinGapsBetweenBuildingChangesAction;
152 	QAction* dataSpaceConstraintsStudentsSetMaxRoomChangesPerDayAction;
153 	QAction* dataSpaceConstraintsStudentsMaxRoomChangesPerDayAction;
154 	QAction* dataSpaceConstraintsStudentsSetMaxRoomChangesPerWeekAction;
155 	QAction* dataSpaceConstraintsStudentsMaxRoomChangesPerWeekAction;
156 	QAction* dataSpaceConstraintsStudentsSetMinGapsBetweenRoomChangesAction;
157 	QAction* dataSpaceConstraintsStudentsMinGapsBetweenRoomChangesAction;
158 	QAction* dataSpaceConstraintsTeacherMaxRoomChangesPerDayAction;
159 	QAction* dataSpaceConstraintsTeachersMaxRoomChangesPerDayAction;
160 	QAction* dataSpaceConstraintsTeacherMaxRoomChangesPerWeekAction;
161 	QAction* dataSpaceConstraintsTeachersMaxRoomChangesPerWeekAction;
162 	QAction* dataSpaceConstraintsTeacherMinGapsBetweenRoomChangesAction;
163 	QAction* dataSpaceConstraintsTeachersMinGapsBetweenRoomChangesAction;
164 	QAction* dataTimeConstraintsActivitiesSameStartingDayAction;
165 	QAction* dataTimeConstraintsTwoActivitiesOrderedAction;
166 	QAction* dataTimeConstraintsTwoSetsOfActivitiesOrderedAction;
167 	QAction* dataTimeConstraintsTwoActivitiesOrderedIfSameDayAction;
168 	QAction* dataTimeConstraintsTeachersMaxHoursContinuouslyAction;
169 	QAction* dataTimeConstraintsTeacherMaxHoursContinuouslyAction;
170 	QAction* dataTimeConstraintsStudentsSetMaxHoursContinuouslyAction;
171 	QAction* dataTimeConstraintsStudentsMaxHoursContinuouslyAction;
172 	QAction* dataTimeConstraintsActivitiesPreferredStartingTimesAction;
173 	QAction* dataTimeConstraintsActivityPreferredTimeSlotsAction;
174 	QAction* dataTimeConstraintsActivityPreferredStartingTimesAction;
175 	QAction* dataTimeConstraintsMinGapsBetweenActivitiesAction;
176 	QAction* dataTimeConstraintsSubactivitiesPreferredTimeSlotsAction;
177 	QAction* dataTimeConstraintsSubactivitiesPreferredStartingTimesAction;
178 	QAction* dataTimeConstraintsTeacherIntervalMaxDaysPerWeekAction;
179 	QAction* dataTimeConstraintsTeachersIntervalMaxDaysPerWeekAction;
180 	QAction* dataTimeConstraintsStudentsSetIntervalMaxDaysPerWeekAction;
181 	QAction* dataTimeConstraintsStudentsIntervalMaxDaysPerWeekAction;
182 	QAction* dataTimeConstraintsActivitiesEndStudentsDayAction;
183 	QAction* dataTimeConstraintsActivitiesEndTeachersDayAction;
184 	QAction* dataTimeConstraintsTwoActivitiesGroupedAction;
185 	QAction* dataTimeConstraintsStudentsSetActivityTagMaxHoursContinuouslyAction;
186 	QAction* dataTimeConstraintsStudentsActivityTagMaxHoursContinuouslyAction;
187 	QAction* dataTimeConstraintsTeacherActivityTagMaxHoursContinuouslyAction;
188 	QAction* dataTimeConstraintsTeachersActivityTagMaxHoursContinuouslyAction;
189 	QAction* dataSpaceConstraintsActivityTagPreferredRoomAction;
190 	QAction* dataSpaceConstraintsActivityTagPreferredRoomsAction;
191 	QAction* dataTimeConstraintsTeachersMaxDaysPerWeekAction;
192 	QAction* dataTimeConstraintsThreeActivitiesGroupedAction;
193 	QAction* dataTimeConstraintsMaxDaysBetweenActivitiesAction;
194 	QAction* dataTimeConstraintsTeacherMinDaysPerWeekAction;
195 	QAction* dataTimeConstraintsTeachersMinDaysPerWeekAction;
196 	QAction* dataTimeConstraintsTeacherActivityTagMaxHoursDailyAction;
197 	QAction* dataTimeConstraintsTeachersActivityTagMaxHoursDailyAction;
198 	QAction* dataTimeConstraintsStudentsSetActivityTagMaxHoursDailyAction;
199 	QAction* dataTimeConstraintsStudentsActivityTagMaxHoursDailyAction;
200 	QAction* dataTimeConstraintsTeacherActivityTagMinHoursDailyAction;
201 	QAction* dataTimeConstraintsTeachersActivityTagMinHoursDailyAction;
202 	QAction* dataTimeConstraintsStudentsSetActivityTagMinHoursDailyAction;
203 	QAction* dataTimeConstraintsStudentsActivityTagMinHoursDailyAction;
204 	QAction* dataTimeConstraintsStudentsSetMaxGapsPerDayAction;
205 	QAction* dataTimeConstraintsStudentsMaxGapsPerDayAction;
206 	QAction* dataSpaceConstraintsActivitiesOccupyMaxDifferentRoomsAction;
207 	QAction* dataSpaceConstraintsActivitiesSameRoomIfConsecutiveAction;
208 	QAction* dataTimeConstraintsStudentsSetMaxDaysPerWeekAction;
209 	QAction* dataTimeConstraintsStudentsMaxDaysPerWeekAction;
210 
211 	//mornings-afternoons
212 	QAction* dataTimeConstraintsTeacherMaxRealDaysPerWeekAction;
213 	QAction* dataTimeConstraintsTeacherMaxMorningsPerWeekAction;
214 	QAction* dataTimeConstraintsTeacherMaxTwoConsecutiveMorningsAction;
215 	QAction* dataTimeConstraintsTeachersMaxTwoConsecutiveMorningsAction;
216 	QAction* dataTimeConstraintsTeacherMaxTwoConsecutiveAfternoonsAction;
217 	QAction* dataTimeConstraintsTeachersMaxTwoConsecutiveAfternoonsAction;
218 	QAction* dataTimeConstraintsTeacherMaxAfternoonsPerWeekAction;
219 	QAction* dataTimeConstraintsTeachersMaxHoursDailyRealDaysAction;
220 	QAction* dataTimeConstraintsTeachersAfternoonsEarlyMaxBeginningsAtSecondHourAction;
221 	QAction* dataTimeConstraintsTeacherAfternoonsEarlyMaxBeginningsAtSecondHourAction;
222 	QAction* dataTimeConstraintsStudentsAfternoonsEarlyMaxBeginningsAtSecondHourAction;
223 	QAction* dataTimeConstraintsStudentsSetAfternoonsEarlyMaxBeginningsAtSecondHourAction;
224 	QAction* dataTimeConstraintsTeachersMorningsEarlyMaxBeginningsAtSecondHourAction;
225 	QAction* dataTimeConstraintsTeacherMorningsEarlyMaxBeginningsAtSecondHourAction;
226 	QAction* dataTimeConstraintsStudentsMorningsEarlyMaxBeginningsAtSecondHourAction;
227 	QAction* dataTimeConstraintsStudentsSetMorningsEarlyMaxBeginningsAtSecondHourAction;
228 	QAction* dataTimeConstraintsTeacherMaxHoursDailyRealDaysAction;
229 	QAction* dataTimeConstraintsStudentsSetMaxHoursDailyRealDaysAction;
230 	QAction* dataTimeConstraintsStudentsMaxHoursDailyRealDaysAction;
231 	QAction* dataTimeConstraintsStudentsMinHoursPerMorningAction;
232 	QAction* dataTimeConstraintsStudentsSetMinHoursPerMorningAction;
233 	QAction* dataTimeConstraintsTeachersMinHoursPerMorningAction;
234 	QAction* dataTimeConstraintsTeachersMinHoursDailyRealDaysAction;
235 	QAction* dataTimeConstraintsTeacherMaxHoursPerAllAfternoonsAction;
236 	QAction* dataTimeConstraintsTeachersMaxHoursPerAllAfternoonsAction;
237 	QAction* dataTimeConstraintsStudentsSetMaxHoursPerAllAfternoonsAction;
238 	QAction* dataTimeConstraintsStudentsMaxHoursPerAllAfternoonsAction;
239 	QAction* dataTimeConstraintsTeacherMinHoursPerMorningAction;
240 	QAction* dataTimeConstraintsTeacherMinHoursDailyRealDaysAction;
241 	QAction* dataTimeConstraintsTeachersMaxZeroGapsPerAfternoonAction;
242 	QAction* dataTimeConstraintsTeacherMaxZeroGapsPerAfternoonAction;
243 	QAction* dataTimeConstraintsTeacherMaxSpanPerRealDayAction;
244 	QAction* dataTimeConstraintsTeachersMaxSpanPerRealDayAction;
245 	QAction* dataTimeConstraintsStudentsSetMaxSpanPerRealDayAction;
246 	QAction* dataTimeConstraintsStudentsMaxSpanPerRealDayAction;
247 	QAction* dataTimeConstraintsTeacherMinRestingHoursBetweenMorningAndAfternoonAction;
248 	QAction* dataTimeConstraintsTeachersMinRestingHoursBetweenMorningAndAfternoonAction;
249 	QAction* dataTimeConstraintsStudentsSetMinRestingHoursBetweenMorningAndAfternoonAction;
250 	QAction* dataTimeConstraintsStudentsMinRestingHoursBetweenMorningAndAfternoonAction;
251 	QAction* dataTimeConstraintsTeacherMorningIntervalMaxDaysPerWeekAction;
252 	QAction* dataTimeConstraintsTeachersMorningIntervalMaxDaysPerWeekAction;
253 	QAction* dataTimeConstraintsTeacherAfternoonIntervalMaxDaysPerWeekAction;
254 	QAction* dataTimeConstraintsTeachersAfternoonIntervalMaxDaysPerWeekAction;
255 	QAction* dataTimeConstraintsStudentsSetMorningIntervalMaxDaysPerWeekAction;
256 	QAction* dataTimeConstraintsStudentsMorningIntervalMaxDaysPerWeekAction;
257 	QAction* dataTimeConstraintsStudentsSetAfternoonIntervalMaxDaysPerWeekAction;
258 	QAction* dataTimeConstraintsStudentsAfternoonIntervalMaxDaysPerWeekAction;
259 	QAction* dataTimeConstraintsTeachersMaxRealDaysPerWeekAction;
260 	QAction* dataTimeConstraintsTeachersMaxMorningsPerWeekAction;
261 	QAction* dataTimeConstraintsTeachersMaxAfternoonsPerWeekAction;
262 	QAction* dataTimeConstraintsTeacherMinRealDaysPerWeekAction;
263 	QAction* dataTimeConstraintsTeachersMinRealDaysPerWeekAction;
264 	QAction* dataTimeConstraintsTeacherMinMorningsPerWeekAction;
265 	QAction* dataTimeConstraintsTeachersMinMorningsPerWeekAction;
266 	QAction* dataTimeConstraintsTeacherMinAfternoonsPerWeekAction;
267 	QAction* dataTimeConstraintsTeachersMinAfternoonsPerWeekAction;
268 	QAction* dataTimeConstraintsTeacherActivityTagMaxHoursDailyRealDaysAction;
269 	QAction* dataTimeConstraintsTeacherMaxTwoActivityTagsPerDayFromN1N2N3Action;
270 	QAction* dataTimeConstraintsTeachersMaxTwoActivityTagsPerDayFromN1N2N3Action;
271 	QAction* dataTimeConstraintsTeachersActivityTagMaxHoursDailyRealDaysAction;
272 	QAction* dataTimeConstraintsStudentsSetActivityTagMaxHoursDailyRealDaysAction;
273 	QAction* dataTimeConstraintsStudentsActivityTagMaxHoursDailyRealDaysAction;
274 	QAction* dataTimeConstraintsStudentsSetMaxGapsPerRealDayAction;
275 	QAction* dataTimeConstraintsStudentsMaxGapsPerRealDayAction;
276 	QAction* dataTimeConstraintsStudentsSetMaxRealDaysPerWeekAction;
277 	QAction* dataTimeConstraintsStudentsMaxRealDaysPerWeekAction;
278 	QAction* dataTimeConstraintsStudentsSetMaxMorningsPerWeekAction;
279 	QAction* dataTimeConstraintsStudentsMaxMorningsPerWeekAction;
280 	QAction* dataTimeConstraintsStudentsSetMaxAfternoonsPerWeekAction;
281 	QAction* dataTimeConstraintsStudentsMaxAfternoonsPerWeekAction;
282 	QAction* dataTimeConstraintsStudentsSetMinMorningsPerWeekAction;
283 	QAction* dataTimeConstraintsStudentsMinMorningsPerWeekAction;
284 	QAction* dataTimeConstraintsStudentsSetMinAfternoonsPerWeekAction;
285 	QAction* dataTimeConstraintsStudentsMinAfternoonsPerWeekAction;
286 	QAction* dataTimeConstraintsTeacherMaxGapsPerRealDayAction;
287 	QAction* dataTimeConstraintsTeachersMaxGapsPerRealDayAction;
288 	QAction* dataTimeConstraintsStudentsSetMaxGapsPerWeekForRealDaysAction;
289 	QAction* dataTimeConstraintsStudentsMaxGapsPerWeekForRealDaysAction;
290 	QAction* dataTimeConstraintsTeacherMaxGapsPerWeekForRealDaysAction;
291 	QAction* dataTimeConstraintsTeachersMaxGapsPerWeekForRealDaysAction;
292 	QAction* dataSpaceConstraintsStudentsSetMaxRoomChangesPerRealDayAction;
293 	QAction* dataSpaceConstraintsStudentsMaxRoomChangesPerRealDayAction;
294 	QAction* dataSpaceConstraintsTeacherMaxRoomChangesPerRealDayAction;
295 	QAction* dataSpaceConstraintsTeachersMaxRoomChangesPerRealDayAction;
296 
297 	QAction* dataTimeConstraintsTeacherMaxThreeConsecutiveDaysAction;
298 	QAction* dataTimeConstraintsTeachersMaxThreeConsecutiveDaysAction;
299 
300 	//block-planning
301 	QAction* dataTimeConstraintsMaxTotalActivitiesFromSetInSelectedTimeSlotsAction;
302 	QAction* dataTimeConstraintsMaxGapsBetweenActivitiesAction;
303 
304 	//terms
305 	QAction* dataTimeConstraintsActivitiesMaxInATermAction;
306 	QAction* dataTimeConstraintsActivitiesOccupyMaxTermsAction;
307 
308 	QLabel modeLabel;
309 
310 //	QSpinBox communicationSpinBox;
311 
312 	QMenu* shortcutBasicMenu;
313 	QMenu* shortcutDataSpaceMenu;
314 	QMenu* shortcutDataAdvancedMenu;
315 	QMenu* shortcutAdvancedTimeMenu;
316 	//2014-07-01
317 	QMenu* shortcutTimetableLockingMenu;
318 	QMenu* shortcutTimetableAdvancedMenu;
319 
320 	QNetworkAccessManager* networkManager;
321 
322 	QStringList recentFiles;
323 
324 	QAction* recentFileActions[MAX_RECENT_FILES];
325 	QAction* recentSeparatorAction;
326 
327 	void setEnabledIcon(QAction* action, bool enabled);
328 
329 	void setCurrentFile(const QString& fileName);
330 	QString strippedName(const QString& fullFileName);
331 	void updateRecentFileActions();
332 
333 	void populateLanguagesMap(QMap<QString, QString>& languagesMap);
334 
335 	int currentMode;
336 	bool dataAvailable;
337 	bool oldDataAvailable;
338 	void updateMode(bool forceUpdate=false);
339 
340 	bool getLastConfirmation(int newMode);
341 
342 	void createActionsForConstraints();
343 	void createMenusOfActionsForConstraints();
344 
345 public:
346 	FetMainForm();
347 	~FetMainForm();
348 
349 	void retranslateMode();
350 	void retranslateConstraints();
351 
352 	void closeOtherWindows();
353 
354 	void openFile(const QString& fileName);
355 	bool fileSave();
356 	bool fileSaveAs();
357 
358 public slots:
359 	void enableNotPerfectMessage();
360 
361 	void on_modeOfficialAction_triggered();
362 	void on_modeMorningsAfternoonsAction_triggered();
363 	void on_modeBlockPlanningAction_triggered();
364 	void on_modeTermsAction_triggered();
365 
366 	void on_dataTermsAction_triggered();
367 
368 	void on_fileNewAction_triggered();
369 	void on_fileSaveAction_triggered();
370 	void on_fileSaveAsAction_triggered();
371 	void on_fileQuitAction_triggered();
372 	void on_fileOpenAction_triggered();
373 	void on_fileClearRecentFilesListAction_triggered();
374 	void openRecentFile();
375 
376 	void on_fileImportCSVActivityTagsAction_triggered();
377 	void on_fileImportCSVActivitiesAction_triggered();
378 	void on_fileImportCSVRoomsBuildingsAction_triggered();
379 	void on_fileImportCSVSubjectsAction_triggered();
380 	void on_fileImportCSVTeachersAction_triggered();
381 	void on_fileImportCSVYearsGroupsSubgroupsAction_triggered();
382 	void on_fileExportCSVAction_triggered();
383 
384 	void on_dataInstitutionNameAction_triggered();
385 	void on_dataCommentsAction_triggered();
386 	void on_dataDaysAction_triggered();
387 	void on_dataHoursAction_triggered();
388 	void on_dataTeachersAction_triggered();
389 	void on_dataTeachersStatisticsAction_triggered();
390 	void on_dataSubjectsAction_triggered();
391 	void on_dataSubjectsStatisticsAction_triggered();
392 	void on_dataActivityTagsAction_triggered();
393 	void on_dataYearsAction_triggered();
394 	void on_dataGroupsAction_triggered();
395 	void on_dataSubgroupsAction_triggered();
396 	void on_dataStudentsStatisticsAction_triggered();
397 	void on_dataActivitiesRoomsStatisticsAction_triggered();
398 	void on_dataTeachersSubjectsQualificationsStatisticsAction_triggered();
399 	void on_dataHelpOnStatisticsAction_triggered();
400 
401 	void checkForUpdatesToggled(bool checked);
402 	void on_helpSettingsAction_triggered();
403 	void useColorsToggled(bool checked);
404 	void showSubgroupsInComboBoxesToggled(bool checked);
405 	void showSubgroupsInActivityPlanningToggled(bool checked);
406 	void on_settingsShowShortcutsOnMainWindowAction_toggled();
407 	void on_settingsShowToolTipsForConstraintsWithTablesAction_toggled();
408 
409 	void on_timetablesToWriteOnDiskAction_triggered();
410 
411 	void on_studentsComboBoxesStyleAction_triggered();
412 
413 	void on_settingsShowVirtualRoomsInTimetablesAction_toggled();
414 
415 	void on_settingsCommandAfterFinishingAction_triggered();
416 	///
417 
418 	//////confirmations
419 	void on_settingsConfirmActivityPlanningAction_toggled();
420 	void on_settingsConfirmSpreadActivitiesAction_toggled();
421 	void on_settingsConfirmRemoveRedundantAction_toggled();
422 	void on_settingsConfirmSaveTimetableAction_toggled();
423 	//////
424 
425 	void showWarningForSubgroupsWithTheSameActivitiesToggled(bool checked);
426 
427 	void showWarningForActivitiesNotLockedTimeLockedSpaceVirtualRealRoomsToggled(bool checked);
428 
429 	void showWarningForMaxHoursDailyWithUnder100WeightToggled(bool checked);
430 
431 	void enableActivityTagMaxHoursDailyToggled(bool checked);
432 	void enableActivityTagMinHoursDailyToggled(bool checked);
433 	void enableStudentsMaxGapsPerDayToggled(bool checked);
434 	void showWarningForNotPerfectConstraintsToggled(bool checked);
435 
436 	void enableMaxGapsPerRealDayToggled(bool checked);
437 
438 	void enableStudentsMinHoursDailyWithAllowEmptyDaysToggled(bool checked);
439 	void showWarningForStudentsMinHoursDailyWithAllowEmptyDaysToggled(bool checked);
440 
441 	void enableStudentsMinHoursPerMorningWithAllowEmptyMorningsToggled(bool checked);
442 	void showWarningForStudentsMinHoursPerMorningWithAllowEmptyMorningsToggled(bool checked);
443 
444 	void enableGroupActivitiesInInitialOrderToggled(bool checked);
445 	void showWarningForGroupActivitiesInInitialOrderToggled(bool checked);
446 
447 	void on_groupActivitiesInInitialOrderAction_triggered();
448 
449 	void on_dataActivitiesAction_triggered();
450 	void on_dataSubactivitiesAction_triggered();
451 	void on_dataRoomsAction_triggered();
452 	void on_dataBuildingsAction_triggered();
453 	void on_dataAllTimeConstraintsAction_triggered();
454 	void on_dataAllSpaceConstraintsAction_triggered();
455 
456 	void dataSpaceConstraintsRoomNotAvailableTimesAction_triggered();
457 	void dataSpaceConstraintsTeacherRoomNotAvailableTimesAction_triggered();
458 
459 	void dataSpaceConstraintsBasicCompulsorySpaceAction_triggered();
460 	void dataSpaceConstraintsActivityPreferredRoomAction_triggered();
461 	void dataSpaceConstraintsActivityPreferredRoomsAction_triggered();
462 
463 	void dataSpaceConstraintsStudentsSetHomeRoomAction_triggered();
464 	void dataSpaceConstraintsStudentsSetHomeRoomsAction_triggered();
465 	void dataSpaceConstraintsTeacherHomeRoomAction_triggered();
466 	void dataSpaceConstraintsTeacherHomeRoomsAction_triggered();
467 
468 	void dataSpaceConstraintsStudentsSetMaxBuildingChangesPerDayAction_triggered();
469 	void dataSpaceConstraintsStudentsMaxBuildingChangesPerDayAction_triggered();
470 	void dataSpaceConstraintsStudentsSetMaxBuildingChangesPerWeekAction_triggered();
471 	void dataSpaceConstraintsStudentsMaxBuildingChangesPerWeekAction_triggered();
472 	void dataSpaceConstraintsStudentsSetMinGapsBetweenBuildingChangesAction_triggered();
473 	void dataSpaceConstraintsStudentsMinGapsBetweenBuildingChangesAction_triggered();
474 
475 	void dataSpaceConstraintsTeacherMaxBuildingChangesPerDayAction_triggered();
476 	void dataSpaceConstraintsTeachersMaxBuildingChangesPerDayAction_triggered();
477 	void dataSpaceConstraintsTeacherMaxBuildingChangesPerWeekAction_triggered();
478 	void dataSpaceConstraintsTeachersMaxBuildingChangesPerWeekAction_triggered();
479 	void dataSpaceConstraintsTeacherMinGapsBetweenBuildingChangesAction_triggered();
480 	void dataSpaceConstraintsTeachersMinGapsBetweenBuildingChangesAction_triggered();
481 
482 	void dataSpaceConstraintsStudentsSetMaxRoomChangesPerDayAction_triggered();
483 	void dataSpaceConstraintsStudentsMaxRoomChangesPerDayAction_triggered();
484 	void dataSpaceConstraintsStudentsSetMaxRoomChangesPerWeekAction_triggered();
485 	void dataSpaceConstraintsStudentsMaxRoomChangesPerWeekAction_triggered();
486 	void dataSpaceConstraintsStudentsSetMinGapsBetweenRoomChangesAction_triggered();
487 	void dataSpaceConstraintsStudentsMinGapsBetweenRoomChangesAction_triggered();
488 
489 	void dataSpaceConstraintsTeacherMaxRoomChangesPerDayAction_triggered();
490 	void dataSpaceConstraintsTeachersMaxRoomChangesPerDayAction_triggered();
491 	void dataSpaceConstraintsTeacherMaxRoomChangesPerWeekAction_triggered();
492 	void dataSpaceConstraintsTeachersMaxRoomChangesPerWeekAction_triggered();
493 	void dataSpaceConstraintsTeacherMinGapsBetweenRoomChangesAction_triggered();
494 	void dataSpaceConstraintsTeachersMinGapsBetweenRoomChangesAction_triggered();
495 
496 	void dataSpaceConstraintsSubjectPreferredRoomAction_triggered();
497 	void dataSpaceConstraintsSubjectPreferredRoomsAction_triggered();
498 	void dataSpaceConstraintsSubjectActivityTagPreferredRoomAction_triggered();
499 	void dataSpaceConstraintsSubjectActivityTagPreferredRoomsAction_triggered();
500 
501 	void dataSpaceConstraintsActivityTagPreferredRoomAction_triggered();
502 	void dataSpaceConstraintsActivityTagPreferredRoomsAction_triggered();
503 
504 	void dataSpaceConstraintsActivitiesOccupyMaxDifferentRoomsAction_triggered();
505 	void dataSpaceConstraintsActivitiesSameRoomIfConsecutiveAction_triggered();
506 
507 	void dataTimeConstraintsBasicCompulsoryTimeAction_triggered();
508 	void dataTimeConstraintsBreakTimesAction_triggered();
509 
510 	void dataTimeConstraintsTwoActivitiesConsecutiveAction_triggered();
511 	void dataTimeConstraintsTwoActivitiesGroupedAction_triggered();
512 	void dataTimeConstraintsThreeActivitiesGroupedAction_triggered();
513 	void dataTimeConstraintsTwoActivitiesOrderedAction_triggered();
514 	void dataTimeConstraintsTwoSetsOfActivitiesOrderedAction_triggered();
515 	void dataTimeConstraintsTwoActivitiesOrderedIfSameDayAction_triggered();
516 	void dataTimeConstraintsActivityPreferredStartingTimeAction_triggered();
517 	void dataTimeConstraintsActivityPreferredTimeSlotsAction_triggered();
518 	void dataTimeConstraintsActivitiesPreferredTimeSlotsAction_triggered();
519 	void dataTimeConstraintsSubactivitiesPreferredTimeSlotsAction_triggered();
520 	void dataTimeConstraintsActivityPreferredStartingTimesAction_triggered();
521 	void dataTimeConstraintsActivitiesPreferredStartingTimesAction_triggered();
522 	void dataTimeConstraintsSubactivitiesPreferredStartingTimesAction_triggered();
523 	void dataTimeConstraintsActivitiesSameStartingTimeAction_triggered();
524 	void dataTimeConstraintsActivitiesSameStartingHourAction_triggered();
525 	void dataTimeConstraintsActivitiesSameStartingDayAction_triggered();
526 	void dataTimeConstraintsActivitiesOccupyMaxTimeSlotsFromSelectionAction_triggered();
527 	void dataTimeConstraintsActivitiesOccupyMinTimeSlotsFromSelectionAction_triggered();
528 	void dataTimeConstraintsActivitiesMaxSimultaneousInSelectedTimeSlotsAction_triggered();
529 	void dataTimeConstraintsActivitiesMinSimultaneousInSelectedTimeSlotsAction_triggered();
530 	void dataTimeConstraintsActivitiesNotOverlappingAction_triggered();
531 	void dataTimeConstraintsActivityTagsNotOverlappingAction_triggered();
532 	void dataTimeConstraintsMinDaysBetweenActivitiesAction_triggered();
533 	void dataTimeConstraintsMaxDaysBetweenActivitiesAction_triggered();
534 	void dataTimeConstraintsMinGapsBetweenActivitiesAction_triggered();
535 	void dataTimeConstraintsActivityEndsStudentsDayAction_triggered();
536 	void dataTimeConstraintsActivitiesEndStudentsDayAction_triggered();
537 
538 	void dataTimeConstraintsActivityEndsTeachersDayAction_triggered();
539 	void dataTimeConstraintsActivitiesEndTeachersDayAction_triggered();
540 
541 	void dataTimeConstraintsTeacherNotAvailableTimesAction_triggered();
542 	void dataTimeConstraintsTeacherMaxDaysPerWeekAction_triggered();
543 	void dataTimeConstraintsTeachersMaxDaysPerWeekAction_triggered();
544 
545 	void dataTimeConstraintsTeacherMinDaysPerWeekAction_triggered();
546 	void dataTimeConstraintsTeachersMinDaysPerWeekAction_triggered();
547 
548 	void dataTimeConstraintsTeachersMaxHoursDailyAction_triggered();
549 	void dataTimeConstraintsTeacherMaxHoursDailyAction_triggered();
550 	void dataTimeConstraintsTeachersMaxHoursContinuouslyAction_triggered();
551 	void dataTimeConstraintsTeacherMaxHoursContinuouslyAction_triggered();
552 
553 	void dataTimeConstraintsTeachersActivityTagMaxHoursContinuouslyAction_triggered();
554 	void dataTimeConstraintsTeacherActivityTagMaxHoursContinuouslyAction_triggered();
555 
556 	void dataTimeConstraintsTeachersActivityTagMaxHoursDailyAction_triggered();
557 	void dataTimeConstraintsTeacherActivityTagMaxHoursDailyAction_triggered();
558 
559 	void dataTimeConstraintsTeachersActivityTagMinHoursDailyAction_triggered();
560 	void dataTimeConstraintsTeacherActivityTagMinHoursDailyAction_triggered();
561 
562 	void dataTimeConstraintsTeachersMinHoursDailyAction_triggered();
563 	void dataTimeConstraintsTeacherMinHoursDailyAction_triggered();
564 	void dataTimeConstraintsTeachersMaxGapsPerWeekAction_triggered();
565 	void dataTimeConstraintsTeacherMaxGapsPerWeekAction_triggered();
566 	void dataTimeConstraintsTeachersMaxGapsPerDayAction_triggered();
567 	void dataTimeConstraintsTeacherMaxGapsPerDayAction_triggered();
568 	void dataTimeConstraintsTeachersMaxGapsPerMorningAndAfternoonAction_triggered();
569 	void dataTimeConstraintsTeacherMaxGapsPerMorningAndAfternoonAction_triggered();
570 
571 	void dataTimeConstraintsTeacherIntervalMaxDaysPerWeekAction_triggered();
572 	void dataTimeConstraintsTeachersIntervalMaxDaysPerWeekAction_triggered();
573 	void dataTimeConstraintsStudentsSetIntervalMaxDaysPerWeekAction_triggered();
574 	void dataTimeConstraintsStudentsIntervalMaxDaysPerWeekAction_triggered();
575 
576 	void dataTimeConstraintsStudentsSetMaxDaysPerWeekAction_triggered();
577 	void dataTimeConstraintsStudentsMaxDaysPerWeekAction_triggered();
578 
579 	void dataTimeConstraintsStudentsSetNotAvailableTimesAction_triggered();
580 	void dataTimeConstraintsStudentsSetMaxGapsPerWeekAction_triggered();
581 	void dataTimeConstraintsStudentsMaxGapsPerWeekAction_triggered();
582 
583 	void dataTimeConstraintsStudentsSetMaxGapsPerDayAction_triggered();
584 	void dataTimeConstraintsStudentsMaxGapsPerDayAction_triggered();
585 
586 	void dataTimeConstraintsStudentsEarlyMaxBeginningsAtSecondHourAction_triggered();
587 	void dataTimeConstraintsStudentsSetEarlyMaxBeginningsAtSecondHourAction_triggered();
588 	void dataTimeConstraintsStudentsMaxHoursDailyAction_triggered();
589 	void dataTimeConstraintsStudentsSetMaxHoursDailyAction_triggered();
590 	void dataTimeConstraintsStudentsMaxHoursContinuouslyAction_triggered();
591 	void dataTimeConstraintsStudentsSetMaxHoursContinuouslyAction_triggered();
592 
593 	void dataTimeConstraintsStudentsActivityTagMaxHoursContinuouslyAction_triggered();
594 	void dataTimeConstraintsStudentsSetActivityTagMaxHoursContinuouslyAction_triggered();
595 
596 	void dataTimeConstraintsStudentsActivityTagMaxHoursDailyAction_triggered();
597 	void dataTimeConstraintsStudentsSetActivityTagMaxHoursDailyAction_triggered();
598 
599 	void dataTimeConstraintsStudentsActivityTagMinHoursDailyAction_triggered();
600 	void dataTimeConstraintsStudentsSetActivityTagMinHoursDailyAction_triggered();
601 
602 	void dataTimeConstraintsStudentsMinHoursDailyAction_triggered();
603 	void dataTimeConstraintsStudentsSetMinHoursDailyAction_triggered();
604 
605 	void dataTimeConstraintsStudentsSetMinGapsBetweenOrderedPairOfActivityTagsAction_triggered();
606 	void dataTimeConstraintsStudentsMinGapsBetweenOrderedPairOfActivityTagsAction_triggered();
607 	void dataTimeConstraintsTeacherMinGapsBetweenOrderedPairOfActivityTagsAction_triggered();
608 	void dataTimeConstraintsTeachersMinGapsBetweenOrderedPairOfActivityTagsAction_triggered();
609 
610 	void dataTimeConstraintsTeacherMaxSpanPerDayAction_triggered();
611 	void dataTimeConstraintsTeachersMaxSpanPerDayAction_triggered();
612 	void dataTimeConstraintsStudentsSetMaxSpanPerDayAction_triggered();
613 	void dataTimeConstraintsStudentsMaxSpanPerDayAction_triggered();
614 
615 	void dataTimeConstraintsTeacherMinRestingHoursAction_triggered();
616 	void dataTimeConstraintsTeachersMinRestingHoursAction_triggered();
617 	void dataTimeConstraintsStudentsSetMinRestingHoursAction_triggered();
618 	void dataTimeConstraintsStudentsMinRestingHoursAction_triggered();
619 
620 	//mornings-afternoons
621 	void dataSpaceConstraintsStudentsSetMaxRoomChangesPerRealDayAction_triggered();
622 	void dataSpaceConstraintsStudentsMaxRoomChangesPerRealDayAction_triggered();
623 	void dataSpaceConstraintsTeacherMaxRoomChangesPerRealDayAction_triggered();
624 	void dataSpaceConstraintsTeachersMaxRoomChangesPerRealDayAction_triggered();
625 
626 	void dataTimeConstraintsTeacherMaxRealDaysPerWeekAction_triggered();
627 	void dataTimeConstraintsTeachersMaxRealDaysPerWeekAction_triggered();
628 
629 	void dataTimeConstraintsTeacherMaxAfternoonsPerWeekAction_triggered();
630 	void dataTimeConstraintsTeachersMaxAfternoonsPerWeekAction_triggered();
631 	void dataTimeConstraintsTeacherMaxMorningsPerWeekAction_triggered();
632 	void dataTimeConstraintsTeachersMaxMorningsPerWeekAction_triggered();
633 
634 	void dataTimeConstraintsTeacherMaxTwoConsecutiveMorningsAction_triggered();
635 	void dataTimeConstraintsTeachersMaxTwoConsecutiveMorningsAction_triggered();
636 	void dataTimeConstraintsTeacherMaxTwoConsecutiveAfternoonsAction_triggered();
637 	void dataTimeConstraintsTeachersMaxTwoConsecutiveAfternoonsAction_triggered();
638 
639 	void dataTimeConstraintsTeacherMinRealDaysPerWeekAction_triggered();
640 	void dataTimeConstraintsTeachersMinRealDaysPerWeekAction_triggered();
641 
642 	void dataTimeConstraintsTeacherMinMorningsPerWeekAction_triggered();
643 	void dataTimeConstraintsTeachersMinMorningsPerWeekAction_triggered();
644 	void dataTimeConstraintsTeacherMinAfternoonsPerWeekAction_triggered();
645 	void dataTimeConstraintsTeachersMinAfternoonsPerWeekAction_triggered();
646 
647 	void dataTimeConstraintsTeachersMaxHoursDailyRealDaysAction_triggered();
648 	void dataTimeConstraintsTeacherMaxHoursDailyRealDaysAction_triggered();
649 
650 	void dataTimeConstraintsTeacherMaxTwoActivityTagsPerDayFromN1N2N3Action_triggered();
651 	void dataTimeConstraintsTeachersMaxTwoActivityTagsPerDayFromN1N2N3Action_triggered();
652 
653 	void dataTimeConstraintsTeachersActivityTagMaxHoursDailyRealDaysAction_triggered();
654 	void dataTimeConstraintsTeacherActivityTagMaxHoursDailyRealDaysAction_triggered();
655 
656 	void dataTimeConstraintsTeacherMaxHoursPerAllAfternoonsAction_triggered();
657 	void dataTimeConstraintsTeachersMaxHoursPerAllAfternoonsAction_triggered();
658 
659 	void dataTimeConstraintsStudentsSetMaxHoursPerAllAfternoonsAction_triggered();
660 	void dataTimeConstraintsStudentsMaxHoursPerAllAfternoonsAction_triggered();
661 
662 	void dataTimeConstraintsTeachersMinHoursPerMorningAction_triggered();
663 	void dataTimeConstraintsTeacherMinHoursPerMorningAction_triggered();
664 
665 	void dataTimeConstraintsTeachersMinHoursDailyRealDaysAction_triggered();
666 	void dataTimeConstraintsTeacherMinHoursDailyRealDaysAction_triggered();
667 
668 	void dataTimeConstraintsTeachersMaxZeroGapsPerAfternoonAction_triggered();
669 	void dataTimeConstraintsTeacherMaxZeroGapsPerAfternoonAction_triggered();
670 
671 	void dataTimeConstraintsTeachersMaxGapsPerRealDayAction_triggered();
672 	void dataTimeConstraintsTeacherMaxGapsPerRealDayAction_triggered();
673 
674 	void dataTimeConstraintsTeacherMorningIntervalMaxDaysPerWeekAction_triggered();
675 	void dataTimeConstraintsTeachersMorningIntervalMaxDaysPerWeekAction_triggered();
676 
677 	void dataTimeConstraintsTeacherAfternoonIntervalMaxDaysPerWeekAction_triggered();
678 	void dataTimeConstraintsTeachersAfternoonIntervalMaxDaysPerWeekAction_triggered();
679 
680 	void dataTimeConstraintsStudentsSetMorningIntervalMaxDaysPerWeekAction_triggered();
681 	void dataTimeConstraintsStudentsMorningIntervalMaxDaysPerWeekAction_triggered();
682 	void dataTimeConstraintsStudentsSetAfternoonIntervalMaxDaysPerWeekAction_triggered();
683 	void dataTimeConstraintsStudentsAfternoonIntervalMaxDaysPerWeekAction_triggered();
684 
685 	void dataTimeConstraintsStudentsSetMaxRealDaysPerWeekAction_triggered();
686 	void dataTimeConstraintsStudentsMaxRealDaysPerWeekAction_triggered();
687 
688 	void dataTimeConstraintsStudentsSetMaxMorningsPerWeekAction_triggered();
689 	void dataTimeConstraintsStudentsMaxMorningsPerWeekAction_triggered();
690 	void dataTimeConstraintsStudentsSetMaxAfternoonsPerWeekAction_triggered();
691 	void dataTimeConstraintsStudentsMaxAfternoonsPerWeekAction_triggered();
692 
693 	void dataTimeConstraintsStudentsSetMinMorningsPerWeekAction_triggered();
694 	void dataTimeConstraintsStudentsMinMorningsPerWeekAction_triggered();
695 	void dataTimeConstraintsStudentsSetMinAfternoonsPerWeekAction_triggered();
696 	void dataTimeConstraintsStudentsMinAfternoonsPerWeekAction_triggered();
697 
698 	void dataTimeConstraintsStudentsSetMaxGapsPerRealDayAction_triggered();
699 	void dataTimeConstraintsStudentsMaxGapsPerRealDayAction_triggered();
700 
701 	void dataTimeConstraintsTeachersMaxGapsPerWeekForRealDaysAction_triggered();
702 	void dataTimeConstraintsTeacherMaxGapsPerWeekForRealDaysAction_triggered();
703 	void dataTimeConstraintsStudentsSetMaxGapsPerWeekForRealDaysAction_triggered();
704 	void dataTimeConstraintsStudentsMaxGapsPerWeekForRealDaysAction_triggered();
705 
706 	void dataTimeConstraintsTeachersAfternoonsEarlyMaxBeginningsAtSecondHourAction_triggered();
707 	void dataTimeConstraintsTeacherAfternoonsEarlyMaxBeginningsAtSecondHourAction_triggered();
708 
709 	void dataTimeConstraintsStudentsAfternoonsEarlyMaxBeginningsAtSecondHourAction_triggered();
710 	void dataTimeConstraintsStudentsSetAfternoonsEarlyMaxBeginningsAtSecondHourAction_triggered();
711 
712 	void dataTimeConstraintsTeachersMorningsEarlyMaxBeginningsAtSecondHourAction_triggered();
713 	void dataTimeConstraintsTeacherMorningsEarlyMaxBeginningsAtSecondHourAction_triggered();
714 
715 	void dataTimeConstraintsStudentsMorningsEarlyMaxBeginningsAtSecondHourAction_triggered();
716 	void dataTimeConstraintsStudentsSetMorningsEarlyMaxBeginningsAtSecondHourAction_triggered();
717 
718 	void dataTimeConstraintsStudentsMaxHoursDailyRealDaysAction_triggered();
719 	void dataTimeConstraintsStudentsSetMaxHoursDailyRealDaysAction_triggered();
720 
721 	void dataTimeConstraintsStudentsActivityTagMaxHoursDailyRealDaysAction_triggered();
722 	void dataTimeConstraintsStudentsSetActivityTagMaxHoursDailyRealDaysAction_triggered();
723 
724 	void dataTimeConstraintsStudentsMinHoursPerMorningAction_triggered();
725 	void dataTimeConstraintsStudentsSetMinHoursPerMorningAction_triggered();
726 
727 	void dataTimeConstraintsTeacherMaxSpanPerRealDayAction_triggered();
728 	void dataTimeConstraintsTeachersMaxSpanPerRealDayAction_triggered();
729 	void dataTimeConstraintsStudentsSetMaxSpanPerRealDayAction_triggered();
730 	void dataTimeConstraintsStudentsMaxSpanPerRealDayAction_triggered();
731 
732 	void dataTimeConstraintsTeacherMinRestingHoursBetweenMorningAndAfternoonAction_triggered();
733 	void dataTimeConstraintsTeachersMinRestingHoursBetweenMorningAndAfternoonAction_triggered();
734 	void dataTimeConstraintsStudentsSetMinRestingHoursBetweenMorningAndAfternoonAction_triggered();
735 	void dataTimeConstraintsStudentsMinRestingHoursBetweenMorningAndAfternoonAction_triggered();
736 
737 	void dataTimeConstraintsTeacherMaxThreeConsecutiveDaysAction_triggered();
738 	void dataTimeConstraintsTeachersMaxThreeConsecutiveDaysAction_triggered();
739 
740 	//block-planning
741 	void dataTimeConstraintsMaxTotalActivitiesFromSetInSelectedTimeSlotsAction_triggered();
742 	void dataTimeConstraintsMaxGapsBetweenActivitiesAction_triggered();
743 
744 	//terms
745 	void dataTimeConstraintsActivitiesMaxInATermAction_triggered();
746 	void dataTimeConstraintsActivitiesOccupyMaxTermsAction_triggered();
747 
748 	void on_helpMoroccoAction_triggered();
749 	void on_helpAlgeriaAction_triggered();
750 	void on_helpBlockPlanningAction_triggered();
751 	void on_helpTermsAction_triggered();
752 
753 	void on_activityPlanningAction_triggered();
754 	void on_spreadActivitiesAction_triggered();
755 	void on_removeRedundantConstraintsAction_triggered();
756 
757 	//about
758 	void on_helpAboutFETAction_triggered();
759 	void on_helpAboutQtAction_triggered();
760 	void on_helpAboutLibrariesAction_triggered();
761 	//offline
762 	void on_helpFAQAction_triggered();
763 	void on_helpTipsAction_triggered();
764 	void on_helpInstructionsAction_triggered();
765 	//online
766 	void on_helpHomepageAction_triggered();
767 	void on_helpContentsAction_triggered();
768 	void on_helpForumAction_triggered();
769 	void on_helpAddressesAction_triggered();
770 
771 	void on_timetableGenerateAction_triggered();
772 	void on_timetableViewStudentsDaysHorizontalAction_triggered();
773 	void on_timetableViewStudentsTimeHorizontalAction_triggered();
774 	void on_timetableViewTeachersDaysHorizontalAction_triggered();
775 	void on_timetableViewTeachersTimeHorizontalAction_triggered();
776 	void on_timetableViewRoomsDaysHorizontalAction_triggered();
777 	void on_timetableViewRoomsTimeHorizontalAction_triggered();
778 	void on_timetableShowConflictsAction_triggered();
779 	void on_timetablePrintAction_triggered();
780 	void on_timetableGenerateMultipleAction_triggered();
781 
782 	void on_timetableLockAllActivitiesAction_triggered();
783 	void on_timetableUnlockAllActivitiesAction_triggered();
784 	void on_timetableLockActivitiesDayAction_triggered();
785 	void on_timetableUnlockActivitiesDayAction_triggered();
786 	void on_timetableLockActivitiesEndStudentsDayAction_triggered();
787 	void on_timetableUnlockActivitiesEndStudentsDayAction_triggered();
788 	void on_timetableLockActivitiesWithASpecifiedActivityTagAction_triggered();
789 	void on_timetableUnlockActivitiesWithASpecifiedActivityTagAction_triggered();
790 
791 	void on_timetableSaveTimetableAsAction_triggered();
792 
793 	void on_randomSeedAction_triggered();
794 
795 	void on_languageAction_triggered();
796 
797 	void on_settingsDivideTimetablesByDaysAction_toggled();
798 	void on_settingsDuplicateVerticalNamesAction_toggled();
799 
800 	void on_settingsRestoreDefaultsAction_triggered();
801 
802 	void on_settingsTimetableHtmlLevelAction_triggered();
803 	void on_settingsPrintActivityTagsAction_toggled();
804 	void on_settingsOrderSubgroupsInTimetablesAction_toggled();
805 	void on_settingsPrintDetailedTimetablesAction_toggled();
806 	void on_settingsPrintDetailedTeachersFreePeriodsTimetablesAction_toggled();
807 	void on_settingsPrintNotAvailableSlotsAction_toggled();
808 	void on_settingsPrintBreakSlotsAction_toggled();
809 
810 	void on_settingsPrintActivitiesWithSameStartingTimeAction_toggled();
811 
812 	void on_selectOutputDirAction_triggered();
813 
814 	void on_statisticsExportToDiskAction_triggered();
815 	void on_statisticsPrintAction_triggered();
816 
817 	void on_shortcutAllTimeConstraintsPushButton_clicked();
818 	void on_shortcutBreakTimeConstraintsPushButton_clicked();
819 	void on_shortcutTeachersTimeConstraintsPushButton_clicked();
820 	void on_shortcutStudentsTimeConstraintsPushButton_clicked();
821 	void on_shortcutActivitiesTimeConstraintsPushButton_clicked();
822 	void on_shortcutAdvancedTimeConstraintsPushButton_clicked();
823 
824 	void on_shortcutAllSpaceConstraintsPushButton_clicked();
825 	void on_shortcutRoomsSpaceConstraintsPushButton_clicked();
826 	void on_shortcutTeachersSpaceConstraintsPushButton_clicked();
827 	void on_shortcutStudentsSpaceConstraintsPushButton_clicked();
828 	void on_shortcutSubjectsSpaceConstraintsPushButton_clicked();
829 	void on_shortcutActivityTagsSpaceConstraintsPushButton_clicked();
830 	void on_shortcutSubjectsAndActivityTagsSpaceConstraintsPushButton_clicked();
831 	void on_shortcutActivitiesSpaceConstraintsPushButton_clicked();
832 
833 	void on_shortcutGeneratePushButton_clicked();
834 	void on_shortcutGenerateMultiplePushButton_clicked();
835 	void on_shortcutViewTeachersPushButton_clicked();
836 	void on_shortcutViewStudentsPushButton_clicked();
837 	void on_shortcutViewRoomsPushButton_clicked();
838 	void on_shortcutShowSoftConflictsPushButton_clicked();
839 	//2014-07-01
840 	void on_shortcutsTimetableAdvancedPushButton_clicked();
841 	void on_shortcutsTimetablePrintPushButton_clicked();
842 	void on_shortcutsTimetableLockingPushButton_clicked();
843 
844 	void on_shortcutBasicPushButton_clicked();
845 	void on_shortcutSubjectsPushButton_clicked();
846 	void on_shortcutActivityTagsPushButton_clicked();
847 	void on_shortcutTeachersPushButton_clicked();
848 	void on_shortcutStudentsPushButton_clicked();
849 	void on_shortcutActivitiesPushButton_clicked();
850 	void on_shortcutSubactivitiesPushButton_clicked();
851 	void on_shortcutDataAdvancedPushButton_clicked();
852 	void on_shortcutDataSpacePushButton_clicked();
853 
854 	void on_shortcutOpenPushButton_clicked();
855 	void on_shortcutOpenRecentPushButton_clicked();
856 	void on_shortcutNewPushButton_clicked();
857 	void on_shortcutSavePushButton_clicked();
858 	void on_shortcutSaveAsPushButton_clicked();
859 
860 	void replyFinished(QNetworkReply* networkReply);
861 
862 protected:
863 	void closeEvent(QCloseEvent* event);
864 };
865 
866 #endif
867