Commit f7896e14 authored by Claudio Valerio's avatar Claudio Valerio

fixed issue with flash on mac

parent 3fe5c51f
...@@ -364,5 +364,6 @@ ...@@ -364,5 +364,6 @@
<file>images/teacherGuide/w3c_24x24.svg</file> <file>images/teacherGuide/w3c_24x24.svg</file>
<file>images/teacherGuide/pencil.svg</file> <file>images/teacherGuide/pencil.svg</file>
<file>images/duplicateDisabled.svg</file> <file>images/duplicateDisabled.svg</file>
<file>images/teacherGuide/flash_24x24.svg</file>
</qresource> </qresource>
</RCC> </RCC>
...@@ -878,6 +878,34 @@ QString UBPersistenceManager::addObjectToTeacherGuideDirectory(UBDocumentProxy* ...@@ -878,6 +878,34 @@ QString UBPersistenceManager::addObjectToTeacherGuideDirectory(UBDocumentProxy*
return destPath; return destPath;
} }
QString UBPersistenceManager::addWidgetToTeacherGuideDirectory(UBDocumentProxy* pDocumentProxy, QString pPath)
{
QString path = UBFileSystemUtils::removeLocalFilePrefix(pPath);
QFileInfo fi(path);
Q_ASSERT(fi.isDir());
int lastIndex = path.lastIndexOf(".");
QString extension("");
if(lastIndex != -1)
extension = path.right(path.length() - lastIndex);
QString uuid = QUuid::createUuid();
if (!fi.exists() || !pDocumentProxy)
return "";
QString directoryName = UBPersistenceManager::teacherGuideDirectory + "/" + uuid + extension;
QString destPath = pDocumentProxy->persistencePath() + "/" + directoryName;
if (!QDir(destPath).exists()){
QDir dir;
dir.mkdir(pDocumentProxy->persistencePath() + "/" + UBPersistenceManager::teacherGuideDirectory);
UBFileSystemUtils::copyDir(path,destPath);
}
return destPath;
}
bool UBPersistenceManager::addFileToDocument(UBDocumentProxy* pDocumentProxy, bool UBPersistenceManager::addFileToDocument(UBDocumentProxy* pDocumentProxy,
QString path, QString path,
const QString& subdir, const QString& subdir,
......
...@@ -83,6 +83,7 @@ class UBPersistenceManager : public QObject ...@@ -83,6 +83,7 @@ class UBPersistenceManager : public QObject
QString teacherGuideAbsoluteObjectPath(UBDocumentProxy* pDocumentProxy); QString teacherGuideAbsoluteObjectPath(UBDocumentProxy* pDocumentProxy);
QString addObjectToTeacherGuideDirectory(UBDocumentProxy* proxy, QString pPath); QString addObjectToTeacherGuideDirectory(UBDocumentProxy* proxy, QString pPath);
QString addWidgetToTeacherGuideDirectory(UBDocumentProxy* pDocumentProxy, QString pPath);
virtual void addDirectoryContentToDocument(const QString& documentRootFolder, UBDocumentProxy* pDocument); virtual void addDirectoryContentToDocument(const QString& documentRootFolder, UBDocumentProxy* pDocument);
......
...@@ -565,7 +565,7 @@ void UBTeacherGuidePresentationWidget::showData( QVector<tUBGEElementNode*> data ...@@ -565,7 +565,7 @@ void UBTeacherGuidePresentationWidget::showData( QVector<tUBGEElementNode*> data
} }
else if (element->name == "media") { else if (element->name == "media") {
createMediaButtonItem(); createMediaButtonItem();
QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem( mpMediaSwitchItem); QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem(mpMediaSwitchItem);
newWidgetItem->setIcon(0, QIcon( ":images/teacherGuide/" + element->attributes.value("mediaType") + "_24x24.svg")); newWidgetItem->setIcon(0, QIcon( ":images/teacherGuide/" + element->attributes.value("mediaType") + "_24x24.svg"));
newWidgetItem->setText(0, element->attributes.value("title")); newWidgetItem->setText(0, element->attributes.value("title"));
newWidgetItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_MEDIA); newWidgetItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_MEDIA);
...@@ -582,7 +582,8 @@ void UBTeacherGuidePresentationWidget::showData( QVector<tUBGEElementNode*> data ...@@ -582,7 +582,8 @@ void UBTeacherGuidePresentationWidget::showData( QVector<tUBGEElementNode*> data
QTreeWidgetItem* mediaItem = new QTreeWidgetItem(newWidgetItem); QTreeWidgetItem* mediaItem = new QTreeWidgetItem(newWidgetItem);
mediaItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_NONE); mediaItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_NONE);
UBTGMediaWidget* mediaWidget = new UBTGMediaWidget(element->attributes.value("relativePath"), newWidgetItem); qDebug() << element->attributes.value("mediaType");
UBTGMediaWidget* mediaWidget = new UBTGMediaWidget(element->attributes.value("relativePath"), newWidgetItem,0,element->attributes.value("mediaType").contains("flash"));
newWidgetItem->setExpanded(false); newWidgetItem->setExpanded(false);
mpTreeWidget->setItemWidget(mediaItem, 0, mediaWidget); mpTreeWidget->setItemWidget(mediaItem, 0, mediaWidget);
} }
......
...@@ -304,7 +304,7 @@ UBTGMediaWidget::UBTGMediaWidget(QTreeWidgetItem* widget, QWidget* parent,const ...@@ -304,7 +304,7 @@ UBTGMediaWidget::UBTGMediaWidget(QTreeWidgetItem* widget, QWidget* parent,const
setMinimumHeight(250); setMinimumHeight(250);
} }
UBTGMediaWidget::UBTGMediaWidget(QString mediaPath, QTreeWidgetItem* widget, QWidget* parent,const char* name): QStackedWidget(parent) UBTGMediaWidget::UBTGMediaWidget(QString mediaPath, QTreeWidgetItem* widget, QWidget* parent,bool forceFlashMediaType,const char* name): QStackedWidget(parent)
, mpTreeWidgetItem(widget) , mpTreeWidgetItem(widget)
, mpDropMeWidget(NULL) , mpDropMeWidget(NULL)
, mpWorkWidget(NULL) , mpWorkWidget(NULL)
...@@ -320,7 +320,7 @@ UBTGMediaWidget::UBTGMediaWidget(QString mediaPath, QTreeWidgetItem* widget, QWi ...@@ -320,7 +320,7 @@ UBTGMediaWidget::UBTGMediaWidget(QString mediaPath, QTreeWidgetItem* widget, QWi
setObjectName(name); setObjectName(name);
mMediaPath = UBApplication::boardController->selectedDocument()->persistencePath()+ "/" + mediaPath; mMediaPath = UBApplication::boardController->selectedDocument()->persistencePath()+ "/" + mediaPath;
setAcceptDrops(false); setAcceptDrops(false);
createWorkWidget(); createWorkWidget(forceFlashMediaType);
setFixedHeight(200); setFixedHeight(200);
} }
...@@ -343,8 +343,7 @@ void UBTGMediaWidget::initializeWithDom(QDomElement element) ...@@ -343,8 +343,7 @@ void UBTGMediaWidget::initializeWithDom(QDomElement element)
mIsInitializationMode = true; mIsInitializationMode = true;
setAcceptDrops(false); setAcceptDrops(false);
mMediaPath = UBApplication::boardController->selectedDocument()->persistencePath() + "/" + element.attribute("relativePath"); mMediaPath = UBApplication::boardController->selectedDocument()->persistencePath() + "/" + element.attribute("relativePath");
qDebug() << mMediaPath; createWorkWidget(element.attribute("mediaType").contains("flash"));
createWorkWidget();
setFixedHeight(200); setFixedHeight(200);
mpTitle->setInitialText(element.attribute("title")); mpTitle->setInitialText(element.attribute("title"));
mIsInitializationMode = false; mIsInitializationMode = false;
...@@ -369,8 +368,12 @@ void UBTGMediaWidget::hideEvent(QHideEvent* event) ...@@ -369,8 +368,12 @@ void UBTGMediaWidget::hideEvent(QHideEvent* event)
void UBTGMediaWidget::showEvent(QShowEvent* event) void UBTGMediaWidget::showEvent(QShowEvent* event)
{ {
QWidget::showEvent(event); QWidget::showEvent(event);
if(mpWebView) if(mpWebView){
mpWebView->load(QUrl(mMediaPath + "/index.htm")); QString indexPath = mMediaPath+"/index.htm";
if(!QFile::exists(indexPath))
indexPath += "l";
mpWebView->load(QUrl::fromLocalFile(indexPath));
}
} }
tUBGEElementNode* UBTGMediaWidget::saveData() tUBGEElementNode* UBTGMediaWidget::saveData()
...@@ -392,7 +395,7 @@ void UBTGMediaWidget::dragEnterEvent(QDragEnterEvent *event) ...@@ -392,7 +395,7 @@ void UBTGMediaWidget::dragEnterEvent(QDragEnterEvent *event)
event->accept(); event->accept();
} }
void UBTGMediaWidget::createWorkWidget() void UBTGMediaWidget::createWorkWidget(bool forceFlashMediaType)
{ {
QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(mMediaPath); QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(mMediaPath);
bool setMedia = true; bool setMedia = true;
...@@ -419,12 +422,32 @@ void UBTGMediaWidget::createWorkWidget() ...@@ -419,12 +422,32 @@ void UBTGMediaWidget::createWorkWidget()
mpMediaLabelWidget->setPixmap(pixmap); mpMediaLabelWidget->setPixmap(pixmap);
mpMediaLabelWidget->setScaledContents(true); mpMediaLabelWidget->setScaledContents(true);
} }
else if(mimeType.contains("application")){ else if(mimeType.contains("widget") && !forceFlashMediaType){
mMediaType = "w3c"; mMediaType = "w3c";
if(!(mIsPresentationMode || mIsInitializationMode)){
mMediaPath = UBPersistenceManager::persistenceManager()->addWidgetToTeacherGuideDirectory(proxyDocument, mMediaPath);
}
mpWebView = new UBDraggableWeb(mMediaPath);
mpWebView->setAcceptDrops(false);
mpWebView->settings()->setAttribute(QWebSettings::JavaEnabled, true);
mpWebView->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
mpWebView->settings()->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, true);
mpWebView->settings()->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, true);
mpWebView->settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true);
mpWebView->settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true);
mpWebView->settings()->setAttribute(QWebSettings::DnsPrefetchEnabled, true);
QString indexPath = mMediaPath+"/index.htm";
if(!QFile::exists(indexPath))
indexPath += "l";
mpWebView->load(QUrl::fromLocalFile(indexPath));
}
else if(mimeType.contains("x-shockwave-flash") || forceFlashMediaType){
mMediaType = "flash";
if(!(mIsPresentationMode || mIsInitializationMode)){ if(!(mIsPresentationMode || mIsInitializationMode)){
QDir baseW3CDirectory(UBPersistenceManager::persistenceManager()->teacherGuideAbsoluteObjectPath(proxyDocument)); QDir baseW3CDirectory(UBPersistenceManager::persistenceManager()->teacherGuideAbsoluteObjectPath(proxyDocument));
mMediaPath = UBGraphicsW3CWidgetItem::createNPAPIWrapperInDir(mMediaPath,baseW3CDirectory,mimeType,QSize(100,100),QUuid::createUuid()); mMediaPath = UBGraphicsW3CWidgetItem::createNPAPIWrapperInDir(mMediaPath,baseW3CDirectory,mimeType,QSize(100,100),QUuid::createUuid());
} }
qDebug() << mMediaPath;
mpWebView = new UBDraggableWeb(mMediaPath); mpWebView = new UBDraggableWeb(mMediaPath);
mpWebView->setAcceptDrops(false); mpWebView->setAcceptDrops(false);
mpWebView->settings()->setAttribute(QWebSettings::JavaEnabled, true); mpWebView->settings()->setAttribute(QWebSettings::JavaEnabled, true);
...@@ -434,8 +457,10 @@ void UBTGMediaWidget::createWorkWidget() ...@@ -434,8 +457,10 @@ void UBTGMediaWidget::createWorkWidget()
mpWebView->settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true); mpWebView->settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true);
mpWebView->settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true); mpWebView->settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true);
mpWebView->settings()->setAttribute(QWebSettings::DnsPrefetchEnabled, true); mpWebView->settings()->setAttribute(QWebSettings::DnsPrefetchEnabled, true);
QString indexPath = mMediaPath+"/index.htm";
mpWebView->load(QUrl(mMediaPath+"/index.htm")); if(!QFile::exists(indexPath))
indexPath += "l";
mpWebView->load(QUrl::fromLocalFile(indexPath));
} }
else{ else{
qDebug() << "createWorkWidget mime type not handled" << mimeType; qDebug() << "createWorkWidget mime type not handled" << mimeType;
......
...@@ -137,7 +137,7 @@ class UBTGMediaWidget : public QStackedWidget , public iUBTGSaveData ...@@ -137,7 +137,7 @@ class UBTGMediaWidget : public QStackedWidget , public iUBTGSaveData
Q_OBJECT Q_OBJECT
public: public:
UBTGMediaWidget(QTreeWidgetItem* widget = 0, QWidget* parent = 0, const char* name = "UBTGMediaWidget"); UBTGMediaWidget(QTreeWidgetItem* widget = 0, QWidget* parent = 0, const char* name = "UBTGMediaWidget");
UBTGMediaWidget(QString mediaPath, QTreeWidgetItem* widget = 0, QWidget* parent = 0, const char* name = "UBTGMediaWidget"); UBTGMediaWidget(QString mediaPath, QTreeWidgetItem* widget = 0, QWidget* parent = 0, bool forceFlashMediaType = false, const char *name = "UBTGMediaWidget");
~UBTGMediaWidget(); ~UBTGMediaWidget();
tUBGEElementNode* saveData(); tUBGEElementNode* saveData();
void initializeWithDom(QDomElement element); void initializeWithDom(QDomElement element);
...@@ -152,7 +152,7 @@ protected: ...@@ -152,7 +152,7 @@ protected:
private: private:
void parseMimeData(const QMimeData* pMimeData); void parseMimeData(const QMimeData* pMimeData);
void createWorkWidget(); void createWorkWidget(bool forceFlashMediaType = false);
void updateSize(); void updateSize();
QTreeWidgetItem* mpTreeWidgetItem; QTreeWidgetItem* mpTreeWidgetItem;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment