Reviewed the code a little bit

preferencesAboutTextFull
Claudio Valerio 14 years ago
parent dbd2aecadb
commit 874e42a299
  1. 1
      Sankore_3.1.pro
  2. 922
      resources/forms/library.ui
  3. 22
      src/board/UBBoardController.cpp
  4. 1
      src/board/UBBoardController.h
  5. 1893
      src/board/UBLibraryController.cpp
  6. 246
      src/board/UBLibraryController.h
  7. 247
      src/board/UBLibraryTreeWidget.cpp
  8. 62
      src/board/UBLibraryTreeWidget.h
  9. 2
      src/board/board.pri
  10. 59
      src/core/UBApplication.cpp
  11. 17
      src/gui/UBLibPathViewer.cpp

@ -65,7 +65,6 @@ FORMS += resources/forms/mainWindow.ui \
resources/forms/preferences.ui \ resources/forms/preferences.ui \
resources/forms/brushProperties.ui \ resources/forms/brushProperties.ui \
resources/forms/documents.ui \ resources/forms/documents.ui \
resources/forms/library.ui \
resources/forms/blackoutWidget.ui \ resources/forms/blackoutWidget.ui \
resources/forms/trapFlash.ui \ resources/forms/trapFlash.ui \
resources/forms/youTubePublishingDialog.ui \ resources/forms/youTubePublishingDialog.ui \

