| 18 | #include <QScreen> |
| 19 | |
| 20 | PresenterWidget::PresenterWidget(Worksheet* worksheet, QScreen* screen, bool interactive, QWidget* parent) |
| 21 | : QWidget(parent) |
| 22 | , m_worksheet(worksheet) |
| 23 | , m_view(new WorksheetView(worksheet)) { |
| 24 | setAttribute(Qt::WA_DeleteOnClose); |
| 25 | setFocus(); |
| 26 | |
| 27 | m_view->setParent(this); |
| 28 | m_view->setInteractive(interactive); |
| 29 | m_view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
| 30 | m_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); |
| 31 | m_view->setContextMenuPolicy(Qt::NoContextMenu); |
| 32 | m_view->initPlotNavigationActions(); // init the relevant actions so we can also navigate in the plots in the presenter mode |
| 33 | |
| 34 | const QRect& screenSize = screen->geometry(); |
| 35 | m_view->setGeometry(screenSize); // use the full screen size for the view |
| 36 | m_view->show(); |
| 37 | m_view->setFocus(); |
| 38 | |
| 39 | m_panel = new SlidingPanelTop(screenSize, worksheet->name(), this); |
| 40 | qApp->installEventFilter(this); |
| 41 | connect(m_panel->quitButton(), &QPushButton::clicked, this, [=]() { |
| 42 | close(); |
| 43 | }); |
| 44 | |
| 45 | if (interactive) { |
| 46 | const auto group = Settings::group(QStringLiteral("PresenterWidget")); |
| 47 | const auto fixed = group.readEntry("PresenterWidgetNavigationPanelFixed", false); |
| 48 | m_navigationPanel = new SlidingPanelBottom(screenSize, m_view, fixed, this); |
| 49 | } |
| 50 | } |
| 51 | |
| 52 | PresenterWidget::~PresenterWidget() { |
| 53 | delete m_view; |
nothing calls this directly
no test coverage detected