Deactivated the drag ability on non-dragable items

preferencesAboutTextFull
shibakaneki 14 years ago
parent 162e257b96
commit 704eb92645
  1. 15
      src/board/UBLibraryController.cpp
  2. 3
      src/board/UBLibraryController.h
  3. 6
      src/gui/UBLibraryWidget.cpp
  4. 37
      src/gui/UBThumbnailWidget.cpp
  5. 1
      src/gui/UBThumbnailWidget.h

@ -221,40 +221,47 @@ QList<UBLibElement*> UBLibraryController::rootCategoriesList()
UBLibElement* element = new UBLibElement(eUBLibElementType_Folder, mAudioStandardDirectoryPath, tr("Audios", "Audio category element")); UBLibElement* element = new UBLibElement(eUBLibElementType_Folder, mAudioStandardDirectoryPath, tr("Audios", "Audio category element"));
QImage* categoryImage = new QImage(":images/libpalette/AudiosCategory.svg"); QImage* categoryImage = new QImage(":images/libpalette/AudiosCategory.svg");
element->setThumbnail(categoryImage); element->setThumbnail(categoryImage);
element->setMoveable(false);
categories << element; categories << element;
element = new UBLibElement(eUBLibElementType_Folder, mVideoStandardDirectoryPath, tr("Movies", "Movies category element")); element = new UBLibElement(eUBLibElementType_Folder, mVideoStandardDirectoryPath, tr("Movies", "Movies category element"));
categoryImage = new QImage(":images/libpalette/MoviesCategory.svg"); categoryImage = new QImage(":images/libpalette/MoviesCategory.svg");
element->setThumbnail(categoryImage); element->setThumbnail(categoryImage);
element->setMoveable(false);
categories << element; categories << element;
element = new UBLibElement(eUBLibElementType_VirtualFolder, picturesVirtualPath, tr("Pictures", "Pictures category element")); element = new UBLibElement(eUBLibElementType_VirtualFolder, picturesVirtualPath, tr("Pictures", "Pictures category element"));
categoryImage = new QImage(":images/libpalette/PicturesCategory.svg"); categoryImage = new QImage(":images/libpalette/PicturesCategory.svg");
element->setThumbnail(categoryImage); element->setThumbnail(categoryImage);
element->setMoveable(false);
categories << element; categories << element;
QString path = UBSettings::settings()->uniboardShapeLibraryDirectory(); QString path = UBSettings::settings()->uniboardShapeLibraryDirectory();
categoryImage = new QImage(":images/libpalette/ShapesCategory.svg"); categoryImage = new QImage(":images/libpalette/ShapesCategory.svg");
element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(path), tr("Shapes", "Shapes category element")); element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(path), tr("Shapes", "Shapes category element"));
element->setThumbnail(categoryImage); element->setThumbnail(categoryImage);
element->setMoveable(false);
categories << element; categories << element;
categoryImage = new QImage(":images/libpalette/ApplicationsCategory.svg"); categoryImage = new QImage(":images/libpalette/ApplicationsCategory.svg");
element = new UBLibElement(eUBLibElementType_VirtualFolder, applicationsVirtualPath, tr("Applications", "Applications category element")); element = new UBLibElement(eUBLibElementType_VirtualFolder, applicationsVirtualPath, tr("Applications", "Applications category element"));
element->setThumbnail(categoryImage); element->setThumbnail(categoryImage);
element->setMoveable(false);
categories << element; categories << element;
categoryImage = new QImage(":images/libpalette/FavoritesCategory.svg"); categoryImage = new QImage(":images/libpalette/FavoritesCategory.svg");
element = new UBLibElement(eUBLibElementType_VirtualFolder, favoriteVirtualPath, tr("Favorite", "Favorite category element")); element = new UBLibElement(eUBLibElementType_VirtualFolder, favoriteVirtualPath, tr("Favorite", "Favorite category element"));
element->setThumbnail(categoryImage); element->setThumbnail(categoryImage);
element->setMoveable(false);
categories << element; categories << element;
categoryImage = new QImage(":images/libpalette/InteractivesCategory.svg"); categoryImage = new QImage(":images/libpalette/InteractivesCategory.svg");
interactivesCategoryPath = UBSettings::settings()->uniboardGipLibraryDirectory(); interactivesCategoryPath = UBSettings::settings()->uniboardGipLibraryDirectory();
element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(interactivesCategoryPath), tr("Interactives", "Interactives category element")); element = new UBLibElement(eUBLibElementType_Folder, QUrl::fromLocalFile(interactivesCategoryPath), tr("Interactives", "Interactives category element"));
element->setThumbnail(categoryImage); element->setThumbnail(categoryImage);
element->setMoveable(false);
categories << element; categories << element;
@ -2429,7 +2436,8 @@ QString UBLibraryController::favoritePath()
UBLibElement::UBLibElement() { UBLibElement::UBLibElement() {
mType = eUBLibElementType_Category; mType = eUBLibElementType_Category;
mName = QObject::tr("/Home", "Category list label on nagigation tool bar"); mName = QObject::tr("/Home", "Category list label on navigation tool bar");
mbMoveable = false;
} }
@ -2439,6 +2447,7 @@ UBLibElement::UBLibElement(eUBLibElementType type, const QUrl &path, const QStri
mPath = path; mPath = path;
mName = name; mName = name;
mInfo = ""; mInfo = "";
mbMoveable = true;
if (type == eUBLibElementType_Folder) if (type == eUBLibElementType_Folder)
mThumbnail = QImage(":images/libpalette/folder.svg"); mThumbnail = QImage(":images/libpalette/folder.svg");
@ -2448,6 +2457,9 @@ UBLibElement::UBLibElement(eUBLibElementType type, const QUrl &path, const QStri
if (type == eUBLibElementType_Item) if (type == eUBLibElementType_Item)
mExtension = QFileInfo(path.toLocalFile()).completeSuffix(); mExtension = QFileInfo(path.toLocalFile()).completeSuffix();
if(type == eUBLibElementType_VirtualFolder || type == eUBLibElementType_Category)
mbMoveable = false;
} }
UBLibElement::~UBLibElement() UBLibElement::~UBLibElement()
@ -2483,6 +2495,7 @@ UBLibElement* UBLibElement::trashElement()
trashElement = new UBLibElement(eUBLibElementType_Folder, UBSettings::trashLibraryPaletteDirPath(), QObject::tr("Trash", "Pictures category element")); trashElement = new UBLibElement(eUBLibElementType_Folder, UBSettings::trashLibraryPaletteDirPath(), QObject::tr("Trash", "Pictures category element"));
QImage *categoryImage = new QImage(":images/libpalette/TrashCategory.svg"); QImage *categoryImage = new QImage(":images/libpalette/TrashCategory.svg");
trashElement->setThumbnail(categoryImage); trashElement->setThumbnail(categoryImage);
trashElement->setMoveable(false);
return trashElement; return trashElement;
} }

