AbstractDockItem as the base class of all items

This commit is contained in:
Hualet Wang 2015-06-30 20:22:44 +08:00
parent f047e958c4
commit 40127b7d49
6 changed files with 47 additions and 140 deletions

View File

@ -17,16 +17,14 @@ SOURCES += \
src/mainwidget.cpp \ src/mainwidget.cpp \
src/Widgets/appbackground.cpp \ src/Widgets/appbackground.cpp \
src/Widgets/appicon.cpp \ src/Widgets/appicon.cpp \
src/Widgets/appitem.cpp \
src/Widgets/dockconstants.cpp \ src/Widgets/dockconstants.cpp \
src/Widgets/dockitem.cpp \
src/Widgets/dockitemdelegate.cpp \
src/Widgets/docklayout.cpp \ src/Widgets/docklayout.cpp \
src/Widgets/dockmodel.cpp \ src/Widgets/dockmodel.cpp \
src/Widgets/dockview.cpp \ src/Widgets/dockview.cpp \
src/Widgets/screenmask.cpp \ src/Widgets/screenmask.cpp \
src/Widgets/windowpreview.cpp \ src/Widgets/windowpreview.cpp \
src/Panel/panel.cpp src/Panel/panel.cpp \
src/Widgets/appitem.cpp
HEADERS += \ HEADERS += \
src/abstractdockitem.h \ src/abstractdockitem.h \
@ -34,16 +32,14 @@ HEADERS += \
src/mainwidget.h \ src/mainwidget.h \
src/Widgets/appbackground.h \ src/Widgets/appbackground.h \
src/Widgets/appicon.h \ src/Widgets/appicon.h \
src/Widgets/appitem.h \
src/Widgets/dockconstants.h \ src/Widgets/dockconstants.h \
src/Widgets/dockitem.h \
src/Widgets/dockitemdelegate.h \
src/Widgets/docklayout.h \ src/Widgets/docklayout.h \
src/Widgets/dockmodel.h \ src/Widgets/dockmodel.h \
src/Widgets/dockview.h \ src/Widgets/dockview.h \
src/Widgets/screenmask.h \ src/Widgets/screenmask.h \
src/Widgets/windowpreview.h \ src/Widgets/windowpreview.h \
src/Panel/panel.h src/Panel/panel.h \
src/Widgets/appitem.h
RESOURCES += \ RESOURCES += \
images.qrc images.qrc

View File