@ -1,922 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>library</class>
<widget class="QWidget" name="library">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>961</width>
<height>550</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="windowTitle">
<string>Sankore Library</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="margin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QFrame" name="topFrame">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="libraryTab">
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<property name="elideMode">
<enum>Qt::ElideLeft</enum>
</property>
<widget class="QWidget" name="gipTab">
<attribute name="title">
<string>Iteractive Models</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="UBThumbnailWidget" name="gipThumbnailView">
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragMode">
<enum>QGraphicsView::NoDrag</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="interactiveTab">
<attribute name="title">
<string>Applications</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QFrame" name="interactiveTopLeftFrame">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="UBLibraryTreeWidget" name="interactiveLibraryTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="dragDropMode">
<enum>QAbstractItemView::DropOnly</enum>
</property>
<property name="horizontalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="autoExpandDelay">
<number>2</number>
</property>
<property name="headerHidden">
<bool>true</bool>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QToolButton" name="newInteractiveFolderButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>New Folder</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/newFolder.png</normaloff>:/images/toolbar/newFolder.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
<property name="arrowType">
<enum>Qt::NoArrow</enum>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="addInteractiveToLibraryButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>Import to Library</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/addInteractiveToLibrary.png</normaloff>:/images/toolbar/addInteractiveToLibrary.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="interactiveLibrariesStack">
<widget class="QWidget" name="interactivePageLocal">
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="UBThumbnailWidget" name="interactiveThumbnailView">
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragMode">
<enum>QGraphicsView::NoDrag</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="interactivePageOnline">
<layout class="QHBoxLayout" name="horizontalLayout_8"/>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="imageTab">
<attribute name="title">
<string>Images</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QFrame" name="imageTopLeftFrame">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="UBLibraryTreeWidget" name="imageLibraryTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="horizontalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="autoExpandDelay">
<number>2</number>
</property>
<property name="headerHidden">
<bool>true</bool>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QToolButton" name="newFolderButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>New Folder</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/newFolder.png</normaloff>:/images/toolbar/newFolder.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="addImageToLibraryButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>42</height>
</size>
</property>
<property name="text">
<string>Import to Library</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/addToLibrary.png</normaloff>:/images/toolbar/addToLibrary.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="imageLibrariesStack">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="imagePageLocal">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="UBThumbnailWidget" name="imageThumbnailView">
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragMode">
<enum>QGraphicsView::NoDrag</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="imagePageOnline">
<layout class="QHBoxLayout" name="horizontalLayout_4"/>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="videoTab">
<attribute name="title">
<string>Movies</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<widget class="QFrame" name="videoTopLeftFrame">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="UBLibraryTreeWidget" name="videoLibraryTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="horizontalScrollMode">
<enum>QAbstractItemView::ScrollPerPixel</enum>
</property>
<property name="autoExpandDelay">
<number>2</number>
</property>
<property name="headerHidden">
<bool>true</bool>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string notr="true">1</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="videoLibrariesStack">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="videoPageLocal">
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="UBThumbnailWidget" name="videoThumbnailView">
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragMode">
<enum>QGraphicsView::NoDrag</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="videoPageOnline">
<layout class="QHBoxLayout" name="horizontalLayout_9"/>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="shapeTab">
<attribute name="title">
<string>Shapes</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="UBThumbnailWidget" name="shapeThumbnailView">
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragMode">
<enum>QGraphicsView::NoDrag</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="soundTab">
<attribute name="title">
<string>Sounds</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_12">
<item>
<widget class="UBThumbnailWidget" name="soundThumbnailView">
<property name="contextMenuPolicy">
<enum>Qt::NoContextMenu</enum>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="dragMode">
<enum>QGraphicsView::NoDrag</enum>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QFrame" name="toolFrame">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="midLineWidth">
<number>0</number>
</property>
<layout class="QHBoxLayout" name="toolFrameLayout">
<item>
<spacer name="horizontalSpacer_1">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="removeButton">
<property name="text">
<string>Delete</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/remove.png</normaloff>:/images/toolbar/remove.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="setAsBackgroundButton">
<property name="text">
<string>Set as Background</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/setBackground.png</normaloff>:/images/toolbar/setBackground.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="removeBackgroundButton">
<property name="text">
<string>Remove Background</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/removeBackground.png</normaloff>:/images/toolbar/removeBackground.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="addToDocumentButton">
<property name="text">
<string>Add File to Page</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/import.png</normaloff>:/images/toolbar/import.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="addToPageButton">
<property name="text">
<string>Add to Page</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/toolbar/addToPage.png</normaloff>:/images/toolbar/addToPage.png</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="addToParaschoolEditor">
<property name="enabled">
<bool>true</bool>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string>Add to Editor</string>
</property>
<property name="icon">
<iconset resource="../sankore.qrc">
<normaloff>:/images/addItemToCurrentPage.svg</normaloff>:/images/addItemToCurrentPage.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextUnderIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSlider" name="zoomSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="minimum">
<number>50</number>
</property>
<property name="maximum">
<number>500</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>150</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="invertedAppearance">
<bool>false</bool>
</property>
<property name="invertedControls">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="0" margin="0"/>
<customwidgets>
<customwidget>
<class>UBThumbnailWidget</class>
<extends>QGraphicsView</extends>
<header>gui/UBThumbnailWidget.h</header>
</customwidget>
<customwidget>
<class>UBLibraryTreeWidget</class>
<extends>QTreeWidget</extends>
<header>board/UBLibraryTreeWidget.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="../sankore.qrc"/>
</resources>
<connections/>
</ui>

