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/Widgets/appbackground.cpp \
src/Widgets/appicon.cpp \
src/Widgets/appitem.cpp \
src/Widgets/dockconstants.cpp \
src/Widgets/dockitem.cpp \
src/Widgets/dockitemdelegate.cpp \
src/Widgets/docklayout.cpp \
src/Widgets/dockmodel.cpp \
src/Widgets/dockview.cpp \
src/Widgets/screenmask.cpp \
src/Widgets/windowpreview.cpp \
src/Panel/panel.cpp
src/Panel/panel.cpp \
src/Widgets/appitem.cpp
HEADERS += \
src/abstractdockitem.h \
@ -34,16 +32,14 @@ HEADERS += \
src/mainwidget.h \
src/Widgets/appbackground.h \
src/Widgets/appicon.h \
src/Widgets/appitem.h \
src/Widgets/dockconstants.h \
src/Widgets/dockitem.h \
src/Widgets/dockitemdelegate.h \
src/Widgets/docklayout.h \
src/Widgets/dockmodel.h \
src/Widgets/dockview.h \
src/Widgets/screenmask.h \
src/Widgets/windowpreview.h \
src/Panel/panel.h
src/Panel/panel.h \
src/Widgets/appitem.h
RESOURCES += \
images.qrc

View File

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

View File

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