@ -1,37 +1,33 @@
#include "appitem.h" #include "appitem.h"
AppItem::AppItem(QWidget *parent) : AppItem::AppItem(QWidget *parent) :
DockItem(parent) AbstractDockItem(parent)
{ {
setParent(parent);
setAcceptDrops(true); setAcceptDrops(true);
resize(itemWidth,itemHeight); resize(itemWidth, itemHeight);
initBackground(); initBackground();
} }
AppItem::AppItem(QString title, QWidget *parent): AppItem::AppItem(QString title, QWidget *parent):
DockItem(parent) AbstractDockItem(parent)
{ {
this->setParent(parent); m_itemTitle = title;
this->itemTitle = title;
setAcceptDrops(true); setAcceptDrops(true);
resize(itemWidth,itemHeight); resize(itemWidth, itemHeight);
initBackground(); initBackground();
} }
AppItem::AppItem(QString title, QString iconPath, QWidget *parent) : AppItem::AppItem(QString title, QString iconPath, QWidget *parent) :
DockItem(parent) AbstractDockItem(parent)
{ {
this->setParent(parent); m_itemTitle = title;
this->itemTitle = title; m_itemIconPath = iconPath;
this->itemIconPath = iconPath;
setAcceptDrops(true); setAcceptDrops(true);
resize(itemWidth,itemHeight); resize(itemWidth, itemHeight);
initBackground(); initBackground();
setIcon(itemIconPath); setIcon(m_itemIconPath);
} }
QPoint AppItem::getNextPos() QPoint AppItem::getNextPos()
@ -52,15 +48,17 @@ void AppItem::setNextPos(int x, int y)
void AppItem::resizeResources() void AppItem::resizeResources()
{ {
if (appIcon != NULL) if (m_appIcon != NULL)
{ {
appIcon->resize(DockConstants::getInstants()->getIconSize(),DockConstants::getInstants()->getIconSize()); m_appIcon->resize(DockConstants::getInstants()->getIconSize(),
appIcon->move(this->width() / 2 - appIcon->width() / 2, this->height() / 2 - appIcon->height() / 2); DockConstants::getInstants()->getIconSize());
m_appIcon->move(width() / 2 - m_appIcon->width() / 2,
height() / 2 - m_appIcon->height() / 2);
} }
if (appBackground != NULL) if (appBackground != NULL)
{ {
appBackground->resize(this->width(),this->height()); appBackground->resize(width(), height());
appBackground->move(0,0); appBackground->move(0,0);
} }
} }
@ -68,7 +66,7 @@ void AppItem::resizeResources()
void AppItem::initBackground() void AppItem::initBackground()
{ {
appBackground = new AppBackground(this); appBackground = new AppBackground(this);
appBackground->resize(this->width(),this->height()); appBackground->resize(width(), height());
appBackground->move(0,0); appBackground->move(0,0);
} }
@ -99,11 +97,11 @@ void AppItem::mouseMoveEvent(QMouseEvent *event)
{ {
QDrag* drag = new QDrag(this); QDrag* drag = new QDrag(this);
QMimeData* data = new QMimeData(); QMimeData* data = new QMimeData();
QImage dataImg(this->itemIconPath); QImage dataImg(m_itemIconPath);
data->setImageData(QVariant(dataImg)); data->setImageData(QVariant(dataImg));
drag->setMimeData(data); drag->setMimeData(data);
QPixmap pixmap(this->itemIconPath); QPixmap pixmap(m_itemIconPath);
drag->setPixmap(pixmap); drag->setPixmap(pixmap);
drag->setHotSpot(QPoint(15,15)); drag->setHotSpot(QPoint(15,15));

View File

@ -12,12 +12,12 @@
#include <QPixmap> #include <QPixmap>
#include <QImage> #include <QImage>
#include <QDebug> #include <QDebug>
#include "dockitem.h" #include "abstractdockitem.h"
#include "dockconstants.h" #include "dockconstants.h"
#include "appicon.h" #include "appicon.h"
#include "appbackground.h" #include "appbackground.h"
class AppItem : public DockItem class AppItem : public AbstractDockItem
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QPoint pos READ pos WRITE move) Q_PROPERTY(QPoint pos READ pos WRITE move)

View File

@ -1,53 +0,0 @@
#include "dockitem.h"
DockItem::DockItem(QWidget *parent) :
QFrame(parent)
{
}
QWidget * DockItem::getContents()
{
return NULL;
}
void DockItem::setTitle(const QString &title)
{
this->itemTitle = title;
}
void DockItem::setIcon(const QString &iconPath, int size)
{
appIcon = new AppIcon(iconPath,this);
appIcon->resize(size,size);
appIcon->move((this->height() - appIcon->height()) / 2, (this->height() - appIcon->height()) / 2);
}
void DockItem::setActived(bool value)
{
this->itemActived = value;
}
bool DockItem::actived()
{
return this->itemActived;
}
void DockItem::setMoveable(bool value)
{
this->itemMoveable = value;
}
bool DockItem::moveable()
{
return this->itemMoveable;
}
void DockItem::setIndex(int value)
{
this->itemIndex = value;
}
int DockItem::index()
{
return this->itemIndex;
}

View File

@ -1,42 +0,0 @@
#ifndef DOCKITEM_H
#define DOCKITEM_H
#include <QWidget>
#include <QFrame>
#include <QMouseEvent>
#include <QRectF>
#include <QDebug>
#include "dockconstants.h"
#include "appicon.h"
class DockItem : public QFrame
{
Q_OBJECT
public:
explicit DockItem(QWidget *parent = 0);
virtual ~DockItem(){}
virtual QWidget * getContents();
virtual void setTitle(const QString &title);
virtual void setIcon(const QString &iconPath, int size = 42);
virtual void setMoveable(bool value);
virtual bool moveable();
virtual void setActived(bool value);
virtual bool actived();
virtual void setIndex(int value);
virtual int index();
protected:
AppIcon * appIcon = NULL;
bool itemMoveable = true;
bool itemActived = false;
QString itemTitle = "";
QString itemIconPath = "";
int itemIndex = 0;
};
#endif // DOCKITEM_H

View File

@ -3,35 +3,43 @@
#include <QWidget> #include <QWidget>
#include <QFrame> #include <QFrame>
#include <QMouseEvent> #include <QLabel>
#include <QRectF> #include "Widgets/appicon.h"
class AbstractDockItem : public QFrame class AbstractDockItem : public QFrame
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit AbstractDockItem(QWidget *parent = 0); explicit AbstractDockItem(QWidget *parent = 0) :
virtual ~AbstractDockItem(){} QFrame(parent) {}
virtual ~AbstractDockItem() {}
virtual QWidget * getContents() = 0; virtual QWidget * getContents() { return NULL; }
virtual void setTitle(const QString &title) = 0; virtual void setTitle(const QString &title) { m_itemTitle = title; }
virtual void setIcon(const QString &iconPath, int size = 42) = 0; virtual void setIcon(const QString &iconPath, int size = 42) {
virtual void setMoveable(bool value) = 0; m_appIcon = new AppIcon(iconPath, this);
virtual bool moveable() = 0; m_appIcon->resize(size, size);
virtual void setActived(bool value) = 0; m_appIcon->move((width() - m_appIcon->width()) / 2,
virtual bool actived() = 0; (height() - m_appIcon->height()) / 2);
virtual void setIndex(int value) = 0; }
virtual int index() = 0;
virtual void setMoveable(bool value) { m_itemMoveable = value; }
virtual bool moveable() { return m_itemMoveable; }
virtual void setActived(bool value) { m_itemActived = value; }
virtual bool actived() { return m_itemActived; }
virtual void setIndex(int value) { m_itemIndex = value; }
virtual int index() { return m_itemIndex; }
protected: protected:
QPixmap * m_appIcon = NULL; QLabel * m_appIcon = NULL;
bool m_itemMoveable = true; bool m_itemMoveable = true;
bool m_itemActived = false; bool m_itemActived = false;
QString m_itemTitle = ""; QString m_itemTitle = "";
QString m_itemIconPath = ""; QString m_itemIconPath = "";
int m_itemIndex = 0; int m_itemIndex = 0;
}; };