@ -332,7 +332,6 @@ void UBBoardController::connectToolbar()
connect(mMainWindow->actionRedo, SIGNAL(triggered()), UBApplication::undoStack, SLOT(redo())); connect(mMainWindow->actionRedo, SIGNAL(triggered()), UBApplication::undoStack, SLOT(redo()));
connect(mMainWindow->actionBack, SIGNAL( triggered()), this, SLOT(previousScene())); connect(mMainWindow->actionBack, SIGNAL( triggered()), this, SLOT(previousScene()));
connect(mMainWindow->actionForward, SIGNAL(triggered()), this, SLOT(nextScene())); connect(mMainWindow->actionForward, SIGNAL(triggered()), this, SLOT(nextScene()));
connect(mMainWindow->actionLibrary, SIGNAL(toggled(bool)), this, SLOT(showLibraryDialog(bool)));
connect(mMainWindow->actionSleep, SIGNAL(triggered()), this, SLOT(blackout())); connect(mMainWindow->actionSleep, SIGNAL(triggered()), this, SLOT(blackout()));
connect(mMainWindow->actionVirtualKeyboard, SIGNAL(triggered(bool)), this, SLOT(showKeyboard(bool))); connect(mMainWindow->actionVirtualKeyboard, SIGNAL(triggered(bool)), this, SLOT(showKeyboard(bool)));
connect(mMainWindow->actionImportPage, SIGNAL(triggered()), this, SLOT(importPage())); connect(mMainWindow->actionImportPage, SIGNAL(triggered()), this, SLOT(importPage()));
@ -526,19 +525,6 @@ void UBBoardController::showDocumentsDialog()
} }
void UBBoardController::showLibraryDialog(bool show)
{
if (!mLibraryController)
{
mLibraryController = new UBLibraryController(mMainWindow->centralWidget(), this);
connect(mLibraryController, SIGNAL(dialogClosed(int)), this, SLOT(libraryDialogClosed(int)));
}
mLibraryController->showLibraryDialog(show);
}
void UBBoardController::libraryDialogClosed(int ret) void UBBoardController::libraryDialogClosed(int ret)
{ {
Q_UNUSED(ret); Q_UNUSED(ret);
@ -920,7 +906,7 @@ void UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QString
bool acceptFlash = true; bool acceptFlash = true;
#ifdef Q_WS_X11 #ifdef Q_WS_X11
acceptFlash = false; acceptFlash = false;
#endif #endif
if (acceptFlash) if (acceptFlash)
{ {
@ -1371,10 +1357,6 @@ UBToolWidget* UBBoardController::addTool(const QUrl& toolUrl)
UBToolWidget* UBBoardController::addTool(const QUrl& toolUrl, QPointF scenePos) UBToolWidget* UBBoardController::addTool(const QUrl& toolUrl, QPointF scenePos)
{ {
UBToolWidget *toolWidget = new UBToolWidget(toolUrl, mMainWindow); // Deleted in UBBoardController::removeTool UBToolWidget *toolWidget = new UBToolWidget(toolUrl, mMainWindow); // Deleted in UBBoardController::removeTool
if (mLibraryController && mLibraryController->libraryWindow())
toolWidget->stackUnder(mLibraryController->libraryWindow());
QPoint pos = mControlView->mapToGlobal(mControlView->mapFromScene(scenePos)); QPoint pos = mControlView->mapToGlobal(mControlView->mapFromScene(scenePos));
pos -= QPoint(toolWidget->width() / 2, toolWidget->height() / 2); pos -= QPoint(toolWidget->width() / 2, toolWidget->height() / 2);
@ -1551,8 +1533,6 @@ void UBBoardController::updateBackgroundState()
newBackgroundStyle ="QWidget {background-color: #F1F1F1}"; newBackgroundStyle ="QWidget {background-color: #F1F1F1}";
} }
// if (mControlContainer->styleSheet() != newBackgroundStyle)
// mControlContainer->setStyleSheet(newBackgroundStyle);
} }

@ -149,7 +149,6 @@ class UBBoardController : public QObject
void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0); void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0);
void showDocumentsDialog(); void showDocumentsDialog();
void showLibraryDialog(bool show);
void showKeyboard(bool show); void showKeyboard(bool show);

File diff suppressed because it is too large Load Diff

