1/***************************************************************************
2 * Copyright (C) 2011 by Till Theato (root@ttill.de) *
3 * This file is part of Kdenlive (www.kdenlive.org). *
4 * *
5 * Kdenlive 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 * Kdenlive 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 Kdenlive. If not, see <http://www.gnu.org/licenses/>. *
17 ***************************************************************************/
18
19#ifndef MONITOREDITWIDGET_H_
20#define MONITOREDITWIDGET_H_
21
22#include "ui_monitoreditwidget_ui.h"
23
24#include <QWidget>
25
26class QIcon;
27class MonitorScene;
28class Render;
29class QGraphicsView;
30class QVBoxLayout;
31
32
33class MonitorEditWidget : public QWidget
34{
35 Q_OBJECT
36
37public:
38 explicit MonitorEditWidget(Render *renderer, QWidget* parent = 0);
39 ~MonitorEditWidget();
40
41 /** @brief Updates the necessary settings on a profile change. */
42 void resetProfile(Render *renderer);
43
44 /** @brief Returns the on-monitor scene. */
45 MonitorScene *getScene() const;
46
47 /** @brief Returns the action toggling between the normal monitor and the editor. */
48 QAction *getVisibilityAction();
49 /** @brief Shows/Hides the visibility button/action. */
50 void showVisibilityButton(bool show);
51
52 /** @brief Adds a custom widget to the controls. */
53 void addCustomControl(QWidget *widget);
54 void addCustomButton(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, bool checkable = true, bool checked = true);
55 /** @brief Empties the list of custom controls. */
56 void removeCustomControls();
57
58private slots:
59 /** @brief Sets the KdenliveSetting directupdate with true = update parameters (rerender frame) during mouse move (before mouse button is released) */
60 void slotSetDirectUpdate(bool directUpdate);
61 /** @brief Update zoom slider value */
62 void slotZoom(int value);
63private:
64 Ui::MonitorEditWidget_UI m_ui;
65 MonitorScene *m_scene;
66 QGraphicsView *m_view;
67 QAction *m_visibilityAction;
68 QVBoxLayout *m_customControlsLayout;
69
70signals:
71 /** true = show edit monitor, false = show normal monitor */
72 void showEdit(bool show, bool manuallyTriggered = true);
73};
74
75
76#endif
77