#include "dockingcontroller.h"
#include "mainwindow.h"
-DockingController::DockingController(int dockPos, ControllerForm *conForm,
- QGraphicsScene *conScene, QAction *menu, QWidget *parent)
- : DockingConView(conForm, conScene, parent)
+DockingController::DockingController(ControllerForm *conForm,
+ QAction *menu, int dockPos, QWidget *parent) : QWidget(parent)
{
- this->dockPos = dockPos;
this->conForm = conForm;
this->menu = menu;
+ this->dockPos = dockPos;
+ setStyleSheet("border-style: none");
setAttribute(Qt::WA_DeleteOnClose);
- setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+
+ QVBoxLayout *layout = new QVBoxLayout(this);
+ layout->setMargin(0);
+ layout->setSpacing(0);
+
+ QGraphicsScene *conScene = new QGraphicsScene(this);
+ conScene->setBackgroundBrush(Qt::black);
+
+ conView = new DockingConView(conForm, conScene, this);
+ conView->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
+ layout->addWidget(conView);
}
int DockingController::getDockPos()
#include "controllerform.h"
#include "dockingconview.h"
-class DockingController : public DockingConView
+class DockingController : public QWidget
{
Q_OBJECT
public:
- explicit DockingController(int dockPos, ControllerForm *conForm,
- QGraphicsScene *conScene, QAction *menu, QWidget *parent = 0);
+ explicit DockingController(ControllerForm *conForm,
+ QAction *menu, int dockPos, QWidget *parent = 0);
~DockingController();
int getDockPos();
void setRegion(QImage baseImage);
private:
- int dockPos;
+ DockingConView *conView;
ControllerForm *conForm;
QAction *menu;
+ int dockPos;
};
#endif // DOCKINGCONTROLLER_H
#include "mainwindow.h"
#include "skinkeyitem.h"
-DockingConView::DockingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent) :
- QGraphicsView(scene, parent)
+DockingConView::DockingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent)
+ : QGraphicsView(scene, parent)
{
setStyleSheet("background: transparent");
setStyleSheet("border-style: none");
}
if (event->button() == Qt::LeftButton) {
- QWidget *win = ((QWidget *) this->parent());
+ QWidget *win = ((QWidget *)this->parent()->parent());
grabPos = event->globalPos();
eventPos = event->pos();
- rubberPos = win->pos() + this->pos();
+ rubberPos = win->pos() + ((QWidget *)this->parent())->pos();
if (rubberBand != NULL) {
rubberBand->setGeometry(QRect(rubberPos, size()));
}
/* toggle */
- MainWindow *win = ((MainWindow *)this->parent());
+ MainWindow *win = ((MainWindow *)this->parent()->parent());
win->getUIState()->conState.recentlyFloatPos = event->globalPos() - eventPos;
win->openController(win->getUIState()->conState.conFormIndex, -1);
protected:
void resizeEvent(QResizeEvent *event);
-
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
layout->setSpacing(0);
QGraphicsScene *conScene = new QGraphicsScene(this);
+ conScene->setBackgroundBrush(Qt::black);
conView = new FloatingConView(conForm, conScene, this);
conView->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
#define DOCKABLE_AREA_WIDTH 30
-FloatingConView::FloatingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent) :
- QGraphicsView(scene, parent)
+FloatingConView::FloatingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent)
+ : QGraphicsView(scene, parent)
{
setStyleSheet("background: transparent");
setStyleSheet("border-style: none");
~FloatingConView();
protected:
- int isDockable(QWidget *object, QWidget *subject);
void resizeEvent(QResizeEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
+ int isDockable(QWidget *object, QWidget *subject);
+
QPoint grabPos;
QPoint conPos;
getUIState()->conState.floatingCon =
new FloatingController(conForm, action, this);
} else {
- conScene = new QGraphicsScene(this);
- conScene->setBackgroundBrush(Qt::black);
getUIState()->conState.dockingCon =
- new DockingController(dockPos, conForm, conScene, action, this);
+ new DockingController(conForm, action, dockPos, this);
}
/* update layout */
getDockingCon()->close();
getUIState()->conState.dockingCon = NULL;
- conScene->clear();
- delete conScene;
- conScene = NULL;
-
adjustSize();
}
/* windowing */
QHBoxLayout *winLayout;
QGraphicsScene *skinScene;
- QGraphicsScene *conScene; /* for docking controller */
SkinView* skinView;
DisplayBase *display;
ContextMenu *popupMenu;