Skip to content

Commit 426e679

Browse files
committed
Added a full-screen mode.
1 parent 7ebc22c commit 426e679

File tree

12 files changed

+1094
-1023
lines changed

12 files changed

+1094
-1023
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99
- Added proper top menu options for many dialogs.
1010
- Added modules support.
1111
- Added the possibility to isolate/break connections of any connectable object.
12+
- Added a full-screen mode.
1213

1314
### Changed
1415
- Updated the roadmap.

ROADMAP.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Welcome to the Degate roadmap. This roadmap list every feature that is planned t
2929
- [ ] Bug fixes.
3030
- [x] Module dialog.
3131
- [x] New option to break interconnexions (isolation).
32+
- [x] Full-screen mode.
3233

3334
## For 2.0.0-alpha.2 *[**current**]*:
3435

res/languages/degate_de.ts

Lines changed: 151 additions & 146 deletions
Large diffs are not rendered by default.

res/languages/degate_en.ts

Lines changed: 151 additions & 146 deletions
Large diffs are not rendered by default.

res/languages/degate_es.ts

Lines changed: 151 additions & 146 deletions
Large diffs are not rendered by default.

res/languages/degate_fr.ts

Lines changed: 151 additions & 146 deletions
Large diffs are not rendered by default.

res/languages/degate_it.ts

Lines changed: 151 additions & 146 deletions
Large diffs are not rendered by default.

res/languages/degate_ko.ts

Lines changed: 151 additions & 146 deletions
Large diffs are not rendered by default.

res/languages/degate_ru.ts

Lines changed: 151 additions & 146 deletions
Large diffs are not rendered by default.

src/Core/LogicModel/LogicModelImporter.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ void LogicModelImporter::parse_logic_model_element(QDomElement const lm_elem,
122122
if (!modules_elem.isNull())
123123
{
124124
std::list<Module_shptr> mods = parse_modules_element(modules_elem, lmodel);
125-
//assert(mods.size() == 1); //Todo : why problem with legic prime subproject loading ??
125+
126+
assert(mods.size() == 1);
127+
126128
lmodel->set_main_module(mods.front());
127129
}
128130
}

src/GUI/MainWindow.cc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
#include "GUI/Dialog/ProgressDialog.h"
2424
#include "GUI/Dialog/AboutDialog.h"
2525

26+
#ifdef SYS_WINDOWS
27+
#include <QtPlatformHeaders/QWindowsWindowFunctions>
28+
#endif
29+
2630
#include <memory>
2731

2832
#define SECOND(a) a * 1000
@@ -161,6 +165,12 @@ namespace degate
161165
snap_to_grid_view_action->setChecked(snap_to_grid);
162166
QObject::connect(snap_to_grid_view_action, SIGNAL(toggled(bool)), this, SLOT(on_menu_view_snap_to_grid(bool)));
163167

168+
view_menu->addSeparator();
169+
170+
fullscreen_view_action = view_menu->addAction("");
171+
fullscreen_view_action->setCheckable(true);
172+
fullscreen_view_action->setShortcut(Qt::Key_F11);
173+
QObject::connect(fullscreen_view_action, SIGNAL(toggled(bool)), this, SLOT(on_menu_view_fullscreen(bool)));
164174

165175

166176
// Layer menu
@@ -339,6 +349,13 @@ namespace degate
339349
auto_save_timer.start();
340350

341351
QObject::connect(&auto_save_timer, SIGNAL(timeout()), this, SLOT(auto_save()));
352+
353+
// Workaround for a bug on Windows that occurs when using QOpenGLWidget + fullscreen mode.
354+
// See: https://doc.qt.io/qt-5/windows-issues.html#fullscreen-opengl-based-windows.
355+
#ifdef SYS_WINDOWS
356+
this->topLevelWidget()->winId();
357+
QWindowsWindowFunctions::setHasBorderInFullScreen(this->topLevelWidget()->windowHandle(), true);
358+
#endif
342359
}
343360

344361
MainWindow::~MainWindow()
@@ -425,6 +442,7 @@ namespace degate
425442
grid_configuration_view_action->setText(tr("Grid configuration"));
426443
show_grid_view_action->setText(tr("Show grid"));
427444
snap_to_grid_view_action->setText(tr("Snap to grid"));
445+
fullscreen_view_action->setText(tr("Fullscreen"));
428446

429447
// Layer menu
430448
layer_menu->setTitle(tr("Layer"));
@@ -722,6 +740,14 @@ namespace degate
722740
PREFERENCES_HANDLER.update(new_preferences);
723741
}
724742

743+
void MainWindow::on_menu_view_fullscreen(bool value)
744+
{
745+
if (value)
746+
showFullScreen();
747+
else
748+
showNormal();
749+
}
750+
725751
void MainWindow::on_menu_layer_edit()
726752
{
727753
if (project == nullptr)

src/GUI/MainWindow.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,11 @@ namespace degate
157157
*/
158158
void on_menu_view_snap_to_grid(bool value);
159159

160+
/**
161+
* Enable/disable fullscreen mode.
162+
*/
163+
void on_menu_view_fullscreen(bool value);
164+
160165

161166
/* Layer menu */
162167

@@ -414,6 +419,7 @@ namespace degate
414419
QAction* grid_configuration_view_action;
415420
QAction* show_grid_view_action;
416421
QAction* snap_to_grid_view_action;
422+
QAction* fullscreen_view_action;
417423

418424
// Layer menu
419425
QMenu* layer_menu;

0 commit comments

Comments
 (0)