@ -6,8 +6,6 @@
#include "web/UBWebPage.h" #include "web/UBWebPage.h"
#include "ui_library.h"
class UBGraphicsScene; class UBGraphicsScene;
class UBBoardController; class UBBoardController;
class QGraphicsSvgItem; class QGraphicsSvgItem;
@ -82,14 +80,6 @@ class UBLibraryController : public QObject
UBLibraryController(QWidget *parentWidget, UBBoardController *boardController); UBLibraryController(QWidget *parentWidget, UBBoardController *boardController);
virtual ~UBLibraryController(); virtual ~UBLibraryController();
QWidget* libraryWindow()
{
return mLibraryWindow;
}
static QStringList onlineLibraries();
static void preloadFirstOnlineLibrary();
QList<UBLibElement*> getContent(UBLibElement* pElement); QList<UBLibElement*> getContent(UBLibElement* pElement);
void moveContent(QList<UBLibElement*> sourceList, UBLibElement *pDestination); void moveContent(QList<UBLibElement*> sourceList, UBLibElement *pDestination);
void trashElements(QList<UBLibElement*> trashList); void trashElements(QList<UBLibElement*> trashList);
@ -117,42 +107,10 @@ class UBLibraryController : public QObject
public slots: public slots:
void removeBackground(); void removeBackground();
void showLibraryDialog(bool show);
void refreshShapeThumbnailsView();
void refreshImageThumbnailsView();
void refreshInteractiveThumbnailsView();
void refreshVideoThumbnailsView();
void refreshSoundThumbnailsView();
void addShape();
void setShapeAsBackground();
void addToPage();
void setAsBackground();
void addImage();
void addVideo();
void addAudio();
void addInteractiveToCurrentPage();
void addImagesToCurrentPage(const QList<QUrl>& images); void addImagesToCurrentPage(const QList<QUrl>& images);
void addVideosToCurrentPage(const QList<QUrl>& videos); void addVideosToCurrentPage(const QList<QUrl>& videos);
void addAudiosToCurrentPage(const QList<QUrl>& sounds); void addAudiosToCurrentPage(const QList<QUrl>& sounds);
void addInteractivesToCurrentPage(const QList<QUrl>& interactiveWidgets); void addInteractivesToCurrentPage(const QList<QUrl>& interactiveWidgets);
void setImageAsBackground();
void closeWindow();
void addObjectFromFilesystemToPage();
void needRefreshOnNextDisplay()
{
mNeedRefreshOnNextDisplay = true;
}
protected: protected:
@ -186,215 +144,11 @@ class UBLibraryController : public QObject
UBLibElement* isOnFavoriteList(UBLibElement * element); UBLibElement* isOnFavoriteList(UBLibElement * element);
void loadLibraries();
QWidget *mParentWidget; QWidget *mParentWidget;
UBBoardController *mBoardController; UBBoardController *mBoardController;
QDialog *mLibraryWindow;
Ui::library *mLibraryUI;
// TODO UB 4.x break this logic, by carrying the path within the thumb item (see Video items path)
//
QMap<QGraphicsSvgItem*, QString> mSvgItemToFilepath; //shape mapping
QMap<QGraphicsSvgItem*, QString> mSvgImageItemToFilepath; // svg image mapping
QMap<QGraphicsPixmapItem*, QString> mPixmapItemToFilepath; // other image mapping
QMap<QGraphicsPixmapItem*, QString> mInteractiveItemToFilepath; // interactive widget mapping
QMap<QGraphicsPixmapItem*, QString> mSoundItemToFilepath; // sounds mapping
UBLibraryWebView *mImageWebView;
UBLibraryWebView *mVideoWebView;
UBLibraryWebView *mInteractiveWebView;
QTreeWidgetItem *mImageOnlineTi;
QTreeWidgetItem *mVideoOnlineTi;
QTreeWidgetItem *mInteractiveOnlineTi;
QTreeWidgetItem *mInteractiveUniboardTi;
struct TabIndex
{
enum Enum
{
Gip = 0,
Interactive = 1,
Image = 2,
Video = 3,
Shape = 4,
Sound = 5
};
};
int mLastItemOffsetIndex; int mLastItemOffsetIndex;
QStringList mLibraryFileToDownload;
bool mNeedRefreshOnNextDisplay;
private slots:
void tabChanged(int value);
void zoomSliderValueChanged(int value);
void createNewFolder();
void addInteractivesToLibrary();
void addImagesToLibrary();
void removeItemsFromLibrary(UBThumbnailWidget* pThumbnailView);
void removeDir();
void remove();
void itemSelectionChanged();
void itemChanged(QTreeWidgetItem * item, int column);
void selectionChanged();
void thumbnailViewResized();
void getLibraryListResponse(bool, const QByteArray&);
};
class UBLibraryFolderItem : public QTreeWidgetItem
{
public:
UBLibraryFolderItem(const QDir& pDir, const QString& name, QTreeWidgetItem * parent,
bool pCanWrite, const QStringList& pExtensionsToHide);
virtual ~UBLibraryFolderItem(){}
void refreshSubDirs();
QDir dir()
{
return mDir;
}
void setDir(const QDir& dir)
{
mDir = dir;
}
bool canWrite()
{
return mCanWrite;
}
void setCanWrite(bool canWrite)
{
mCanWrite = canWrite;
}
private:
const QStringList mExtensionsToHide;
QDir mDir;
bool mCanWrite;
}; };
class UBOnlineLibraryItem : public QTreeWidgetItem
{
public:
UBOnlineLibraryItem(const QUrl& pUrl, const QString& name, QTreeWidgetItem * parent)
: QTreeWidgetItem(parent)
, mUrl(pUrl)
{
setText(0, UBLibraryController::trUtf8(name.toUtf8()));
setIcon(0, QWebSettings::iconForUrl(pUrl));
}
virtual ~UBOnlineLibraryItem(){}
QUrl url() const
{
return mUrl;
}
private:
QUrl mUrl;
};
class UBLibraryWebView : public QWebView
{
Q_OBJECT;
public:
UBLibraryWebView(QWidget * parent = 0 );
virtual ~UBLibraryWebView(){};
virtual void mousePressEvent ( QMouseEvent * event)
{
QWebView::mousePressEvent(event);
}
virtual void mouseMoveEvent ( QMouseEvent * event)
{
QWebView::mouseMoveEvent(event);
}
virtual void mouseReleaseEvent ( QMouseEvent * event)
{
QWebView::mouseReleaseEvent(event);
}
void load ( const QUrl & url )
{
mCurrentLibraryItem = 0;
QWebView::load(url);
}
void load ( const QUrl & url, UBOnlineLibraryItem* pLibraryItem)
{
mCurrentLibraryItem = pLibraryItem;
QWebView::load(url);
}
protected:
virtual QWebView * createWindow(QWebPage::WebWindowType type);
private slots:
void javaScriptWindowObjectCleared();
void newIconAvailable();
void loadFinished(bool ok);
private:
UBOnlineLibraryItem* mCurrentLibraryItem;
};
class UBLibraryPreloader : public QObject
{
Q_OBJECT;
public:
UBLibraryPreloader(QObject* pParent);
virtual ~UBLibraryPreloader(){};
private slots:
void loadLibrary();
void getLibraryListResponse(bool ok, const QByteArray& replyContent);
void loadFinished (bool ok);
private:
QWebView *mWebView;
};
#endif /* UBLIBRARYCONTROLLER_H_ */ #endif /* UBLIBRARYCONTROLLER_H_ */

