parent
02be812b74
commit
116f6f7d3d
@ -0,0 +1,122 @@ |
||||
/*
|
||||
* Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) |
||||
* |
||||
* This file is part of Open-Sankoré. |
||||
* |
||||
* Open-Sankoré is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, version 3 of the License, |
||||
* with a specific linking exception for the OpenSSL project's |
||||
* "OpenSSL" library (or with modified versions of it that use the |
||||
* same license as the "OpenSSL" library). |
||||
* |
||||
* Open-Sankoré is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with Open-Sankoré. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
|
||||
|
||||
#include <QVBoxLayout> |
||||
#include <QLabel> |
||||
#include <QPainter> |
||||
#include <QMouseEvent> |
||||
#include <QCheckBox> |
||||
#include <QWebFrame> |
||||
#include "UBStartupHintsPalette.h" |
||||
|
||||
#include "globals/UBGlobals.h" |
||||
#include "core/UBSettings.h" |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
UBStartupHintsPalette::UBStartupHintsPalette(QWidget *parent) : |
||||
UBFloatingPalette(Qt::TopRightCorner,parent) |
||||
{ |
||||
setObjectName("UBStartupHintsPalette"); |
||||
if(UBSettings::settings()->appStartupHintsEnabled->get().toBool()){ |
||||
setFixedSize(700,450); |
||||
mLayout = new QVBoxLayout(); |
||||
mLayout->setContentsMargins(10,28,10,10); |
||||
setLayout(mLayout); |
||||
QString url = UBSettings::settings()->applicationStartupHintsDirectory() + "/index.html"; |
||||
mpWebView = new QWebView(this); |
||||
mpSankoreAPI = new UBWidgetUniboardAPI(0); |
||||
mpWebView->page()->mainFrame()->addToJavaScriptWindowObject("sankore", mpSankoreAPI); |
||||
connect(mpWebView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(javaScriptWindowObjectCleared())); |
||||
mpWebView->setUrl(QUrl::fromLocalFile(url)); |
||||
mpWebView->setAcceptDrops(false); |
||||
mLayout->addWidget(mpWebView); |
||||
mButtonLayout = new QHBoxLayout(); |
||||
mLayout->addLayout(mButtonLayout); |
||||
mShowNextTime = new QCheckBox(tr("Visible next time"),this); |
||||
mShowNextTime->setCheckState(Qt::Checked); |
||||
connect(mShowNextTime,SIGNAL(stateChanged(int)),this,SLOT(onShowNextTimeStateChanged(int))); |
||||
mButtonLayout->addStretch(); |
||||
mButtonLayout->addWidget(mShowNextTime); |
||||
} |
||||
else |
||||
hide(); |
||||
} |
||||
|
||||
UBStartupHintsPalette::~UBStartupHintsPalette() |
||||
{ |
||||
// DELETEPTR(mButtonLayout);
|
||||
// DELETEPTR(mLayout);
|
||||
} |
||||
|
||||
void UBStartupHintsPalette::paintEvent(QPaintEvent *event) |
||||
{ |
||||
UBFloatingPalette::paintEvent(event); |
||||
|
||||
QPainter painter(this); |
||||
painter.drawPixmap(0, 0, QPixmap(":/images/close.svg")); |
||||
} |
||||
|
||||
|
||||
void UBStartupHintsPalette::close() |
||||
{ |
||||
hide(); |
||||
} |
||||
|
||||
|
||||
void UBStartupHintsPalette::mouseReleaseEvent(QMouseEvent * event) |
||||
{ |
||||
if (event->pos().x() >= 0 && event->pos().x() < QPixmap(":/images/close.svg").width() |
||||
&& event->pos().y() >= 0 && event->pos().y() < QPixmap(":/images/close.svg").height()) |
||||
{ |
||||
event->accept(); |
||||
close(); |
||||
} |
||||
|
||||
UBFloatingPalette::mouseReleaseEvent(event); |
||||
} |
||||
|
||||
void UBStartupHintsPalette::onShowNextTimeStateChanged(int state) |
||||
{ |
||||
UBSettings::settings()->appStartupHintsEnabled->setBool(state == Qt::Checked); |
||||
} |
||||
|
||||
void UBStartupHintsPalette::showEvent(QShowEvent *event) |
||||
{ |
||||
Q_UNUSED(event); |
||||
adjustSizeAndPosition(); |
||||
move((parentWidget()->width() - width()) / 2, (parentWidget()->height() - height()) / 5); |
||||
} |
||||
|
||||
|
||||
int UBStartupHintsPalette::border() |
||||
{ |
||||
return 40; |
||||
} |
||||
|
||||
void UBStartupHintsPalette::javaScriptWindowObjectCleared() |
||||
{ |
||||
mpWebView->page()->mainFrame()->addToJavaScriptWindowObject("sankore", mpSankoreAPI); |
||||
} |
@ -0,0 +1,67 @@ |
||||
/*
|
||||
* Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) |
||||
* |
||||
* This file is part of Open-Sankoré. |
||||
* |
||||
* Open-Sankoré is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, version 3 of the License, |
||||
* with a specific linking exception for the OpenSSL project's |
||||
* "OpenSSL" library (or with modified versions of it that use the |
||||
* same license as the "OpenSSL" library). |
||||
* |
||||
* Open-Sankoré is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with Open-Sankoré. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
|
||||
|
||||
#ifndef UBSTARTUPTIPSPALETTE_H |
||||
#define UBSTARTUPTIPSPALETTE_H |
||||
|
||||
class QCheckBox; |
||||
class QVBoxLayout; |
||||
class QHBoxLayout; |
||||
|
||||
#include <QWebView> |
||||
|
||||
#include "UBFloatingPalette.h" |
||||
#include "api/UBWidgetUniboardAPI.h" |
||||
|
||||
class UBStartupHintsPalette : public UBFloatingPalette |
||||
{ |
||||
Q_OBJECT; |
||||
public: |
||||
UBStartupHintsPalette(QWidget *parent = 0); |
||||
~UBStartupHintsPalette(); |
||||
|
||||
|
||||
signals: |
||||
|
||||
public slots: |
||||
|
||||
protected: |
||||
virtual void paintEvent(QPaintEvent *event); |
||||
virtual void mouseReleaseEvent(QMouseEvent * event); |
||||
virtual void showEvent(QShowEvent *event); |
||||
|
||||
private: |
||||
void close(); |
||||
int border(); |
||||
QCheckBox* mShowNextTime; |
||||
QVBoxLayout* mLayout; |
||||
QHBoxLayout* mButtonLayout; |
||||
UBWidgetUniboardAPI *mpSankoreAPI; |
||||
QWebView* mpWebView; |
||||
|
||||
private slots: |
||||
void onShowNextTimeStateChanged(int state); |
||||
void javaScriptWindowObjectCleared(); |
||||
}; |
||||
|
||||
#endif // UBSTARTUPTIPSPALETTE_H
|
Loading…
Reference in new issue