From a94f7f63de05df51ae321594aca8661edb1d0d81 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 9 Jan 2012 15:11:31 +0100 Subject: [PATCH 1/4] I don't know --- src/customWidgets/UBWidgetList.cpp | 61 +++++++++++++++++++----------- src/customWidgets/UBWidgetList.h | 10 ++++- src/gui/UBTeacherBarWidget.cpp | 36 +++++++++++++----- src/gui/UBTeacherBarWidget.h | 5 ++- 4 files changed, 77 insertions(+), 35 deletions(-) diff --git a/src/customWidgets/UBWidgetList.cpp b/src/customWidgets/UBWidgetList.cpp index 7115b14f..482a0780 100644 --- a/src/customWidgets/UBWidgetList.cpp +++ b/src/customWidgets/UBWidgetList.cpp @@ -49,12 +49,12 @@ UBWidgetList::~UBWidgetList() } } -void UBWidgetList::addWidget(QWidget *widget) +void UBWidgetList::addWidget(QWidget *widget, bool isResizable) { if(NULL != mpLayout){ mpEmptyLabel->setVisible(false); - mWidgetInfo[widget] = widget->size(); - qDebug() << __FUNCTION__ << "widget->size () " << widget->size(); + mWidgetInfo[widget] = {widget->size(), isResizable}; + qDebug() << __FUNCTION__ << "widget : " << widget << " widget->size () " << widget->size() << " isResizable " << isResizable; updateView(size()); mpLayout->addWidget(widget); } @@ -80,28 +80,45 @@ int UBWidgetList::scaleWidgets(QSize pSize) int result = -mListElementsSpacing; int count = 0; foreach(QWidget* eachWidget, mWidgetInfo.keys()){ - qreal scaleFactor = 0; - int newWidgetWidth = pSize.width(); - int newWidgetHeight = pSize.height(); - if(eWidgetListOrientation_Vertical == mOrientation){ - scaleFactor = (float)mWidgetInfo[eachWidget].width() / (float)pSize.width(); - newWidgetHeight = mWidgetInfo[eachWidget].height()/scaleFactor; - result += newWidgetHeight; - eachWidget->setMinimumHeight(newWidgetHeight); + if(mWidgetInfo[eachWidget].isResizable){ + qreal scaleFactor = 0; + int newWidgetWidth = pSize.width(); + int newWidgetHeight = pSize.height(); + if(eWidgetListOrientation_Vertical == mOrientation){ + scaleFactor = (float)mWidgetInfo[eachWidget].size.width() / (float)pSize.width(); + newWidgetHeight = mWidgetInfo[eachWidget].size.height()/scaleFactor; + result += newWidgetHeight; + eachWidget->setMinimumHeight(newWidgetHeight); + eachWidget->setMaximumHeight(newWidgetHeight + 1); + } + else{ + scaleFactor = (float)mWidgetInfo[eachWidget].size.height() / (float)pSize.height(); + newWidgetWidth = mWidgetInfo[eachWidget].size.width()/scaleFactor; + result += newWidgetWidth; + eachWidget->setMinimumWidth(newWidgetWidth); + eachWidget->setMinimumWidth(newWidgetWidth+1); + } +#ifndef Q_WS_WIN + qDebug() << __PRETTY_FUNCTION__ << "widget " << &eachWidget; + qDebug() << __PRETTY_FUNCTION__ << "count " << count++; + qDebug() << __PRETTY_FUNCTION__ << "widget orignal size " << mWidgetInfo[eachWidget].size; + qDebug() << __PRETTY_FUNCTION__ << "containes size " << pSize; + qDebug() << __PRETTY_FUNCTION__ << "scale factor " << scaleFactor; + qDebug() << __PRETTY_FUNCTION__ << "new height " << result; +#endif } else{ - scaleFactor = (float)mWidgetInfo[eachWidget].height() / (float)pSize.height(); - newWidgetWidth = mWidgetInfo[eachWidget].width()/scaleFactor; - result += newWidgetWidth; + if(eWidgetListOrientation_Vertical == mOrientation){ + result += mWidgetInfo[eachWidget].size.height(); + eachWidget->setMinimumHeight(mWidgetInfo[eachWidget].size.height()); + eachWidget->setMaximumHeight(mWidgetInfo[eachWidget].size.height() + 1); + } + else{ + result += mWidgetInfo[eachWidget].size.width(); + eachWidget->setMinimumWidth(mWidgetInfo[eachWidget].size.width()); + eachWidget->setMaximumWidth(mWidgetInfo[eachWidget].size.width() + 1); + } } -#ifndef Q_WS_WIN - qDebug() << __PRETTY_FUNCTION__ << "widget " << &eachWidget; - qDebug() << __PRETTY_FUNCTION__ << "count " << count++; - qDebug() << __PRETTY_FUNCTION__ << "widget orignal size " << mWidgetInfo[eachWidget]; - qDebug() << __PRETTY_FUNCTION__ << "containes size " << pSize; - qDebug() << __PRETTY_FUNCTION__ << "scale factor " << scaleFactor; - qDebug() << __PRETTY_FUNCTION__ << "new height " << result; -#endif //Adding a vertical/horizontal space between each element of the list result += mListElementsSpacing; } diff --git a/src/customWidgets/UBWidgetList.h b/src/customWidgets/UBWidgetList.h index 6cdfef66..fe0c8f29 100644 --- a/src/customWidgets/UBWidgetList.h +++ b/src/customWidgets/UBWidgetList.h @@ -20,10 +20,16 @@ class UBWidgetList : public QScrollArea { Q_OBJECT + typedef struct + { + QSize size; + bool isResizable; + } sWidgetProperties; + public: UBWidgetList(QWidget* parent=0, eWidgetListOrientation orientation = eWidgetListOrientation_Vertical, const char* name = "UBWidgetList"); ~UBWidgetList(); - void addWidget(QWidget* widget); + void addWidget(QWidget* widget, bool isResizable = true); void removeWidget(QWidget* widget); void setMargin(int margin); void setEmptyText(const QString& text); @@ -44,7 +50,7 @@ private: eWidgetListOrientation mOrientation; int mMargin; int mListElementsSpacing; - QMap mWidgetInfo; + QMap mWidgetInfo; QLabel* mpEmptyLabel; }; diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index 3b311908..cfdf18ce 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -119,7 +119,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock mpLayout->addLayout(mpActionLayout, 0); // Media - mpMediaLabel = new QLabel(tr("Media"), mpContainer); + mpMediaLabel = new QLabel(tr("Medias"), mpContainer); mpLayout->addWidget(mpMediaLabel, 0); mpDropMediaZone = new UBTeacherBarDropMediaZone(mpContainer); mpLayout->addWidget(mpDropMediaZone, 1); @@ -380,7 +380,15 @@ void UBTeacherBarWidget::loadContent() } // Add the media - mpPreview->mediaViewer()->loadMedia(nextInfos.medias); + if(nextInfos.medias.count() > 0){ + QList widgetList; + widgetList.append(mpPreview->mediaLabel()); + mpPreview->mediaViewer()->loadWidgets(widgetList,false); + int loadedMedia = mpPreview->mediaViewer()->loadMedia(nextInfos.medias); + if(loadedMedia) + mpPreview->mediaLabel()->setVisible(true); + } + // Add the links if(!mUrlList.empty()){ @@ -879,8 +887,10 @@ void UBTeacherBarPreviewWidget::setComments(const QString &comments) mpComments->setVisible(true); mpCommentsLabel->setVisible(true); mWidgets << mpCommentsLabel; + mMediaViewer.loadWidgets(mWidgets, false); + mWidgets.clear(); mWidgets << mpComments; - mMediaViewer.loadWidgets(mWidgets); + mMediaViewer.loadWidgets(mWidgets, true); } } @@ -894,7 +904,7 @@ void UBTeacherBarPreviewWidget::hideElements() { mpActionsLabel = new QLabel(tr("Actions"), this); mpActionsLabel->setObjectName("UBTeacherBarPreviewSubtitle"); - mpMediaLabel = new QLabel(tr("Media"), this); + mpMediaLabel = new QLabel(tr("Medias"), this); mpMediaLabel->setObjectName("UBTeacherBarPreviewSubtitle"); mpCommentsLabel = new QLabel(tr("Comments"), this); mpCommentsLabel->setObjectName("UBTeacherBarPreviewSubtitle"); @@ -917,6 +927,8 @@ void UBTeacherBarPreviewWidget::setActions(QStringList actions) mWidgets.clear(); mpActionsLabel->setVisible(true); mWidgets << mpActionsLabel; + mediaViewer()->loadWidgets(mWidgets,false); + mWidgets.clear(); foreach(QString action, actions){ QStringList desc = action.split(';'); if(2 <= desc.size()){ @@ -928,7 +940,7 @@ void UBTeacherBarPreviewWidget::setActions(QStringList actions) mWidgets << mpTmpAction; } } - mMediaViewer.loadWidgets(mWidgets); + mMediaViewer.loadWidgets(mWidgets, true); } } @@ -938,12 +950,14 @@ void UBTeacherBarPreviewWidget::setLinks(QStringList links) mWidgets.clear(); mpLinksLabel->setVisible(true); mWidgets << mpLinksLabel; + mMediaViewer.loadWidgets(mWidgets, false); + mWidgets.clear(); foreach(QString link, links){ mpTmpLink = new QLabel(link, this); mpTmpLink->setOpenExternalLinks(true); mWidgets << mpTmpLink; } - mMediaViewer.loadWidgets(mWidgets); + mMediaViewer.loadWidgets(mWidgets, true); } } @@ -983,17 +997,18 @@ void UBTeacherBarPreviewMedia::cleanMedia() mWidgetList.clear(); } -void UBTeacherBarPreviewMedia::loadWidgets(QList pWidgetsList) +void UBTeacherBarPreviewMedia::loadWidgets(QList pWidgetsList, bool isResizable) { foreach(QWidget*eachWidget, pWidgetsList){ - mWidget->addWidget(eachWidget); + mWidget->addWidget(eachWidget,isResizable); mWidgetList[eachWidget]="DRAG UNAVAILABLE"; } } -void UBTeacherBarPreviewMedia::loadMedia(QStringList pMedias) +int UBTeacherBarPreviewMedia::loadMedia(QStringList pMedias) { + int addedMedia = 0; foreach(QString eachString, pMedias){ if(!eachString.isEmpty()){ QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(eachString); @@ -1002,12 +1017,14 @@ void UBTeacherBarPreviewMedia::loadMedia(QStringList pMedias) label->loadImage(eachString); mWidget->addWidget(label); mWidgetList[label]=eachString; + addedMedia += 1; } else if(mimeType.contains("video") || mimeType.contains("audio")){ UBDraggableMediaPlayer* mediaPlayer = new UBDraggableMediaPlayer(); mediaPlayer->setFile(eachString); mWidget->addWidget(mediaPlayer); mWidgetList[mediaPlayer] = eachString; + addedMedia += 1; } else{ qWarning() << "pMediaPath" << eachString; @@ -1015,6 +1032,7 @@ void UBTeacherBarPreviewMedia::loadMedia(QStringList pMedias) } } } + return addedMedia; } // ----------------------------------------------------------------------------------------------- diff --git a/src/gui/UBTeacherBarWidget.h b/src/gui/UBTeacherBarWidget.h index 3916d528..b2910594 100644 --- a/src/gui/UBTeacherBarWidget.h +++ b/src/gui/UBTeacherBarWidget.h @@ -87,8 +87,8 @@ class UBTeacherBarPreviewMedia : public QWidget public: UBTeacherBarPreviewMedia(QWidget* parent=0, const char* name="UBTeacherBarPreviewMedia"); ~UBTeacherBarPreviewMedia(); - void loadMedia(QStringList pMedias); - void loadWidgets(QList pWidgetList); + int loadMedia(QStringList pMedias); + void loadWidgets(QList pWidgetList, bool isResizable = true); void cleanMedia(); private: @@ -146,6 +146,7 @@ public: void setActions(QStringList actions); void setLinks(QStringList links); void clean(); + QLabel* mediaLabel() { return mpMediaLabel;} signals: void showEditMode(); From 3c905ba23371de47e905f31f9474f6b63946fe25 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 9 Jan 2012 15:23:42 +0100 Subject: [PATCH 2/4] fixed syntax error --- src/customWidgets/UBWidgetList.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/customWidgets/UBWidgetList.cpp b/src/customWidgets/UBWidgetList.cpp index 482a0780..2832ca61 100644 --- a/src/customWidgets/UBWidgetList.cpp +++ b/src/customWidgets/UBWidgetList.cpp @@ -53,7 +53,8 @@ void UBWidgetList::addWidget(QWidget *widget, bool isResizable) { if(NULL != mpLayout){ mpEmptyLabel->setVisible(false); - mWidgetInfo[widget] = {widget->size(), isResizable}; + sWidgetProperties properties = {widget->size(), isResizable}; + mWidgetInfo[widget] = properties; qDebug() << __FUNCTION__ << "widget : " << widget << " widget->size () " << widget->size() << " isResizable " << isResizable; updateView(size()); mpLayout->addWidget(widget); From 04dacaa607b8aecd81307e11ff897d00b0952991 Mon Sep 17 00:00:00 2001 From: Claudio Valerio <=claudio@open-sankore.org> Date: Mon, 9 Jan 2012 15:57:51 +0100 Subject: [PATCH 3/4] fixed player windows on windows --- src/gui/UBMediaPlayer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/UBMediaPlayer.cpp b/src/gui/UBMediaPlayer.cpp index 8bb60905..641ac162 100644 --- a/src/gui/UBMediaPlayer.cpp +++ b/src/gui/UBMediaPlayer.cpp @@ -102,7 +102,9 @@ UBMediaPlayer::UBMediaPlayer() : vLayout->addWidget(&m_videoWindow); // m_videoWidget->setStyleSheet(QString("background:red;")); QVBoxLayout *buttonPanelLayout = new QVBoxLayout(); - m_videoWindow.hide(); +#ifdef Q_WS_MAC + m_videoWindow.hide(); +#endif // buttonPanelLayout->addLayout(layout); // timeLabel = new QLabel(this); From afa89214a85578473b8415b5a69cba87f0c434f0 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 9 Jan 2012 16:04:49 +0100 Subject: [PATCH 4/4] last commit --- Sankore_3.1.pro | 4 ++-- src/gui/UBMediaPlayer.cpp | 4 ++-- src/gui/UBTeacherBarWidget.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro index 5dfa1b33..787b195b 100644 --- a/Sankore_3.1.pro +++ b/Sankore_3.1.pro @@ -12,8 +12,8 @@ linux-g++-64 { VERSION_MAJ = 1 VERSION_MIN = 40 -VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error -VERSION_PATCH = 01 +VERSION_TYPE = a # a = alpha, b = beta, r = release, other => error +VERSION_PATCH = 00 VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}" VERSION = $$replace(VERSION, "\\.r", "") diff --git a/src/gui/UBMediaPlayer.cpp b/src/gui/UBMediaPlayer.cpp index 641ac162..62ea98c8 100644 --- a/src/gui/UBMediaPlayer.cpp +++ b/src/gui/UBMediaPlayer.cpp @@ -102,8 +102,8 @@ UBMediaPlayer::UBMediaPlayer() : vLayout->addWidget(&m_videoWindow); // m_videoWidget->setStyleSheet(QString("background:red;")); QVBoxLayout *buttonPanelLayout = new QVBoxLayout(); -#ifdef Q_WS_MAC - m_videoWindow.hide(); +#ifndef Q_WS_WIN + m_videoWindow.hide(); #endif // buttonPanelLayout->addLayout(layout); diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index cfdf18ce..3a9a8a75 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -386,7 +386,7 @@ void UBTeacherBarWidget::loadContent() mpPreview->mediaViewer()->loadWidgets(widgetList,false); int loadedMedia = mpPreview->mediaViewer()->loadMedia(nextInfos.medias); if(loadedMedia) - mpPreview->mediaLabel()->setVisible(true); + mpPreview->mediaLabel()->setVisible(true); }