@ -1,247 +0,0 @@
/*
* UBLibraryTreeWidget.cpp
*
* Created on: 28 juil. 2009
* Author: Luc
*/
#include "UBLibraryTreeWidget.h"
#include "frameworks/UBFileSystemUtils.h"
#include "core/UBApplication.h"
#include "core/UBSettings.h"
#include "board/UBBoardController.h"
#include "network/UBHttpGet.h"
#include "domain/UBW3CWidget.h"
#include "UBLibraryController.h"
UBLibraryTreeWidget::UBLibraryTreeWidget(QWidget * parent)
: QTreeWidget(parent)
, mDropFolderItem(0)
{
setDragDropMode(QAbstractItemView::DropOnly);
setAcceptDrops(true);
viewport()->setAcceptDrops(true);
setDropIndicatorShown(true);
}
UBLibraryTreeWidget::~UBLibraryTreeWidget()
{
// NOOP
}
bool UBLibraryTreeWidget::supportMimeData(const QMimeData* pMimeData)
{
foreach(QString mimeType, mMimeTypes)
{
foreach(QString format, pMimeData->formats())
{
if (format.startsWith(mimeType))
{
return true;
}
}
}
foreach (QUrl url, pMimeData->urls())
{
foreach(QString ext, mFileExtensions)
{
if (url.toString().endsWith(ext))
{
return true;
}
}
}
foreach (QUrl url, pMimeData->urls())
{
foreach(QString protocole, mProtocoles)
{
if (url.toString().startsWith(protocole))
{
return true;
}
}
}
return false;
}
void UBLibraryTreeWidget::dragEnterEvent(QDragEnterEvent * event)
{
mDropFolderItem = 0;
if (supportMimeData(event->mimeData()))
{
event->acceptProposedAction();
return;
}
else
{
QTreeWidget::dragEnterEvent(event);
}
}
void UBLibraryTreeWidget::dragMoveEvent(QDragMoveEvent * event)
{
QTreeWidgetItem * ti = itemAt(event->pos());
UBLibraryFolderItem * lfi = dynamic_cast<UBLibraryFolderItem*>(ti);
if (lfi && lfi->canWrite() && !(lfi == currentItem()))
{
event->acceptProposedAction();
return;
}
QTreeWidget::dragMoveEvent(event);
}
void UBLibraryTreeWidget::dropEvent(QDropEvent * event)
{
QTreeWidgetItem * ti = itemAt(event->pos());
UBLibraryFolderItem * lfi = dynamic_cast<UBLibraryFolderItem*>(ti);
if (lfi)
{
UBLibraryFolderItem * sourceLfi = dynamic_cast<UBLibraryFolderItem*>(currentItem());
mDropFolderItem = lfi;
QDir dir = lfi->dir();
foreach(QUrl url, event->mimeData()->urls())
{
// is it local ?
QString localFile = url.toLocalFile();
if (localFile.length() > 0)
{
QFileInfo fileInfo(localFile);
//is it a file ?
if (fileInfo.isFile())
{
// copy file to dir
QFile file(localFile);
if (sourceLfi && sourceLfi->canWrite())
{
file.rename(dir.filePath(fileInfo.fileName()));
emit contentChanged();
}
else
{
file.copy(dir.filePath(fileInfo.fileName()));
}
}
else if (fileInfo.isDir())
{
if (sourceLfi && sourceLfi->canWrite())
{
UBFileSystemUtils::moveDir(localFile, dir.filePath(fileInfo.fileName()));
emit contentChanged();
}
else
{
UBFileSystemUtils::copyDir(localFile, dir.filePath(fileInfo.fileName()));
}
}
}
else if (url.toString().startsWith("uniboardTool://"))
{
UBApplication::boardController->libraryController()->addNativeToolToFavorites(url);
}
else
{
UBHttpGet* httpGet = new UBHttpGet(this); // TODO UB 4.6 we are leaking here, tree widget is never destroyed
connect(httpGet, SIGNAL(downloadFinished(bool, QUrl, QString, QByteArray, QPointF, QSize, bool)),
this, SLOT(downloadFinished(bool, QUrl, QString, QByteArray)));
UBApplication::setOverrideCursor(Qt::WaitCursor);
UBApplication::showMessage(tr("Downloading content from %1").arg(url.toString()), true);
httpGet->get(url);
}
}
event->acceptProposedAction();
return;
}
else
{
QTreeWidget::dropEvent(event);
}
}
void UBLibraryTreeWidget::downloadFinished(bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData)
{
if (!pSuccess)
{
UBApplication::showMessage(tr("Downloading content %1 failed").arg(sourceUrl.toString()));
}
else
{
UBApplication::showMessage(tr("Download finished"));
QStringList urlPathParts = sourceUrl.path().split("/");
if (urlPathParts.length() > 0 && mDropFolderItem)
{
QString fileName = urlPathParts.last();
QString ext = UBFileSystemUtils::fileExtensionFromMimeType(pContentTypeHeader);
if (!fileName.endsWith(ext))
{
fileName += "." + ext;
}
QString filePath = mDropFolderItem->dir().filePath(fileName);
QString nextItemPath = UBFileSystemUtils::nextAvailableFileName(filePath);
if (UBSettings::widgetFileExtensions.contains(ext))
{
QTemporaryFile tempFile;
if (tempFile.open())
{
tempFile.write(pData);
tempFile.close();
QDir widgetDir(nextItemPath);
UBFileSystemUtils::expandZipToDir(tempFile, widgetDir);
}
}
else if(UBW3CWidget::hasNPAPIWrapper(pContentTypeHeader))
{
QString widgetPath = UBW3CWidget::createNPAPIWrapperInDir(sourceUrl.toString()
, mDropFolderItem->dir(), pContentTypeHeader);
}
else
{
QFile itemFile(nextItemPath);
if (itemFile.open(QIODevice::WriteOnly))
{
itemFile.write(pData);
itemFile.close();
}
}
}
}
UBApplication::restoreOverrideCursor();
}