@ -46,6 +46,8 @@ public:
void setName(QString name){mName = name;} void setName(QString name){mName = name;}
QString extension(){return mExtension;} QString extension(){return mExtension;}
void setExtension(QString &extension){ mExtension = extension;} void setExtension(QString &extension){ mExtension = extension;}
bool isMoveable(){return mbMoveable;}
void setMoveable(bool bState){mbMoveable = bState;}
private: private:
eUBLibElementType mType; eUBLibElementType mType;
@ -54,6 +56,7 @@ private:
QString mInfo; QString mInfo;
QString mName; QString mName;
QString mExtension; QString mExtension;
bool mbMoveable;
}; };
class UBChainedLibElement class UBChainedLibElement

@ -209,6 +209,7 @@ void UBLibraryWidget::onSelectionChanged()
QList<UBLibElement*> qlSelectedItems; QList<UBLibElement*> qlSelectedItems;
QList<QGraphicsItem*> qlGI = selectedItems(); QList<QGraphicsItem*> qlGI = selectedItems();
bCanDrag = true;
foreach(QGraphicsItem* it, qlGI) foreach(QGraphicsItem* it, qlGI)
{ {
int itIndex = mGraphicItems.indexOf(it); int itIndex = mGraphicItems.indexOf(it);
@ -222,6 +223,11 @@ void UBLibraryWidget::onSelectionChanged()
{ {
qlSelectedItems << pElem; qlSelectedItems << pElem;
} }
if(!pElem->isMoveable())
{
bCanDrag = false;
}
} }
} }
} }

@ -19,6 +19,8 @@ UBThumbnailWidget::UBThumbnailWidget(QWidget* parent)
, mSelectionSpan(0) , mSelectionSpan(0)
, mLassoRectItem(0) , mLassoRectItem(0)
{ {
// By default, the drag is possible
bCanDrag = true;
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing); setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing);
setFrameShape(QFrame::NoFrame); setFrameShape(QFrame::NoFrame);
@ -326,30 +328,33 @@ void UBThumbnailWidget::mouseMoveEvent(QMouseEvent *event)
if (0 == selectedItems().size()) if (0 == selectedItems().size())
return; return;
QDrag *drag = new QDrag(this); if(bCanDrag)
QMimeData *mime = new QMimeData(); {
QDrag *drag = new QDrag(this);
QMimeData *mime = new QMimeData();
if (mMimeType.length() > 0) if (mMimeType.length() > 0)
mime->setData(mMimeType, QByteArray()); // trick the d&d system to register our own mime type mime->setData(mMimeType, QByteArray()); // trick the d&d system to register our own mime type
drag->setMimeData(mime); drag->setMimeData(mime);
QList<QUrl> qlElements; QList<QUrl> qlElements;
foreach (QGraphicsItem* item, selectedItems()) foreach (QGraphicsItem* item, selectedItems())
{
if (mGraphicItems.contains(item))
{ {
if (mGraphicItems.indexOf(item) <= mItemsPaths.size()){ if (mGraphicItems.contains(item))
qlElements << mItemsPaths.at(mGraphicItems.indexOf(item)); {
if (mGraphicItems.indexOf(item) <= mItemsPaths.size()){
qlElements << mItemsPaths.at(mGraphicItems.indexOf(item));
}
} }
} }
}
if (qlElements.size() > 0){ if (qlElements.size() > 0){
mime->setUrls(qlElements); mime->setUrls(qlElements);
drag->setMimeData(mime); drag->setMimeData(mime);
drag->exec(); drag->exec();
}
} }
} }

@ -77,6 +77,7 @@ class UBThumbnailWidget : public QGraphicsView
QList<QUrl> mItemsPaths; QList<QUrl> mItemsPaths;
QStringList mLabels; QStringList mLabels;
bool bSelectionInProgress; bool bSelectionInProgress;
bool bCanDrag;
private: private:
void selectAll(); void selectAll();

Loading…
Cancel
Save