From 3bfc3ceb0dbdf8e04b93f41c1e1c7942c9067f95 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Mon, 6 Feb 2012 11:22:45 +0100 Subject: [PATCH 1/2] added the ability to delete an image in the media container of the teacherbar --- src/customWidgets/UBActionableWidget.cpp | 70 ++++++++++++++++++++++++ src/customWidgets/UBActionableWidget.h | 35 ++++++++++++ src/customWidgets/UBMediaWidget.cpp | 5 +- src/customWidgets/UBMediaWidget.h | 3 +- src/customWidgets/UBWidgetList.cpp | 41 ++++++++++++++ src/customWidgets/UBWidgetList.h | 7 ++- src/customWidgets/customWidgets.pri | 6 +- src/gui/UBTBPageEditWidget.cpp | 70 ++++++++++++++++++++---- src/gui/UBTBPageEditWidget.h | 22 +++++++- 9 files changed, 239 insertions(+), 20 deletions(-) create mode 100644 src/customWidgets/UBActionableWidget.cpp create mode 100644 src/customWidgets/UBActionableWidget.h diff --git a/src/customWidgets/UBActionableWidget.cpp b/src/customWidgets/UBActionableWidget.cpp new file mode 100644 index 00000000..47af2621 --- /dev/null +++ b/src/customWidgets/UBActionableWidget.cpp @@ -0,0 +1,70 @@ +#include +#include + +#include "UBActionableWidget.h" + +UBActionableWidget::UBActionableWidget(QWidget *parent, const char *name):QWidget(parent) + , mShowActions(false) +{ + setObjectName(name); + mActions.clear(); +} + +UBActionableWidget::~UBActionableWidget() +{ + +} + +void UBActionableWidget::addAction(eAction act) +{ + if(!mActions.contains(act)){ + mActions << act; + } +} + +void UBActionableWidget::removeAction(eAction act) +{ + if(mActions.contains(act)){ + mActions.remove(mActions.indexOf(act)); + } +} + +void UBActionableWidget::removeAllActions() +{ + mActions.clear(); +} + +void UBActionableWidget::setActionsVisible(bool bVisible) +{ + mShowActions = bVisible; +} + +bool UBActionableWidget::shouldClose(QPoint p) +{ + qDebug() << "Should close: " << p.x() << "," << p.y(); + bool close = false; + + if(mShowActions && + p.x() >= 0 && + p.x() <= ACTIONSIZE && + p.y() >= 0 && + p.y() <= ACTIONSIZE){ + close = true; + } + + return close; +} + +void UBActionableWidget::paintEvent(QPaintEvent* ev) +{ + if(mShowActions){ + QPainter p(this); + if(mActions.contains(eAction_Close)){ + p.drawPixmap(0, 0, 16, 16, QPixmap(":images/close.svg")); + }else if(mActions.contains(eAction_MoveUp)){ + // Implement me later + }else if(mActions.contains(eAction_MoveDown)){ + // Implement me later + } + } +} diff --git a/src/customWidgets/UBActionableWidget.h b/src/customWidgets/UBActionableWidget.h new file mode 100644 index 00000000..12b2a2fb --- /dev/null +++ b/src/customWidgets/UBActionableWidget.h @@ -0,0 +1,35 @@ +#ifndef UBACTIONABLEWIDGET_H +#define UBACTIONABLEWIDGET_H + +#include +#include + +#define ACTIONSIZE 16 + +typedef enum{ + eAction_Close, + eAction_MoveUp, + eAction_MoveDown +}eAction; + +class UBActionableWidget : public QWidget +{ + Q_OBJECT +public: + UBActionableWidget(QWidget* parent=0, const char* name="UBActionableWidget"); + ~UBActionableWidget(); + void addAction(eAction act); + void removeAction(eAction act); + void removeAllActions(); + void setActionsVisible(bool bVisible); + bool shouldClose(QPoint p); + +protected: + void paintEvent(QPaintEvent* ev); + QVector mActions; + +private: + bool mShowActions; +}; + +#endif // UBACTIONABLEWIDGET_H diff --git a/src/customWidgets/UBMediaWidget.cpp b/src/customWidgets/UBMediaWidget.cpp index c1809d93..ee71a664 100644 --- a/src/customWidgets/UBMediaWidget.cpp +++ b/src/customWidgets/UBMediaWidget.cpp @@ -22,7 +22,7 @@ * @param parent as the parent widget * @param name as the object name */ -UBMediaWidget::UBMediaWidget(eMediaType type, QWidget *parent, const char *name):QWidget(parent) +UBMediaWidget::UBMediaWidget(eMediaType type, QWidget *parent, const char *name):UBActionableWidget(parent, name) , mpMediaObject(NULL) , mpVideoWidget(NULL) , mpAudioOutput(NULL) @@ -35,11 +35,10 @@ UBMediaWidget::UBMediaWidget(eMediaType type, QWidget *parent, const char *name) , mpMediaContainer(NULL) , mpCover(NULL) { - setObjectName(name); - setAttribute(Qt::WA_StyledBackground, true); setStyleSheet(UBApplication::globalStyleSheet()); + addAction(eAction_Close); mType = type; setLayout(&mLayout); diff --git a/src/customWidgets/UBMediaWidget.h b/src/customWidgets/UBMediaWidget.h index 5192c3c7..01b0a0b6 100644 --- a/src/customWidgets/UBMediaWidget.h +++ b/src/customWidgets/UBMediaWidget.h @@ -27,6 +27,7 @@ #include #include "interfaces/IResizeable.h" +#include "UBActionableWidget.h" #define UBMEDIABUTTON_SIZE 32 #define TICK_INTERVAL 1000 @@ -58,7 +59,7 @@ private: bool mPressed; }; -class UBMediaWidget : public QWidget +class UBMediaWidget : public UBActionableWidget { Q_OBJECT public: diff --git a/src/customWidgets/UBWidgetList.cpp b/src/customWidgets/UBWidgetList.cpp index 8b099b5a..62ed6677 100644 --- a/src/customWidgets/UBWidgetList.cpp +++ b/src/customWidgets/UBWidgetList.cpp @@ -1,5 +1,7 @@ #include #include +#include +#include #include "UBGlobals.h" #include "UBWidgetList.h" @@ -135,8 +137,47 @@ void UBWidgetList::resizeEvent(QResizeEvent *ev) void UBWidgetList::mousePressEvent(QMouseEvent *ev) { if(mCanRemove){ + QWidget* pWAt = widgetAt(ev->pos()); + if(NULL != mpCurrentWidget){ + if(pWAt == mpCurrentWidget){ + QPoint p; + p.setX(ev->x()); + p.setY(ev->y()); + if(mpCurrentWidget->shouldClose(p)){ + emit closeWidget(mpCurrentWidget); + return; + } + + }else{ + mpCurrentWidget->setActionsVisible(false); + } + } + mpCurrentWidget = dynamic_cast(pWAt); + if(NULL != mpCurrentWidget){ + mpCurrentWidget->setActionsVisible(true); + } + } + update(); +} +QWidget* UBWidgetList::widgetAt(QPoint p) +{ + QWidget* pW = NULL; + pW = childAt(p); + if(NULL != pW){ + do{ + if( "UBTeacherStudentAction" == pW->objectName() || + "UBUrlWidget" == pW->objectName() || + "UBTBMediaPicture" == pW->objectName() || + "UBMediaWidget" == pW->objectName()){ + return pW; + }else{ + pW = pW->parentWidget(); + } + }while(NULL != pW && this != pW); } + + return pW; } void UBWidgetList::updateSizes() diff --git a/src/customWidgets/UBWidgetList.h b/src/customWidgets/UBWidgetList.h index c4137178..d2cd3a6c 100644 --- a/src/customWidgets/UBWidgetList.h +++ b/src/customWidgets/UBWidgetList.h @@ -11,6 +11,7 @@ #include #include "interfaces/IResizeable.h" +#include "customWidgets/UBActionableWidget.h" typedef enum{ eWidgetListOrientation_Vertical, @@ -40,6 +41,9 @@ public: void setListElementSpacing(int margin) { mListElementsSpacing = margin; } int listElementsSpacing() {return mListElementsSpacing; } +signals: + void closeWidget(QWidget* w); + protected: bool mCanRemove; @@ -47,6 +51,7 @@ protected: void mousePressEvent(QMouseEvent* ev); private: + QWidget* widgetAt(QPoint p); int scaleWidgets(QSize pSize); void scaleContainer(QSize pSize, int updateValue); void updateView(QSize pSize); @@ -58,7 +63,7 @@ private: int mListElementsSpacing; QMap mWidgetInfo; QLabel* mpEmptyLabel; - QWidget* mpCurrentWidget; + UBActionableWidget* mpCurrentWidget; }; #endif // UBWIDGETLIST_H diff --git a/src/customWidgets/customWidgets.pri b/src/customWidgets/customWidgets.pri index aa7b0255..5fe74b8c 100644 --- a/src/customWidgets/customWidgets.pri +++ b/src/customWidgets/customWidgets.pri @@ -3,9 +3,11 @@ HEADERS += src/customWidgets/UBWidgetList.h \ src/customWidgets/UBDraggableLabel.h \ src/customWidgets/UBMediaWidget.h \ src/customWidgets/UBGlobals.h \ - src/customWidgets/UBDraggableMedia.h + src/customWidgets/UBDraggableMedia.h \ + src/customWidgets/UBActionableWidget.h SOURCES += src/customWidgets/UBWidgetList.cpp \ src/customWidgets/UBDraggableLabel.cpp \ src/customWidgets/UBMediaWidget.cpp \ - src/customWidgets/UBDraggableMedia.cpp + src/customWidgets/UBDraggableMedia.cpp \ + src/customWidgets/UBActionableWidget.cpp diff --git a/src/gui/UBTBPageEditWidget.cpp b/src/gui/UBTBPageEditWidget.cpp index e2142b13..12424a1a 100644 --- a/src/gui/UBTBPageEditWidget.cpp +++ b/src/gui/UBTBPageEditWidget.cpp @@ -100,6 +100,9 @@ UBTBPageEditWidget::UBTBPageEditWidget(UBTeacherBarDataMgr *pDataMgr, QWidget *p connect(mpDocumentEditbutton, SIGNAL(clicked()), this, SLOT(onDocumentEditClicked())); connect(mpPagePreviewButton, SIGNAL(clicked()), this, SLOT(onPagePreviewClicked())); connect(mpMediaContainer, SIGNAL(mediaDropped(QString)), this, SLOT(onMediaDropped(QString))); + connect(mpActions, SIGNAL(closeWidget(QWidget*)), this, SLOT(onCloseWidget(QWidget*))); + connect(mpLinks, SIGNAL(closeWidget(QWidget*)), this, SLOT(onCloseWidget(QWidget*))); + connect(mpMediaContainer, SIGNAL(closeWidget(QWidget*)), this, SLOT(onCloseWidget(QWidget*))); } UBTBPageEditWidget::~UBTBPageEditWidget() @@ -271,15 +274,36 @@ void UBTBPageEditWidget::clearFields() mClearingFields = false; } +void UBTBPageEditWidget::onCloseWidget(QWidget *w) +{ + if(NULL != w){ + if("UBTeacherStudentAction" == w->objectName()){ + UBTeacherStudentAction* pW = dynamic_cast(w); + mpActions->removeWidget(pW); + mActions.remove(mActions.indexOf(pW)); + DELETEPTR(w); + }else if("UBUrlWidget" == w->objectName()){ + UBUrlWidget* pW = dynamic_cast(w); + mpLinks->removeWidget(pW); + mUrls.remove(mUrls.indexOf(pW)); + DELETEPTR(w); + }else if("UBTBMediaPicture" == w->objectName() || "UBMediaWidget" == w->objectName()){ + mpMediaContainer->removeWidget(w); + mMedias.remove(mMedias.indexOf(w)); + DELETEPTR(w); + } + } +} + // --------------------------------------------------------------------------------------------- -UBUrlWidget::UBUrlWidget(QWidget *parent, const char *name):QWidget(parent) +UBUrlWidget::UBUrlWidget(QWidget *parent, const char *name):UBActionableWidget(parent, name) , mpLayout(NULL) , mpUrlLabel(NULL) , mpUrl(NULL) { - setObjectName(name); setAttribute(Qt::WA_StyledBackground, true); setStyleSheet(UBApplication::globalStyleSheet()); + addAction(eAction_Close); mpLayout = new QVBoxLayout(this); setLayout(mpLayout); @@ -435,12 +459,13 @@ QWidget* UBTBMediaContainer::generateMediaWidget(const QString& url) QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(url); if(mimeType.contains("image")){ QPixmap pix = QPixmap(url); - QLabel* label = new QLabel(); - pix.scaledToWidth(label->width()); - label->resize(pix.width(), pix.height()); - label->setPixmap(pix); - label->setScaledContents(true); - pW = label; + UBPictureWidget* pic = new UBPictureWidget(); + pix.scaledToWidth(pic->label()->width()); + pic->label()->resize(pix.width(), pix.height()); + pic->label()->setPixmap(pix); + pic->label()->setScaledContents(true); + pic->setObjectName("UBTBMediaPicture"); + pW = pic; } else if(mimeType.contains("video") || mimeType.contains("audio")){ UBMediaWidget* mediaPlayer = new UBMediaWidget(mimeType.contains("audio")?eMediaType_Audio:eMediaType_Video); @@ -455,16 +480,15 @@ QWidget* UBTBMediaContainer::generateMediaWidget(const QString& url) return pW; } -UBTeacherStudentAction::UBTeacherStudentAction(QWidget *parent, const char *name):QWidget(parent) +UBTeacherStudentAction::UBTeacherStudentAction(QWidget *parent, const char *name):UBActionableWidget(parent, name) , mpText(NULL) , mpLayout(NULL) , mpComboLayout(NULL) , mpCombo(NULL) { - setObjectName(name); - setAttribute(Qt::WA_StyledBackground, true); setStyleSheet(UBApplication::globalStyleSheet()); + addAction(eAction_Close); // Create the GUI mpLayout = new QHBoxLayout(this); @@ -532,3 +556,27 @@ void UBTeacherStudentAction::setText(const QString& text) } } +// ------------------------------------------------------------- +UBPictureWidget::UBPictureWidget(QWidget *parent, const char *name):UBActionableWidget(parent, name) + , mpLayout(NULL) + , mpLabel(NULL) +{ + addAction(eAction_Close); + mpLayout = new QVBoxLayout(this); + setLayout(mpLayout); + mpLayout->setContentsMargins(10, 0, 10, 0); + mpLabel = new QLabel(this); + mpLayout->addWidget(mpLabel); + mpLabel->setGeometry( 10, 10, width()-2*10, height()); +} + +UBPictureWidget::~UBPictureWidget() +{ + DELETEPTR(mpLabel); + DELETEPTR(mpLayout); +} + +void UBPictureWidget::resizeEvent(QResizeEvent *ev) +{ + mpLabel->setGeometry( 10, 10, width()-2*10, height()); +} diff --git a/src/gui/UBTBPageEditWidget.h b/src/gui/UBTBPageEditWidget.h index 0f3c61b9..0521c847 100644 --- a/src/gui/UBTBPageEditWidget.h +++ b/src/gui/UBTBPageEditWidget.h @@ -11,10 +11,11 @@ #include "core/UBPersistenceManager.h" #include "customWidgets/UBWidgetList.h" +#include "customWidgets/UBActionableWidget.h" #include "interfaces/IDropable.h" #include "UBTeacherBarDataMgr.h" -class UBTeacherStudentAction : public QWidget +class UBTeacherStudentAction : public UBActionableWidget { Q_OBJECT @@ -33,7 +34,7 @@ private: QComboBox* mpCombo; }; -class UBUrlWidget : public QWidget +class UBUrlWidget : public UBActionableWidget { public: UBUrlWidget(QWidget* parent=0, const char* name="UBUrlWidget"); @@ -56,6 +57,22 @@ private: QLineEdit* mpTitle; }; +class UBPictureWidget : public UBActionableWidget +{ +public: + UBPictureWidget(QWidget* parent=0, const char* name="UBPictureWidget"); + ~UBPictureWidget(); + + QLabel* label(){return mpLabel;} + +protected: + void resizeEvent(QResizeEvent* ev); + +private: + QVBoxLayout* mpLayout; + QLabel* mpLabel; +}; + class UBTBMediaContainer : public UBWidgetList , public IDropable { @@ -104,6 +121,7 @@ private slots: void onMediaDropped(const QString& url); void onDocumentEditClicked(); void onPagePreviewClicked(); + void onCloseWidget(QWidget* w); private: QVBoxLayout mLayout; From 65dc04227a430f5c9aad4429125661e68c4bfce5 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Mon, 6 Feb 2012 13:48:07 +0100 Subject: [PATCH 2/2] Merge branch 'master' of github.com:Sankore/Sankore-3.1 src/customWidgets/customWidgets.pri --- Sankore_3.1.pro | 2 + src/adaptors/UBExportDocument.cpp | 4 ++ src/adaptors/UBExportWeb.cpp | 4 ++ src/adaptors/UBImportCFF.cpp | 4 ++ src/adaptors/UBImportDocument.cpp | 4 ++ .../publishing/UBDocumentPublisher.cpp | 4 ++ src/board/UBBoardPaletteManager.cpp | 35 -------------- src/customWidgets/UBGlobals.h | 9 ---- src/customWidgets/UBMediaWidget.cpp | 2 +- src/customWidgets/UBWidgetList.cpp | 2 +- src/customWidgets/customWidgets.pri | 2 +- src/globals/UBGlobals.h | 46 +++++++++++++++++++ src/gui/UBTBDocumentEditWidget.cpp | 2 +- src/gui/UBTBDocumentPreviewWidget.cpp | 2 +- src/gui/UBTBPageEditWidget.cpp | 2 +- src/gui/UBTeacherBarDataMgr.cpp | 2 +- src/gui/UBTeacherBarPreviewWidget.cpp | 2 +- src/gui/UBTeacherBarWidget.cpp | 2 +- src/pdf/XPDFRenderer.h | 5 ++ 19 files changed, 82 insertions(+), 53 deletions(-) delete mode 100644 src/customWidgets/UBGlobals.h create mode 100644 src/globals/UBGlobals.h diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro index bdc7704c..e17a120a 100644 --- a/Sankore_3.1.pro +++ b/Sankore_3.1.pro @@ -35,6 +35,7 @@ QT += script QT += xmlpatterns INCLUDEPATH += src +INCLUDEPATH += globals include($$THIRD_PARTY_PATH/libs.pri) include(src/adaptors/adaptors.pri) @@ -83,6 +84,7 @@ UB_LIBRARY.files = resources/library UB_FONTS.files = resources/fonts UB_THIRDPARTY_INTERACTIVE.files = thirdparty/interactive +DEFINES += NO_THIRD_PARTY_WARNINGS DEFINES += UBVERSION=\"\\\"$${LONG_VERSION}\"\\\" \ UBVERSION_RC=$$VERSION_RC ALPHA_BETA_STR = $$find(VERSION, "[ab]") diff --git a/src/adaptors/UBExportDocument.cpp b/src/adaptors/UBExportDocument.cpp index 27ea87d7..95a8e4bc 100644 --- a/src/adaptors/UBExportDocument.cpp +++ b/src/adaptors/UBExportDocument.cpp @@ -22,8 +22,12 @@ #include "document/UBDocumentProxy.h" +#include "globals/UBGlobals.h" + +THIRD_PARTY_WARNINGS_DISABLE #include "quazip.h" #include "quazipfile.h" +THIRD_PARTY_WARNINGS_ENABLE #include "transition/UniboardSankoreTransition.h" diff --git a/src/adaptors/UBExportWeb.cpp b/src/adaptors/UBExportWeb.cpp index bfdedfe5..59a9c31b 100644 --- a/src/adaptors/UBExportWeb.cpp +++ b/src/adaptors/UBExportWeb.cpp @@ -23,8 +23,12 @@ #include "document/UBDocumentProxy.h" +#include "globals/UBGlobals.h" + +THIRD_PARTY_WARNINGS_DISABLE #include "quazip.h" #include "quazipfile.h" +THIRD_PARTY_WARNINGS_ENABLE #include "core/memcheck.h" diff --git a/src/adaptors/UBImportCFF.cpp b/src/adaptors/UBImportCFF.cpp index 448e2834..6b4fa318 100644 --- a/src/adaptors/UBImportCFF.cpp +++ b/src/adaptors/UBImportCFF.cpp @@ -27,9 +27,13 @@ #include "UBCFFSubsetAdaptor.h" #include "UBImportCFF.h" +#include "globals/UBGlobals.h" + +THIRD_PARTY_WARNINGS_DISABLE #include "quazip.h" #include "quazipfile.h" #include "quazipfileinfo.h" +THIRD_PARTY_WARNINGS_ENABLE #include "core/memcheck.h" diff --git a/src/adaptors/UBImportDocument.cpp b/src/adaptors/UBImportDocument.cpp index f441b980..3e7808cf 100644 --- a/src/adaptors/UBImportDocument.cpp +++ b/src/adaptors/UBImportDocument.cpp @@ -22,9 +22,13 @@ #include "core/UBSettings.h" #include "core/UBPersistenceManager.h" +#include "globals/UBGlobals.h" + +THIRD_PARTY_WARNINGS_DISABLE #include "quazip.h" #include "quazipfile.h" #include "quazipfileinfo.h" +THIRD_PARTY_WARNINGS_ENABLE #include "core/memcheck.h" diff --git a/src/adaptors/publishing/UBDocumentPublisher.cpp b/src/adaptors/publishing/UBDocumentPublisher.cpp index d3ec39dd..686b9d94 100644 --- a/src/adaptors/publishing/UBDocumentPublisher.cpp +++ b/src/adaptors/publishing/UBDocumentPublisher.cpp @@ -34,8 +34,12 @@ #include "domain/UBGraphicsWidgetItem.h" +#include "globals/UBGlobals.h" + +THIRD_PARTY_WARNINGS_DISABLE #include "quazip.h" #include "quazipfile.h" +THIRD_PARTY_WARNINGS_ENABLE #include "adaptors/UBExportFullPDF.h" #include "adaptors/UBExportDocument.h" diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 1fefd94b..54fe2a33 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -92,43 +92,8 @@ UBBoardPaletteManager::UBBoardPaletteManager(QWidget* container, UBBoardControll UBBoardPaletteManager::~UBBoardPaletteManager() { - if(NULL != mpDownloadWidget) - { - delete mpDownloadWidget; - mpDownloadWidget = NULL; - } - if(NULL != mpTeacherBarWidget) - { - delete mpTeacherBarWidget; - mpTeacherBarWidget = NULL; - } - if(NULL != mpPageNavigWidget) - { - delete mpPageNavigWidget; - mpPageNavigWidget = NULL; - } - if(NULL != mpLibWidget) - { - delete mpLibWidget; - mpLibWidget = NULL; - } - if(NULL != mpCachePropWidget) - { - delete mpCachePropWidget; - mpCachePropWidget = NULL; - } delete mAddItemPalette; - if(NULL != mLeftPalette) - { - delete mLeftPalette; - mLeftPalette = NULL; - } - if(NULL != mRightPalette) - { - delete mRightPalette; - mRightPalette = NULL; - } if(NULL != mStylusPalette) { diff --git a/src/customWidgets/UBGlobals.h b/src/customWidgets/UBGlobals.h deleted file mode 100644 index 1707ceac..00000000 --- a/src/customWidgets/UBGlobals.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef UBGLOBALS_H -#define UBGLOBALS_H - -#define DELETEPTR(ptr) if(NULL != ptr){ \ - delete ptr; \ - ptr = NULL; \ - } - -#endif // UBGLOBALS_H diff --git a/src/customWidgets/UBMediaWidget.cpp b/src/customWidgets/UBMediaWidget.cpp index ee71a664..8fb69cc3 100644 --- a/src/customWidgets/UBMediaWidget.cpp +++ b/src/customWidgets/UBMediaWidget.cpp @@ -13,7 +13,7 @@ * along with this program. If not, see . */ #include "core/UBApplication.h" -#include "UBGlobals.h" +#include "globals/UBGlobals.h" #include "UBMediaWidget.h" /** diff --git a/src/customWidgets/UBWidgetList.cpp b/src/customWidgets/UBWidgetList.cpp index 62ed6677..dce108e1 100644 --- a/src/customWidgets/UBWidgetList.cpp +++ b/src/customWidgets/UBWidgetList.cpp @@ -3,7 +3,7 @@ #include #include -#include "UBGlobals.h" +#include "globals/UBGlobals.h" #include "UBWidgetList.h" UBWidgetList::UBWidgetList(QWidget* parent, eWidgetListOrientation orientation, const char* name):QScrollArea(parent) diff --git a/src/customWidgets/customWidgets.pri b/src/customWidgets/customWidgets.pri index 5fe74b8c..c531d4b3 100644 --- a/src/customWidgets/customWidgets.pri +++ b/src/customWidgets/customWidgets.pri @@ -2,7 +2,7 @@ HEADERS += src/customWidgets/UBWidgetList.h \ src/customWidgets/UBDraggableLabel.h \ src/customWidgets/UBMediaWidget.h \ - src/customWidgets/UBGlobals.h \ + src/globals/UBGlobals.h \ src/customWidgets/UBDraggableMedia.h \ src/customWidgets/UBActionableWidget.h diff --git a/src/globals/UBGlobals.h b/src/globals/UBGlobals.h new file mode 100644 index 00000000..a76d6cad --- /dev/null +++ b/src/globals/UBGlobals.h @@ -0,0 +1,46 @@ +#ifndef UBGLOBALS_H +#define UBGLOBALS_H + +#define DELETEPTR(ptr) if(NULL != ptr){ \ + delete ptr; \ + ptr = NULL; \ + } + +#ifdef Q_WS_WIN + +#define WARNINGS_DISABLE __pragma(warning(push, 0)); +#define WARNINGS_ENABLE __pragma(warning(pop)); + +#ifdef NO_THIRD_PARTY_WARNINGS +// disabling warning level to 0 and save old state +#define THIRD_PARTY_WARNINGS_DISABLE WARNINGS_DISABLE +#else +// just save old state (needs for not empty define) +#define THIRD_PARTY_WARNINGS_DISABLE __pragma(warning(push)); +#endif //#ifdef NO_THIRD_PARTY_WARNINGS +// anyway on WIN +#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE + +#else //#ifdef Q_WS_WIN + +#define WARNINGS_DISABLE _Pragma("GCC diagnostic push"); \ +_Pragma("GCC diagnostic ignored \"-Wunused-parameter\""); \ +_Pragma("GCC diagnostic ignored \"-Wunused-variable\""); \ +_Pragma("GCC diagnostic ignored \"-Wsign-compare\""); + +#define WARNINGS_ENABLE _Pragma("GCC diagnostic pop"); + +#ifdef NO_THIRD_PARTY_WARNINGS +//disabling some warnings +#define THIRD_PARTY_WARNINGS_DISABLE WARNINGS_DISABLE + +#else +// just save old state (needs for not empty define) +#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE + +#endif //#ifdef NO_THIRD_PARTY_WARNINGS + +#endif //#ifdef Q_WS_WIN + +#endif // UBGLOBALS_H + \ No newline at end of file diff --git a/src/gui/UBTBDocumentEditWidget.cpp b/src/gui/UBTBDocumentEditWidget.cpp index 4139a9d2..261372b3 100644 --- a/src/gui/UBTBDocumentEditWidget.cpp +++ b/src/gui/UBTBDocumentEditWidget.cpp @@ -1,7 +1,7 @@ #include #include "UBTBDocumentEditWidget.h" -#include "customWidgets/UBGlobals.h" +#include "globals/UBGlobals.h" UBTBDocumentEditWidget::UBTBDocumentEditWidget(UBTeacherBarDataMgr* pDataMgr, QWidget *parent, const char *name):QWidget(parent) , mpPageViewButton(NULL) diff --git a/src/gui/UBTBDocumentPreviewWidget.cpp b/src/gui/UBTBDocumentPreviewWidget.cpp index 81dbad2e..9f2ca0d8 100644 --- a/src/gui/UBTBDocumentPreviewWidget.cpp +++ b/src/gui/UBTBDocumentPreviewWidget.cpp @@ -1,4 +1,4 @@ -#include "customWidgets/UBGlobals.h" +#include "globals/UBGlobals.h" #include "UBTBDocumentPreviewWidget.h" UBTBDocumentPreviewWidget::UBTBDocumentPreviewWidget(UBTeacherBarDataMgr *pDataMgr, QWidget *parent, const char *name):QWidget(parent) diff --git a/src/gui/UBTBPageEditWidget.cpp b/src/gui/UBTBPageEditWidget.cpp index 12424a1a..68928bce 100644 --- a/src/gui/UBTBPageEditWidget.cpp +++ b/src/gui/UBTBPageEditWidget.cpp @@ -1,4 +1,4 @@ -#include "customWidgets/UBGlobals.h" +#include "globals/UBGlobals.h" #include "core/UBApplication.h" #include "frameworks/UBFileSystemUtils.h" #include "gui/UBMediaPlayer.h" diff --git a/src/gui/UBTeacherBarDataMgr.cpp b/src/gui/UBTeacherBarDataMgr.cpp index dd1f2b44..e2e2bdad 100644 --- a/src/gui/UBTeacherBarDataMgr.cpp +++ b/src/gui/UBTeacherBarDataMgr.cpp @@ -7,7 +7,7 @@ #include "board/UBBoardController.h" -#include "customWidgets/UBGlobals.h" +#include "globals/UBGlobals.h" #include "adaptors/UBMetadataDcSubsetAdaptor.h" diff --git a/src/gui/UBTeacherBarPreviewWidget.cpp b/src/gui/UBTeacherBarPreviewWidget.cpp index a02794b8..e82acd30 100644 --- a/src/gui/UBTeacherBarPreviewWidget.cpp +++ b/src/gui/UBTeacherBarPreviewWidget.cpp @@ -1,5 +1,5 @@ #include "core/UBApplication.h" -#include "customWidgets/UBGlobals.h" +#include "globals/UBGlobals.h" #include "board/UBBoardController.h" #include "frameworks/UBFileSystemUtils.h" diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index 1596b6b0..7ee9a70b 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -15,7 +15,7 @@ #include "customWidgets/UBDraggableLabel.h" #include "customWidgets/UBMediaWidget.h" -#include "customWidgets/UBGlobals.h" +#include "globals/UBGlobals.h" #include "core/memcheck.h" diff --git a/src/pdf/XPDFRenderer.h b/src/pdf/XPDFRenderer.h index b8ad475e..3b6d48c3 100644 --- a/src/pdf/XPDFRenderer.h +++ b/src/pdf/XPDFRenderer.h @@ -18,10 +18,15 @@ #include #include "PDFRenderer.h" #include + +#include "globals/UBGlobals.h" + +THIRD_PARTY_WARNINGS_DISABLE #include #include #include #include +THIRD_PARTY_WARNINGS_ENABLE class PDFDoc;