@ -1,62 +0,0 @@
/*
* UBLibraryTreeWidget.h
*
* Created on: 28 juil. 2009
* Author: Luc
*/
#ifndef UBLIBRARYTREEWIDGET_H_
#define UBLIBRARYTREEWIDGET_H_
#include <QtGui>
class UBLibraryFolderItem;
class UBLibraryTreeWidget : public QTreeWidget
{
Q_OBJECT;
public:
UBLibraryTreeWidget(QWidget * parent = 0);
virtual ~UBLibraryTreeWidget();
void setMimeTypes(const QStringList& pMimeTypes)
{
mMimeTypes = pMimeTypes;
}
void setFileExtensions(const QStringList& pFileExtensions)
{
mFileExtensions = pFileExtensions;
}
void setProtocoles(const QStringList& pProtocoles)
{
mProtocoles = pProtocoles;
}
bool supportMimeData(const QMimeData* pMimeData);
signals:
void contentChanged();
protected:
virtual void dragEnterEvent(QDragEnterEvent * event);
virtual void dragMoveEvent(QDragMoveEvent * event);
virtual void dropEvent(QDropEvent * event);
private slots:
void downloadFinished(bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData);
private:
UBLibraryFolderItem* mDropFolderItem;
QStringList mMimeTypes;
QStringList mFileExtensions;
QStringList mProtocoles;
};
#endif /* UBLIBRARYTREEWIDGET_H_ */

