Merge branch 'guillaume-dev' into develop

preferencesAboutTextFull
Guillaume Burel 12 years ago
commit 545e316074
  1. 2
      src/adaptors/UBSvgSubsetAdaptor.cpp
  2. 21
      src/domain/UBGraphicsScene.cpp
  3. 15
      src/tools/UBGraphicsCache.cpp
  4. 12
      src/tools/UBGraphicsCache.h

@ -3090,7 +3090,7 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
UBGraphicsCache* UBSvgSubsetAdaptor::UBSvgSubsetReader::cacheFromSvg()
{
UBGraphicsCache* pCache = new UBGraphicsCache();
UBGraphicsCache* pCache = UBGraphicsCache::instance(mScene);
pCache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
graphicsItemFromSvg(pCache);

@ -1603,6 +1603,9 @@ void UBGraphicsScene::removeItem(QGraphicsItem* item)
--mItemCount;
mFastAccessItems.removeAll(item);
/* delete the item if it is cache to allow its reinstanciation, because Cache implements design pattern Singleton. */
if (dynamic_cast<UBGraphicsCache*>(item))
UBCoreGraphicsScene::deleteItem(item);
}
void UBGraphicsScene::removeItems(const QSet<QGraphicsItem*>& items)
@ -1956,17 +1959,17 @@ void UBGraphicsScene::addAristo(QPointF center)
void UBGraphicsScene::addCache()
{
UBGraphicsCache* cache = new UBGraphicsCache();
mTools << cache;
UBGraphicsCache* cache = UBGraphicsCache::instance(this);
if (!items().contains(cache)) {
addItem(cache);
addItem(cache);
cache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
cache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
cache->setVisible(true);
cache->setSelected(true);
UBApplication::boardController->notifyCache(true);
UBApplication::boardController->notifyPageChanged();
cache->setVisible(true);
cache->setSelected(true);
UBApplication::boardController->notifyCache(true);
UBApplication::boardController->notifyPageChanged();
}
}
void UBGraphicsScene::addMask(const QPointF &center)

@ -24,11 +24,21 @@
#include "core/memcheck.h"
UBGraphicsCache::UBGraphicsCache():QGraphicsRectItem()
QMap<UBGraphicsScene*, UBGraphicsCache*> UBGraphicsCache::sInstances;
UBGraphicsCache* UBGraphicsCache::instance(UBGraphicsScene *scene)
{
if (!sInstances.contains(scene))
sInstances.insert(scene, new UBGraphicsCache(scene));
return sInstances[scene];
}
UBGraphicsCache::UBGraphicsCache(UBGraphicsScene *scene) : QGraphicsRectItem()
, mMaskColor(Qt::black)
, mMaskShape(eMaskShape_Circle)
, mShapeWidth(100)
, mDrawMask(false)
, mScene(scene)
{
// Get the board size and pass it to the shape
QRect boardRect = UBApplication::boardController->displayView()->rect();
@ -39,11 +49,12 @@ UBGraphicsCache::UBGraphicsCache():QGraphicsRectItem()
UBGraphicsCache::~UBGraphicsCache()
{
sInstances.remove(mScene);
}
UBItem* UBGraphicsCache::deepCopy() const
{
UBGraphicsCache* copy = new UBGraphicsCache();
UBGraphicsCache* copy = new UBGraphicsCache(mScene);
copyItemParameters(copy);

@ -30,7 +30,7 @@ typedef enum
class UBGraphicsCache : public QGraphicsRectItem, public UBItem
{
public:
UBGraphicsCache();
static UBGraphicsCache* instance(UBGraphicsScene *scene);
~UBGraphicsCache();
enum { Type = UBGraphicsItemType::cacheItemType };
@ -55,8 +55,7 @@ protected:
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
private:
void init();
QRectF updateRect(QPointF currentPoint);
static QMap<UBGraphicsScene*, UBGraphicsCache*> sInstances;
QColor mMaskColor;
eMaskShape mMaskShape;
@ -65,6 +64,13 @@ private:
QPointF mShapePos;
int mOldShapeWidth;
QPointF mOldShapePos;
UBGraphicsScene* mScene;
UBGraphicsCache(UBGraphicsScene *scene);
void init();
QRectF updateRect(QPointF currentPoint);
};
#endif // UBGRAPHICSCACHE_H

Loading…
Cancel
Save