@ -3,14 +3,12 @@ HEADERS += src/board/UBBoardController.h \
src/board/UBBoardPaletteManager.h \ src/board/UBBoardPaletteManager.h \
src/board/UBBoardView.h \ src/board/UBBoardView.h \
src/board/UBLibraryController.h \ src/board/UBLibraryController.h \
src/board/UBLibraryTreeWidget.h \
src/board/UBDrawingController.h src/board/UBDrawingController.h
SOURCES += src/board/UBBoardController.cpp \ SOURCES += src/board/UBBoardController.cpp \
src/board/UBBoardPaletteManager.cpp \ src/board/UBBoardPaletteManager.cpp \
src/board/UBBoardView.cpp \ src/board/UBBoardView.cpp \
src/board/UBLibraryController.cpp \ src/board/UBLibraryController.cpp \
src/board/UBLibraryTreeWidget.cpp \
src/board/UBDrawingController.cpp src/board/UBDrawingController.cpp

@ -140,8 +140,6 @@ UBApplication::UBApplication(const QString &id, int &argc, char **argv)
} }
else else
{ {
// Make sure we don't mix English language with unsupported language dates
//QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
localString = "en_US"; localString = "en_US";
} }
@ -182,6 +180,10 @@ UBApplication::~UBApplication()
// delete staticMemoryCleaner; // delete staticMemoryCleaner;
staticMemoryCleaner = 0; staticMemoryCleaner = 0;
delete mUniboardSankoreTransition;
mUniboardSankoreTransition = 0;
} }
int UBApplication::exec(const QString& pFileToImport) int UBApplication::exec(const QString& pFileToImport)
@ -256,9 +258,6 @@ int UBApplication::exec(const QString& pFileToImport)
// installEventFilter(new UBIdleTimer(this)); // installEventFilter(new UBIdleTimer(this));
//#endif //#endif
// TODO UB 4.x make it better and reenable it ... or dump
//installEventFilter(new UBMousePressFilter);
applicationController->initScreenLayout(); applicationController->initScreenLayout();
boardController->setupLayout(); boardController->setupLayout();
@ -299,8 +298,6 @@ int UBApplication::exec(const QString& pFileToImport)
} }
} }
UBLibraryController::preloadFirstOnlineLibrary();
mUniboardSankoreTransition = new UniboardSankoreTransition(); mUniboardSankoreTransition = new UniboardSankoreTransition();
mUniboardSankoreTransition->documentTransition(); mUniboardSankoreTransition->documentTransition();
@ -526,30 +523,6 @@ bool UBApplication::handleOpenMessage(const QString& pMessage)
return true; return true;
} }
#if defined(Q_WS_MACX) && !defined(QT_MAC_USE_COCOA)
bool UBApplication::macEventFilter(EventHandlerCallRef caller, EventRef event)
{
Q_UNUSED(caller);
if ((GetEventClass(event) == kEventClassCommand) && (GetEventKind(event) == kEventProcessCommand))
{
HICommand cmd;
GetEventParameter(event, kEventParamDirectObject, typeHICommand, 0, sizeof(cmd), 0, &cmd);
if (cmd.commandID == kHICommandHide)
{
// Override the command + H (Hide Uniboard) behavior
applicationController->showDesktop();
return true;
}
}
return false;
}
#endif
void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal, void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal,
bool enabled, const QString& text, QPalette::ColorRole textRole) const bool enabled, const QString& text, QPalette::ColorRole textRole) const
{ {
@ -577,30 +550,6 @@ void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment,
painter->setPen(pen); painter->setPen(pen);
} }
/*
*
#if defined(Q_WS_MACX)
if (pal.brush(textRole).color() == Qt::black)
{
painter->save();
painter->translate(0, 0.1);
QBrush brush = pal.brush(QPalette::Light);
QColor color = brush.color();
color.setAlpha(color.alpha() * 0.6);
brush.setColor(color);
painter->setPen(QPen(brush, savedPen.widthF() * 0.8));
painter->drawText(rect, alignment, text);
painter->restore();
}
#endif
*/
painter->drawText(rect, alignment, text); painter->drawText(rect, alignment, text);
if (textRole != QPalette::NoRole) if (textRole != QPalette::NoRole)

@ -172,20 +172,17 @@ void UBLibPathViewer::addItem(UBChainedLibElement *elem)
*/ */
void UBLibPathViewer::resizeEvent(QResizeEvent *event) void UBLibPathViewer::resizeEvent(QResizeEvent *event)
{ {
qDebug() << "old" << event->oldSize();
qDebug() << "new" << event->size();
if(event->oldSize() == event->size()) if(event->oldSize() == event->size())
event->ignore(); event->ignore();
else{ else{
if(NULL != mpContainer){ if(NULL != mpContainer)
mpContainer->setMinimumWidth(width() - 20); mpContainer->setMinimumWidth(width() - 20);
}
viewport()->resize(width() - 10, viewport()->height()); viewport()->resize(width() - 10, viewport()->height());
updateScrolls(); updateScrolls();
event->accept(); event->accept();
} }
} }
@ -422,8 +419,8 @@ void UBPathScene::dropEvent(QGraphicsSceneDragDropEvent *event)
// The drag comes from this application, we have now to get the list of UBLibElements* // The drag comes from this application, we have now to get the list of UBLibElements*
QList<QString> qlDroppedElems; QList<QString> qlDroppedElems;
foreach(QUrl url, pMimeData->urls()) foreach(QUrl url, pMimeData->urls())
qlDroppedElems << url.toString(); qlDroppedElems << url.toString();
if(!qlDroppedElems.empty()) if(!qlDroppedElems.empty())
{ {

Loading…
Cancel
Save