@ -1,3 +0,0 @@ |
||||
[Ubuntu Linux] |
||||
Fonts |
||||
- If you want to use the web compatible fonts, you need to install the package ttf-mscorefonts-installer. |
@ -0,0 +1,38 @@ |
||||
# OpenBoard |
||||
OpenBoard is an open source cross-platform interactive white board application designed primarily for use in schools. It was originally forked from Open-Sankoré, which was itself based on Uniboard. |
||||
|
||||
Supported platforms are Windows (7+), OS X (10.9+) and Linux (tested on Ubuntu 14.04 and 16.04). |
||||
|
||||
|
||||
## Installing |
||||
|
||||
Installers are available for Windows, OS X and Ubuntu on the [wiki](https://github.com/DIP-SEM/OpenBoard/wiki/Downloads). |
||||
|
||||
## Building from source |
||||
First, obtain the third party libraries from the OpenBoard-ThirdParty repository, and build them (instructions are provided for each library). |
||||
|
||||
Then, you may use the build (and packaging) scripts which are provided for all three platforms. These take care of compiling OpenBoard, including the translations (for OpenBoard and for Qt), stripping the debug symbols, creating the installers etc. |
||||
Minor modification to those scripts may be necessary depending on your configuration, to set the correct Qt path for example. |
||||
|
||||
Alternatively, you can easily build OpenBoard with qmake and make: |
||||
|
||||
qmake OpenBoard.pro -spec linux-g++-64 # replace linux-g++-64 by macx or win32 for other platforms |
||||
make |
||||
|
||||
Compilers used are gcc (Linux), clang (OS X) and MSVC 2010 (Windows). Make sure that your version of Qt matches this, as it is not possible e.g to build OpenBoard with clang if Qt was built with gcc. |
||||
|
||||
## Dependencies |
||||
The latest version (1.3) requires Qt 5.5. (While it has been shown to mostly work with Qt 5.2, we cannot guarantee compatibility with Qt versions other than 5.5.) |
||||
|
||||
### Qt 5.5 on Linux |
||||
|
||||
Due to a shared library conflict within Qt 5 in some distributions / some Qt versions (the Multimedia and Webkit modules were built against different versions of gstreamer by default), a specific installation of Qt5.5 may be needed for all of OpenBoard's features to work correctly. |
||||
|
||||
It can either be built from source, with the configure flag `-gstreamer 1.0` (see [here](http://doc.qt.io/qt-5/linux-building.html)), or installed from Stephan Binner's PPAs on Ubuntu. |
||||
In the latter case, simply add the repositories and install Qt 5.5.1 like so (example provided for Ubuntu 14.04, aka "Trusty"): |
||||
|
||||
sudo add-apt-repository ppa:beineri/opt-qt551-trusty |
||||
sudo apt-get update |
||||
sudo apt-get install qt-latest |
||||
|
||||
Some distributions, such as Ubuntu 16.04, provide Qt 5.5.1 packages that work perfectly with OpenBoard, so you can simply install Qt from the official repository. |
@ -1,27 +0,0 @@ |
||||
|
||||
|
||||
|
||||
**************************** |
||||
* TEST OpenBoard * |
||||
* under Win32 (Windows 7) * |
||||
* * |
||||
**************************** |
||||
|
||||
|
||||
======================|====================| |
||||
Modules | Status | |
||||
======================|====================| |
||||
Network Manager | web OK | |
||||
----------------------|--------------------| |
||||
the video media |.avi not working | |
||||
| .mp4 works in small| |
||||
| format | |
||||
----------------------|--------------------| |
||||
audio | OK | |
||||
----------------------|--------------------| |
||||
| | |
||||
----------------------|--------------------| |
||||
| | |
||||
----------------------|--------------------| |
||||
| | |
||||
----------------------|--------------------| |
@ -1,427 +0,0 @@ |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 2 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
|
||||
#********************** |
||||
# functions |
||||
#********************** |
||||
|
||||
checkUser() |
||||
{ |
||||
if [ `id -u` -ne 0 ]; then |
||||
echo "Please run the script as root, may be using fakeroot command as follow" |
||||
echo "fakeroot ./buildDebianPackage.sh [options]" |
||||
exit 1 |
||||
fi |
||||
} |
||||
|
||||
initializeVariables() |
||||
{ |
||||
APPLICATION_NAME="OpenBoard" |
||||
MAKE_TAG=true |
||||
STANDARD_QT_USED=false |
||||
|
||||
PRODUCT_PATH="build/linux/release/product" |
||||
QT_PATH="/usr/local/Trolltech/Qt-4.8.0" |
||||
PLUGINS_PATH="$QT_PATH/plugins" |
||||
GUI_TRANSLATIONS_DIRECTORY_PATH="../Qt-4.8/translations" |
||||
QT_LIBRARY_DEST_PATH="$PRODUCT_PATH/qtlib" |
||||
QT_LIBRARY_SOURCE_PATH="$QT_PATH/lib" |
||||
if [ -z $ARCHITECTURE ]; then |
||||
ARCHITECTURE=`uname -m` |
||||
if [ "$ARCHITECTURE" == "x86_64" ]; then |
||||
ARCHITECTURE="amd64" |
||||
fi |
||||
if [ "$ARCHITECTURE" == "i686" ]; then |
||||
ARCHITECTURE="i386" |
||||
fi |
||||
fi |
||||
NOTIFY_CMD=`which notify-send` |
||||
QMAKE_PATH="$QT_PATH/bin/qmake" |
||||
LRELEASES="$QT_PATH/bin/lrelease" |
||||
ZIP_PATH=`which zip` |
||||
|
||||
} |
||||
|
||||
|
||||
notifyError(){ |
||||
if [ -e "$NOTIFY_CMD" ]; then |
||||
$NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1" |
||||
fi |
||||
printf "\033[31merror:\033[0m $1\n" |
||||
exit 1 |
||||
} |
||||
|
||||
notifyProgress(){ |
||||
if [ -e "$NOTIFY_CMD" ]; then |
||||
$NOTIFY_CMD "$1" "$2" |
||||
fi |
||||
printf "\033[32m--> Achieved task:\033[0m $1:\n\t$2\n" |
||||
} |
||||
|
||||
alertIfPreviousVersionInstalled(){ |
||||
APT_CACHE=`which apt-cache` |
||||
if [ ! -e "$APT_CACHE" ]; then |
||||
notifyError "apt-cache command not found" |
||||
else |
||||
SEARCH_RESULT=`$APT_CACHE search ${APPLICATION_NAME}` |
||||
if [ `echo $SEARCH_RESULT | grep -c ${APPLICATION_NAME}` -ge 1 ]; then |
||||
notifyError "Found a previous version of ${APPLICATION_NAME}. Remove it to avoid to put it as dependency" |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
checkDir(){ |
||||
if [ ! -d "$1" ]; then |
||||
notifyError "Directory not found : $1" |
||||
fi |
||||
} |
||||
|
||||
checkExecutable(){ |
||||
if [ ! -e "$1" ]; then |
||||
notifyError "$1 command not found" |
||||
fi |
||||
} |
||||
|
||||
copyQtLibrary(){ |
||||
if ls "$QT_LIBRARY_SOURCE_PATH/$1.so" &> /dev/null; then |
||||
cp $QT_LIBRARY_SOURCE_PATH/$1.so.? "$QT_LIBRARY_DEST_PATH/" |
||||
cp $QT_LIBRARY_SOURCE_PATH/$1.so.?.?.? "$QT_LIBRARY_DEST_PATH/" |
||||
else |
||||
notifyError "$1 library not found in path: $QT_LIBRARY_SOURCE_PATH" |
||||
fi |
||||
} |
||||
|
||||
|
||||
buildWithStandardQt(){ |
||||
STANDARD_QT=`which qmake-qt4` |
||||
if [ $? == "0" ]; then |
||||
QT_VERSION=`$STANDARD_QT --version | grep -i "Using Qt version" | sed -e "s/Using Qt version \(.*\) in.*/\1/"` |
||||
if [ `echo $QT_VERSION | sed -e "s/\.//g"` -gt 480 ]; then |
||||
notifyProgress "Standard QT" "A recent enough qmake has been found. Using this one instead of custom one" |
||||
STANDARD_QT_USED=true |
||||
QMAKE_PATH=$STANDARD_QT |
||||
LRELEASES=`which lrelease` |
||||
if [ "`arch`" == "i686" ] || [ "$ARCHITECTURE" == "i386" ]; then |
||||
QT_PATH="/usr/lib/i386-linux-gnu" |
||||
else |
||||
QT_PATH="/usr/lib/`arch`-linux-gnu" |
||||
fi |
||||
PLUGINS_PATH="$QT_PATH/qt4/plugins" |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
buildImporter(){ |
||||
IMPORTER_DIR="../OpenBoard-Importer/" |
||||
IMPORTER_NAME="OpenBoardImporter" |
||||
checkDir $IMPORTER_DIR |
||||
cd ${IMPORTER_DIR} |
||||
|
||||
rm moc_* |
||||
rm -rf debug release |
||||
rm *.o |
||||
|
||||
git reset --hard |
||||
git pull |
||||
|
||||
$QMAKE_PATH ${IMPORTER_NAME}.pro |
||||
make clean |
||||
make -j4 |
||||
checkExecutable $IMPORTER_NAME |
||||
cd - |
||||
} |
||||
|
||||
#********************** |
||||
# script |
||||
#********************** |
||||
checkUser |
||||
|
||||
for var in "$@" |
||||
do |
||||
if [ $var == "notag" ]; then |
||||
MAKE_TAG=false |
||||
fi |
||||
# forcing a architecture because of cross compiling |
||||
if [ $var == "i386" ]; then |
||||
ARCHITECTURE="i386" |
||||
fi |
||||
if [ $var == "amd64" ]; then |
||||
ARCHITECTURE="amd64" |
||||
fi |
||||
done |
||||
|
||||
initializeVariables |
||||
buildWithStandardQt |
||||
|
||||
alertIfPreviousVersionInstalled |
||||
|
||||
# check of directories and executables |
||||
checkDir $QT_PATH |
||||
checkDir $PLUGINS_PATH |
||||
checkDir $GUI_TRANSLATIONS_DIRECTORY_PATH |
||||
|
||||
checkExecutable $QMAKE_PATH |
||||
checkExecutable $LRELEASES |
||||
checkExecutable $ZIP_PATH |
||||
|
||||
#build third party application |
||||
buildImporter |
||||
notifyProgress "OpenBoardImporter" "Built Importer" |
||||
|
||||
# cleaning the build directory |
||||
rm -rf "build/linux/release" |
||||
rm -rf install |
||||
|
||||
notifyProgress "QT" "Internalization" |
||||
$LRELEASES ${APPLICATION_NAME}.pro |
||||
cd $GUI_TRANSLATIONS_DIRECTORY_PATH |
||||
$LRELEASES translations.pro |
||||
cd - |
||||
|
||||
notifyProgress "${APPLICATION_NAME}" "Building ${APPLICATION_NAME}" |
||||
|
||||
if [ "$ARCHITECTURE" == "amd64" ]; then |
||||
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++-64 |
||||
else |
||||
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++ |
||||
fi |
||||
|
||||
make -j 4 release-install |
||||
|
||||
if [ ! -e "$PRODUCT_PATH/${APPLICATION_NAME}" ]; then |
||||
notifyError "${APPLICATION_NAME} build failed" |
||||
fi |
||||
|
||||
notifyProgress "Git Hub" "Make a tag of the delivered version" |
||||
|
||||
VERSION=`cat build/linux/release/version` |
||||
|
||||
if [ ! -f build/linux/release/version ]; then |
||||
notifyError "version not found" |
||||
else |
||||
LAST_COMMITED_VERSION="`git describe $(git rev-list --tags --max-count=1)`" |
||||
if [ "v$VERSION" != "$LAST_COMMITED_VERSION" ]; then |
||||
if [ $MAKE_TAG == true ]; then |
||||
git tag -a "OBv$VERSION" -m "OpenBoard setup for v$VERSION" |
||||
git push origin --tags |
||||
fi |
||||
fi |
||||
fi |
||||
|
||||
cp resources/linux/run.sh $PRODUCT_PATH |
||||
chmod a+x $PRODUCT_PATH/run.sh |
||||
|
||||
cp -R resources/linux/qtlinux/* $PRODUCT_PATH/ |
||||
|
||||
notifyProgress "QT" "Copying plugins and library ..." |
||||
cp -R $PLUGINS_PATH $PRODUCT_PATH/ |
||||
|
||||
# copying customization |
||||
cp -R resources/customizations $PRODUCT_PATH/ |
||||
|
||||
# copying importer |
||||
mkdir -p $PRODUCT_PATH/Importer |
||||
cp -R ${IMPORTER_DIR}/${IMPORTER_NAME} $PRODUCT_PATH/Importer |
||||
|
||||
if [ $STANDARD_QT_USED == false ]; then |
||||
#copying custom qt library |
||||
mkdir -p $QT_LIBRARY_DEST_PATH |
||||
copyQtLibrary libQtDBus |
||||
copyQtLibrary libQtScript |
||||
copyQtLibrary libQtSvg |
||||
copyQtLibrary libQtXmlPatterns |
||||
copyQtLibrary libQtNetwork |
||||
copyQtLibrary libQtXml |
||||
copyQtLibrary libQtGui |
||||
copyQtLibrary libQtCore |
||||
copyQtLibrary libphonon |
||||
copyQtLibrary libQtWebKit |
||||
fi |
||||
|
||||
notifyProgress "QT" "Internalization" |
||||
if [ ! -e $PRODUCT_PATH/i18n ]; then |
||||
mkdir $PRODUCT_PATH/i18n |
||||
fi |
||||
#copying qt gui translation |
||||
cp $GUI_TRANSLATIONS_DIRECTORY_PATH/qt_??.qm $PRODUCT_PATH/i18n/ |
||||
|
||||
rm -rf install/linux |
||||
mkdir -p install/linux |
||||
|
||||
#Removing .svn directories ... |
||||
cd $PRODUCT_PATH |
||||
find . -name .svn -exec rm -rf {} \; 2> /dev/null |
||||
cd - |
||||
|
||||
notifyProgress "Building ${APPLICATION_NAME}" "Finished to build ${APPLICATION_NAME} building the package" |
||||
|
||||
BASE_WORKING_DIR="packageBuildDir" |
||||
|
||||
#creating package directory |
||||
mkdir $BASE_WORKING_DIR |
||||
mkdir "$BASE_WORKING_DIR/DEBIAN" |
||||
mkdir -p "$BASE_WORKING_DIR/usr/share/applications" |
||||
mkdir -p "$BASE_WORKING_DIR/usr/local" |
||||
|
||||
|
||||
cat > "$BASE_WORKING_DIR/DEBIAN/prerm" << EOF |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
xdg-desktop-menu uninstall /usr/share/applications/${APPLICATION_NAME}.desktop |
||||
exit 0 |
||||
#DEBHELPER# |
||||
EOF |
||||
|
||||
cat > "$BASE_WORKING_DIR/DEBIAN/postint" << EOF |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
xdg-desktop-menu install --novendor /usr/share/applications/${APPLICATION_NAME}.desktop |
||||
exit 0 |
||||
#DEBHELPER# |
||||
EOF |
||||
|
||||
|
||||
APPLICATION_DIRECTORY_NAME="${APPLICATION_NAME}-$VERSION" |
||||
PACKAGE_DIRECTORY="$BASE_WORKING_DIR/usr/local/$APPLICATION_DIRECTORY_NAME" |
||||
#move build directory to packages directory |
||||
cp -R $PRODUCT_PATH $PACKAGE_DIRECTORY |
||||
|
||||
|
||||
cat > $BASE_WORKING_DIR/usr/local/$APPLICATION_DIRECTORY_NAME/run.sh << EOF |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
env LD_LIBRARY_PATH=/usr/local/$APPLICATION_DIRECTORY_NAME/qtlib:$LD_LIBRARY_PATH /usr/local/$APPLICATION_DIRECTORY_NAME/${APPLICATION_NAME} |
||||
EOF |
||||
|
||||
|
||||
CHANGE_LOG_FILE="$BASE_WORKING_DIR/DEBIAN/changelog-${APPLICATION_NAME}-$VERSION.txt" |
||||
CONTROL_FILE="$BASE_WORKING_DIR/DEBIAN/control" |
||||
CHANGE_LOG_TEXT="changelog.txt" |
||||
|
||||
echo "${APPLICATION_NAME} ($VERSION) $ARCHITECTURE; urgency=low" > "$CHANGE_LOG_FILE" |
||||
echo >> "$CHANGE_LOG_FILE" |
||||
cat $CHANGE_LOG_TEXT >> "$CHANGE_LOG_FILE" |
||||
echo >> "$CHANGE_LOG_FILE" |
||||
echo "-- Claudio Valerio <claudio.valerio@oe-f.org> `date`" >> "$CHANGE_LOG_FILE" |
||||
|
||||
echo "Package: ${APPLICATION_NAME}" > "$CONTROL_FILE" |
||||
echo "Version: $VERSION" >> "$CONTROL_FILE" |
||||
echo "Section: education" >> "$CONTROL_FILE" |
||||
echo "Priority: optional" >> "$CONTROL_FILE" |
||||
echo "Architecture: $ARCHITECTURE" >> "$CONTROL_FILE" |
||||
echo "Essential: no" >> "$CONTROL_FILE" |
||||
echo "Installed-Size: `du -s $PACKAGE_DIRECTORY | awk '{ print $1 }'`" >> "$CONTROL_FILE" |
||||
echo "Maintainer: ${APPLICATION_NAME} Developers team <dev@oe-f.org>" >> "$CONTROL_FILE" |
||||
echo "Homepage: http://www.openboard.org" >> "$CONTROL_FILE" |
||||
echo -n "Depends: " >> "$CONTROL_FILE" |
||||
unset tab |
||||
declare -a tab |
||||
let count=0 |
||||
for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do |
||||
for lib in `dpkg -S $l | awk -F":" '{ print $1 }'`; do |
||||
#echo $lib |
||||
presence=`echo ${tab[*]} | grep -c "$lib"`; |
||||
if [ "$presence" == "0" ]; then |
||||
tab[$count]=$lib; |
||||
((count++)); |
||||
fi; |
||||
done; |
||||
done; |
||||
|
||||
for ((i=0;i<${#tab[@]};i++)); do |
||||
if [ $i -ne "0" ]; then |
||||
echo -n ", " >> "$CONTROL_FILE" |
||||
fi |
||||
echo -n "${tab[$i]} (>= "`dpkg -p ${tab[$i]} | grep "Version: " | awk '{ print $2 }' | sed -e 's/\([:. 0-9?]*\).*/\1/g' | sed -e 's/\.$//'`") " >> "$CONTROL_FILE" |
||||
done |
||||
echo "" >> "$CONTROL_FILE" |
||||
echo "Description: This a interactive white board that uses a free standard format." >> "$CONTROL_FILE" |
||||
|
||||
find $BASE_WORKING_DIR/usr/ -exec md5sum {} > $BASE_WORKING_DIR/DEBIAN/md5sums 2>/dev/null \; |
||||
APPLICATION_SHORTCUT="$BASE_WORKING_DIR/usr/share/applications/${APPLICATION_NAME}.desktop" |
||||
echo "[Desktop Entry]" > $APPLICATION_SHORTCUT |
||||
echo "Version=$VERSION" >> $APPLICATION_SHORTCUT |
||||
echo "Encoding=UTF-8" >> $APPLICATION_SHORTCUT |
||||
echo "Name=${APPLICATION_NAME} ($VERSION)" >> $APPLICATION_SHORTCUT |
||||
echo "GenericName=${APPLICATION_NAME}" >> $APPLICATION_SHORTCUT |
||||
echo "Comment=Logiciel de création de présentations pour tableau numérique interactif (TNI)" >> $APPLICATION_SHORTCUT |
||||
echo "Exec=/usr/local/$APPLICATION_DIRECTORY_NAME/run.sh" >> $APPLICATION_SHORTCUT |
||||
echo "Icon=/usr/local/$APPLICATION_DIRECTORY_NAME/${APPLICATION_NAME}.png" >> $APPLICATION_SHORTCUT |
||||
echo "StartupNotify=true" >> $APPLICATION_SHORTCUT |
||||
echo "Terminal=false" >> $APPLICATION_SHORTCUT |
||||
echo "Type=Application" >> $APPLICATION_SHORTCUT |
||||
echo "Categories=Education" >> $APPLICATION_SHORTCUT |
||||
cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png" |
||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN" |
||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN/prerm" |
||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN/postint" |
||||
|
||||
mkdir -p "install/linux" |
||||
DEBIAN_PACKAGE_NAME="${APPLICATION_NAME}_`lsb_release -is`_`lsb_release -rs`_${VERSION}_$ARCHITECTURE.deb" |
||||
|
||||
chown -R root:root $BASE_WORKING_DIR |
||||
dpkg -b "$BASE_WORKING_DIR" "install/linux/$DEBIAN_PACKAGE_NAME" |
||||
|
||||
#clean up mess |
||||
rm -rf $BASE_WORKING_DIR |
||||
|
||||
notifyProgress "${APPLICATION_NAME}" "Package built" |
||||
|
||||
|
||||
exit 0 |
@ -1,844 +0,0 @@ |
||||
******************************* |
||||
* PORTING QT4->QT5 * |
||||
* CHANGES * |
||||
* win32 compilaton &exec * |
||||
******************************* |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
QtSingleApplication replacement for Qt5 |
||||
---------------------------------------- |
||||
|
||||
http://blog.kadu.im/2015/01/qtsingleapplication-replacement-for-qt5.html |
||||
|
||||
|
||||
|
||||
|
||||
UBWidgetMessageAPI.cpp |
||||
------------------------ |
||||
|
||||
-replace mGraphicsWidgetItem->page()->mainFrame()->evaluateJavaScript(js); by (Line 67) |
||||
|
||||
QtWebKitWidgets |
||||
|
||||
|
||||
UBGraphicsWidgetItem.h |
||||
--------------------- |
||||
|
||||
- add #include <QtWebKitWidgets/QWebFrame> |
||||
|
||||
|
||||
UBGraphicsMediaItem.cpp |
||||
*----------------------- |
||||
|
||||
- comment //Phonon::createPath(mMediaObject, mAudioOutput); (line 109) |
||||
- replace //mMediaObject->setCurrentSource(QMediaSource(absoluteMediaFilename)); by mMediaObject->setMedia(QUrl::fromLocalFile(absoluteMediaFilename)); (Line 191) |
||||
- replace //mAudioOutput = new QMediaPlayer(format, this); by mAudioOutput = new QMediaPlayer; |
||||
- replace //mMediaObject->seek(mInitialPos); by mMediaObject->setPosition(mInitialPos); |
||||
|
||||
|
||||
UBGraphicsMediaItem.h |
||||
----------------------- |
||||
|
||||
- replace QAudioOutput *mAudioOutput; by QMediaPlayer *mAudioOutput; |
||||
|
||||
- replace //mMediaObject->setTickInterval(50); by mMediaObject->setPosition(50); |
||||
|
||||
UBGraphicsMediaItemDelegate.h |
||||
------------------------------- |
||||
|
||||
- add #include <QtMultimedia/QMediaPlayer> header file |
||||
|
||||
|
||||
UBGraphicsMediaItemDelegate.cpp |
||||
------------------------------- |
||||
|
||||
- replace UBGraphicsMediaItemDelegate::UBGraphicsMediaItemDelegate(UBGraphicsMediaItem* pDelegated, QMediaObject* pMedia, QObject * parent) |
||||
|
||||
by UBGraphicsMediaItemDelegate::UBGraphicsMediaItemDelegate(UBGraphicsMediaItem* pDelegated, QMediaPlayer* pMedia, QObject * parent) |
||||
|
||||
|
||||
- replace //mMediaObject->setCurrentSource(mSource); by mMediaObject->setMedia(QUrl::fromLocalFile(pMediaFileUrl)); |
||||
|
||||
- replace //QMediaObject* media = delegated()->mediaObject(); by QMediaPlayer* media = delegated()->mediaObject(); |
||||
|
||||
- replace //remainingTime() by ((media->duration()-media->position()) <= 0) { |
||||
|
||||
|
||||
- replace totalTime()); by duration() (L246) |
||||
|
||||
- replace //QMediaObject* media = delegated()->mediaObject(); |
||||
QMediaPlayer* media = delegated()->mediaObject(); |
||||
//mMediaControl->totalTimeChanged(media->totalTime()); |
||||
mMediaControl->totalTimeChanged(media->duration()); (line 267) |
||||
|
||||
- replace QMediaPlayer* media = delegated()->mediaObject();if (media->state() == QMediaPlayer::PlayingState) |
||||
|
||||
- replace // delegated()->mediaObject()->setCurrentSource(delegated()->mediaFileUrl()); |
||||
delegated()->mediaObject()->setCurrentSource(delegated()->mediaFileUrl()); |
||||
|
||||
- replace // delegated()->mediaObject()->setCurrentSource(delegated()->mediaFileUrl()); |
||||
delegated()->mediaObject()->setMedia(delegated()->mediaFileUrl()); line 230 |
||||
|
||||
UBGraphicsItemDelegate.cpp |
||||
---------------------------- |
||||
|
||||
-replace //mDelegate->mediaObject()->seek(tickPos); by mDelegate->mediaObject()->setPosition(tickPos); (line 1445) |
||||
- replace //button->scale(0.8,0.8); by button->setScale(0.8); |
||||
|
||||
|
||||
|
||||
UBGraphicsGroupContainerItem.cpp |
||||
---------------------------------- |
||||
|
||||
replace //foreach(QGraphicsItem *child, children()) by foreach(QGraphicsItem *child, childItems()) Line 287 |
||||
|
||||
|
||||
|
||||
UBGraphicsScene.cpp |
||||
------------------- |
||||
|
||||
- replace //graphicsWidget->scale(ssf, ssf); by graphicsWidget->setScale(ssf); (1394) |
||||
- replace //svgItem->scale(sscale, sscale); by svgItem->setscale(sscale); (1521) |
||||
|
||||
- replace //item->scale(ratio, ratio); by item->setscale(ratio); (1817) |
||||
- replace //pixmapItem->scale(pScaleFactor, pScaleFactor); by pixmapItem->setScale(pScaleFactor); (1273) |
||||
|
||||
|
||||
UBFileSystemUtils.cpp |
||||
-------------------- |
||||
|
||||
|
||||
- replace QDesktopServices by QStandardPaths ; (line 138,139, |
||||
|
||||
|
||||
UBGraphicsMediaItem |
||||
------------------- |
||||
|
||||
- replace //translate(translation.x(), translation.y()); by setPos(translation.x(), translation.y()); line 355 |
||||
|
||||
UBGraphicsDelegateFrame.cpp |
||||
---------------------------- |
||||
|
||||
- replace //translate(center.x(), center.y()); by setPos(center.x(), center.y()); line 840 |
||||
- replace //translate(-center.x(), -center.y()); by setPos(-center.x(), -center.y()); line 840 |
||||
- replace rotate(-angle); by setRotation(rotation() - angle); line 840 |
||||
|
||||
|
||||
GraphicsPDFItem.cpp |
||||
---------------------- |
||||
- replace //#include <QtGui/QStyleOptionGraphicsItem> by #include <QtWidgets/QGraphicsItem> |
||||
|
||||
|
||||
UBThumbnailWidget.cpp |
||||
--------------------- |
||||
|
||||
- replace //setAcceptsHoverEvents(true); by setAcceptHoverEvents(enabled); (line775) (accept without "s") |
||||
|
||||
|
||||
UBFeaturesWidget.cpp |
||||
-------------------- |
||||
|
||||
- add #include <QtWebKitWidgets/QWebview> |
||||
- add #include <Qt |
||||
|
||||
|
||||
OpenBoard.pro |
||||
------------- |
||||
|
||||
- add QT += gui |
||||
|
||||
|
||||
UBDownloadWidget.cpp |
||||
-------------------- |
||||
|
||||
- replace //mpTree->header()->setResizeMode(eItemColumn_Desc, QHeaderView::Stretch); |
||||
mpTree->header()->setSectionResizeMode(eItemColumn_Desc, QHeaderView::Stretch); |
||||
|
||||
//mpTree->header()->setResizeMode(eItemColumn_Close, QHeaderView::Custom); |
||||
mpTree->header()->setSectionResizeMode(eItemColumn_Close, QHeaderView::Custom); (Line 64) |
||||
|
||||
UBWebPluginPDFWidget.cpp |
||||
-------------------------- |
||||
|
||||
- add //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
UBSpinningWheel.h |
||||
------------------ |
||||
|
||||
- add #include <QAtomicInt> |
||||
|
||||
|
||||
UBFeaturesWidget.cpp |
||||
--------------------- |
||||
|
||||
- add replace QWidget *eventSource = (QWidget*)event->source(); by QWidget *eventSource = event->source(); |
||||
|
||||
|
||||
UBSpinningWheel.cpp |
||||
------------------- |
||||
|
||||
- replace //painter.rotate(30 * (mPosition % 12)); by int val = mPosition.load(); and painter.rotate(30 * (val % 12)); |
||||
|
||||
PDFRenderer.cpp |
||||
--------------- |
||||
|
||||
- replace //if (mRefCount == 0) by if (mRefCount.load() == 0) |
||||
|
||||
|
||||
UBThumbnailWidget.cpp |
||||
--------------------- |
||||
|
||||
- replace //mLassoRectItem = new QGraphicsRectItem(0, scene()); by QRectF rect_init(0,0,0,0); and mLassoRectItem = new QGraphicsRectItem(rect_init, (QGraphicsItem *)scene()); |
||||
|
||||
|
||||
UBDocumentThumbnailWidget.cpp |
||||
----------------------------- |
||||
|
||||
-replace //mDropCaretRectItem = new QGraphicsRectItem(0, scene()); by QRectF rectInit(0,0,0,0); and mDropCaretRectItem = new QGraphicsRectItem(rectInit, (QGraphicsItem*)scene()); |
||||
|
||||
|
||||
UBPlatformUtils_win.cpp |
||||
------------------------ |
||||
|
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
XPDFRenderer.cpp |
||||
---------------- |
||||
|
||||
- replace //if (sInstancesCount == 0 && globalParams) by if (sInstancesCount.load() == 0 && globalParams) |
||||
|
||||
|
||||
C:\Qt_ide\5.2.1\msvc2010\include\QtCore\qdatetime.h |
||||
--------------------------------------------------- |
||||
qdatetime.h.patch |
||||
------------------ |
||||
|
||||
|
||||
- error C2589: '('ÿ: jeton non conforme … droite de '::' |
||||
- error C2059: erreur de syntaxeÿ: '::' |
||||
|
||||
--- qtbase/src/corelib/tools/qdatetime.h 9 03:11:14 2013 |
||||
+++ qtbase/src/corelib/tools/qdatetime.h 30 18:15:30 2013 |
||||
@@ -120,7 +120,7 @@ |
||||
inline qint64 toJulianDay() const { return jd; } |
||||
|
||||
private: |
||||
- static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); } |
||||
+ static inline qint64 nullJd() { return (std::numeric_limits<qint64>::min)(); } |
||||
static inline qint64 minJd() { return Q_INT64_C(-784350574879); } |
||||
static inline qint64 maxJd() { return Q_INT64_C( 784354017364); } |
||||
|
||||
|
||||
UBDisplayManager.h |
||||
-------------------- |
||||
|
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
UBDockPalette.cpp |
||||
---------------- |
||||
|
||||
- replace //iconPixmap.setAlphaChannel(transparencyPix); by the block codes as following : |
||||
|
||||
//---------------------------------------------- |
||||
QImage image = iconPixmap.toImage() ; |
||||
image.setAlphaChannel(transparencyPix.toImage()); |
||||
iconPixmap = iconPixmap.fromImage(image); |
||||
//----------------------------------------------- |
||||
|
||||
|
||||
UBWindowsMediaFile.cpp |
||||
--------------------- |
||||
|
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
- replace //if (FAILED(mWMWriter->AllocateSample(pImage.numBytes(), &sampleBuffer))) by if (FAILED(mWMWriter->AllocateSample(pImage. byteCount()(), &sampleBuffer))) |
||||
|
||||
- replace //memcpy((void*) rawBuffer, imageBuffer, pImage.numBytes()); by memcpy((void*) rawBuffer, imageBuffer, pImage.byteCount()); |
||||
|
||||
UBWaveRecorder.cpp |
||||
------------------- |
||||
|
||||
|
||||
UBGraphicsProtractor.h |
||||
---------------------- |
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
UBGraphicsCompass.cpp |
||||
---------------------- |
||||
|
||||
- replace //setAcceptsHoverEvents(true); by setAcceptHoverEvents(true); |
||||
|
||||
|
||||
UBGraphicsProtractor.h |
||||
---------------------- |
||||
|
||||
- replace //#include <QtGui> by |
||||
#include <QtWidgets> |
||||
#include <QtWidgets/QGraphicsItem> |
||||
#include <QtWidgets/QGraphicsView> |
||||
|
||||
|
||||
UBGraphicsProtractor.cpp |
||||
------------------------- |
||||
|
||||
-replace //translate(rect().center().x(), rect().center().y()); by setPos(rect().center().x(), rect().center().y()); line 205 |
||||
|
||||
-replace //translate(-rect().center().x(), -rect().center().y()); by setPos(-rect().center().x(), -rect().center().y()); line 210 |
||||
-replace //mResetSvgItem->translate(-resetButtonRect().left(), -resetButtonRect().top()); by mResetSvgItem->setpos(-resetButtonRect().left(), -resetButtonRect().top()); |
||||
all translate->setPos (Lines 464,468,473,475,477,480,482,484, |
||||
|
||||
- replace //mMarkerSvgItem->rotate(- mStartAngle - mCurrentAngle); by mMarkerSvgItem->setRotation(- mStartAngle - mCurrentAngle); |
||||
- replace //mRotateSvgItem->rotate(-mStartAngle); by mRotateSvgItem->setRotation( -mStartAngle); (Line 482) |
||||
|
||||
- replace //mResetSvgItem->rotate(-mStartAngle); by mResetSvgItem->setRotation(-mStartAngle); (Line 467) |
||||
- replace //mResizeSvgItem->rotate(-mStartAngle); by mResizeSvgItem->setRotation(-mStartAngle); Line 478) |
||||
|
||||
|
||||
|
||||
- replace //mMarkerSvgItem->scale(scale, scale);//this do not impact the bounding box of thr svg item... by mMarkerSvgItem->setScale( scale);//this do not impact the bounding box of thr svg item... |
||||
|
||||
(line 503) |
||||
|
||||
- replace //mRotateSvgItem->scale(scale, scale);//this do not impact the bounding box of thr svg item... (Line 492) |
||||
mRotateSvgItem->setScale(scale);//this do not impact the bounding box of thr svg item... |
||||
|
||||
- replace //mResetSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item... |
||||
mResetSvgItem->setScale(scale * antiSc);//this do not impact the bounding box of thr svg item... (Line 473) |
||||
|
||||
|
||||
|
||||
- replace //scale(1.5, 1.5); by setScale(1.5); (Line 82) |
||||
|
||||
- replace //mCloseSvgItem->rotate(-mStartAngle); by mCloseSvgItem->setRotation(-mStartAngle); (Line 458) |
||||
|
||||
- replace //scale(scaleFactor); by setScale(scaleFactor); |
||||
|
||||
- replace //mCloseSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item... by |
||||
mCloseSvgItem->setSale(scale * antiSc);//this do not impact the bounding box of thr svg item... (Line 467) |
||||
|
||||
- replace // mResizeSvgItem->scale(scale * antiSc, scale * antiSc);//this do not impact the bounding box of thr svg item... |
||||
mResizeSvgItem->setScale(scale * antiSc);//this do not impact the bounding box of thr svg item... (Line 490) |
||||
|
||||
|
||||
|
||||
UBAbstractDrawRuler.h |
||||
---------------------- |
||||
|
||||
- replace //#include <QtGui> by |
||||
#include <QtWidgets> |
||||
|
||||
|
||||
UBWaveRecorder.cpp |
||||
------------------- |
||||
|
||||
-replace // QString deviceName = QString:: fromUtf16(caps.szPname); by QString deviceName = QString::fromWCharArray(caps.szPname) ; (Line 67) |
||||
|
||||
-replace //devices << QString::fromUtf16(caps.szPname); by devices << QString::fromWCharArray(caps.szPname); (Line 242) |
||||
|
||||
|
||||
|
||||
UBAbstractDrawRuler.cpp |
||||
------------------------ |
||||
|
||||
- replace //item.setAcceptsHoverEvents(true); by item.setAcceptHoverEvents(true); |
||||
|
||||
UBCustomCaptureWindow.h |
||||
------------------------ |
||||
|
||||
- replace //#include <QtGui> by include <QtWidgets> |
||||
|
||||
|
||||
|
||||
UBWebKitUtils.h |
||||
--------------- |
||||
|
||||
-replace //#include <QtWebKit> by #include <QtWebKitWidgets> |
||||
|
||||
|
||||
UBWindowCaptureDelegate_win.h |
||||
------------------------------ |
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
UBOEmbedParser.cpp |
||||
------------------ |
||||
|
||||
-replace toAscii--> toLatin1 qurl.setEncodedUrl(url.toLatin1()); (line 230) |
||||
|
||||
-replace |
||||
|
||||
|
||||
WBSqueezeLabel.h |
||||
----------------- |
||||
|
||||
- replace //#include <QtGui/QLabel> by #include <QtWidgets> |
||||
|
||||
|
||||
UBWindowCaptureDelegate_win.cpp |
||||
-------------------------------- |
||||
|
||||
- replace //mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow); |
||||
mCapturedPixmap = QScreen::grabWindow(mCurrentWindow); |
||||
|
||||
UBOEmbedParser.cpp |
||||
----------------- |
||||
|
||||
- replace //qurl.setEncodedUrl(url.toAscii()); by qurl.setUrl(url.toLatin1(),QUrl::TolerantMode); |
||||
|
||||
|
||||
|
||||
WBChaseWidget.cpp |
||||
------------------ |
||||
|
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
WBChaseWidget.h |
||||
----------------- |
||||
|
||||
-replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
|
||||
WBModelMenu.h |
||||
-------------- |
||||
|
||||
-replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
|
||||
WBUrlLineEdit.cpp |
||||
----------------- |
||||
-replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
WBEditTableView.cpp |
||||
-------------------- |
||||
|
||||
- replace //#include <QtGui/QKeyEvent> by #include <QtWidgets> |
||||
|
||||
WBEditTableView.h |
||||
------------------ |
||||
-replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
WBSearchLineEdit.cpp |
||||
--------------------- |
||||
|
||||
-replace //#include <QtGui> by |
||||
#include <QtWidgets> |
||||
|
||||
WBToolBarSearch.cpp |
||||
------------------- |
||||
|
||||
//#include <QtGui> |
||||
#include <QtWidgets> |
||||
|
||||
//#include <QtWebKit> |
||||
#include <QtWebKitWidgets> |
||||
|
||||
|
||||
WBToolBarSearch.h |
||||
------------------ |
||||
|
||||
|
||||
-replace //#include <QtGui> |
||||
#include <QtWidgets> |
||||
|
||||
WBSearchLineEdit.h |
||||
------------------ |
||||
|
||||
//#include <QtGui> |
||||
#include <QtWidgets> |
||||
|
||||
WBWebTrapWebView.cpp |
||||
--------------------- |
||||
|
||||
|
||||
- replace |
||||
//#include <QtGui> |
||||
//#include <QtWebKit> |
||||
by |
||||
#include <QtWidgets> |
||||
#include <QtWebKitWidgets> |
||||
|
||||
|
||||
|
||||
WBWebTrapWebView.h |
||||
------------------- |
||||
|
||||
- replace |
||||
//#include <QtGui> |
||||
//#include <QtWebKit> |
||||
by |
||||
#include <QtWidgets> |
||||
#include <QtWebKitWidgets> |
||||
|
||||
|
||||
WBToolBarSearch.cpp |
||||
------------------- |
||||
|
||||
|
||||
-add on the top of the file |
||||
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0) |
||||
# include <QUrlQuery> |
||||
#endif |
||||
|
||||
|
||||
WBUrlLineEdit.h |
||||
--------------- |
||||
- replace //#include <QtGui> by //#include <QtWebKit> |
||||
|
||||
|
||||
WBWebView.h |
||||
----------- |
||||
|
||||
|
||||
- replace //#include <QtGui> |
||||
//#include <QtWebKit> |
||||
|
||||
#include <QtWidgets> |
||||
#include <QtWebKitWidgets> |
||||
|
||||
WBDownloadManager.cpp |
||||
---------------------- |
||||
|
||||
- replace storageLocation by QStandardPaths => QStandardPaths::writableLocation( QStandardPaths::DesktopLocation |
||||
|
||||
|
||||
|
||||
WBToolBarSearch.cpp |
||||
-------------------- |
||||
|
||||
urlQuery1.addQueryItem(QLatin1String("q"), searchText); |
||||
url.setQuery(urlQuery1); |
||||
|
||||
urlQuery2.addQueryItem(QLatin1String("ie"), QLatin1String("UTF-8")); |
||||
url.setQuery(urlQuery2); |
||||
|
||||
urlQuery3.addQueryItem(QLatin1String("oe"), QLatin1String("UTF-8")); |
||||
url.setQuery(urlQuery3); |
||||
|
||||
urlQuery4.addQueryItem(QLatin1String("client"), QLatin1String("uniboard-browser")); |
||||
url.setQuery(urlQuery4); |
||||
|
||||
|
||||
/*url.addQueryItem(QLatin1String("q"), searchText); |
||||
url.addQueryItem(QLatin1String("ie"), QLatin1String("UTF-8")); |
||||
url.addQueryItem(QLatin1String("oe"), QLatin1String("UTF-8")); |
||||
url.addQueryItem(QLatin1String("client"), QLatin1String("uniboard-browser")); |
||||
*/ |
||||
|
||||
|
||||
WBTabWidget.cpp |
||||
---------------- |
||||
|
||||
-replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
WBTabWidget.h |
||||
------------- |
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
Utils.cpp |
||||
--------- |
||||
|
||||
- replace toascii() by toLatin1() |
||||
|
||||
**** |
||||
TODO |
||||
**** |
||||
- solve //mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow); |
||||
mCapturedPixmap = QScreen::grabWindow((HWND)mCurrentWindow); |
||||
|
||||
UBGlobals.h |
||||
----------- |
||||
|
||||
replace //#ifdef Q_WS_WIN by #ifdef Q_OS_WIN |
||||
|
||||
|
||||
UBCFFAdaptor.cpp |
||||
---------------- |
||||
|
||||
************************************************ |
||||
TODO |
||||
************************************************ |
||||
|
||||
- to solve dstList.setInsertInOrder(true); (Line 1954) |
||||
|
||||
qtsingleapplication.h |
||||
--------------------- |
||||
|
||||
- replace //#include <QtGui/QApplication> by #include <QGuiApplication> |
||||
|
||||
- comment //QtSingleApplication(int &argc, char **argv, Type type); |
||||
|
||||
|
||||
WBTabWidget.h |
||||
-------------- |
||||
|
||||
- replace //#include <QtWebKit> by #include <QtWebKitWidgets> |
||||
|
||||
|
||||
WBBrowserWindow.h |
||||
------------------ |
||||
|
||||
- replace //#include <QtGui> ;//#include <QtWebKit> by |
||||
|
||||
#include <QtWidgets> |
||||
#include <QtWebKitWidgets> |
||||
|
||||
|
||||
WBHistory.h |
||||
----------- |
||||
- replace //#include <QtGui> ;//#include <QtWebKit> by |
||||
|
||||
#include <QtWidgets> |
||||
#include <QtWebKitWidgets> |
||||
|
||||
|
||||
|
||||
UBGlobals.h |
||||
------------ |
||||
|
||||
- replace //#ifdef Q_WS_WIN by #ifdef Q_OS_WIN |
||||
|
||||
UBWindowCaptureDelegate_win.cpp |
||||
------------------------------- |
||||
|
||||
- solve the HWND -->WId window conversion from //mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow); |
||||
=> solution : add into the UBWindowCaptureDelegate_win.h header : the inclusion header #include <qwindowdefs_win.h> |
||||
|
||||
UBWindowCaptureDelegate_win.h |
||||
------------------------------- |
||||
#ifdef Q_OS_WIN |
||||
#include <qwindowdefs_win.h> |
||||
#endif |
||||
|
||||
|
||||
|
||||
|
||||
qtsingleapplication.cpp |
||||
------------------------ |
||||
|
||||
- replace the content by the source file repository (CW) |
||||
|
||||
qtsingleapplication.h |
||||
------------------------ |
||||
|
||||
- replace the content by the source file repository (CW) |
||||
|
||||
|
||||
|
||||
UBWindowCaptureDelegate_win.cpp |
||||
-------------------------------- |
||||
|
||||
|
||||
************************************************ |
||||
TODO |
||||
************************************************ |
||||
|
||||
- solve the // mCapturedPixmap = QPixmap::grabWindow(mCurrentWindow); => pb of conversion between HWND and WId. |
||||
|
||||
|
||||
qtlockedfile_win.cpp |
||||
--------------------- |
||||
|
||||
- add #if QT_VERSION >= 0x050000 |
||||
#define QT_WA(unicode, ansi) unicode |
||||
#endif |
||||
|
||||
qtsingleapplication.cpp |
||||
------------------------- |
||||
|
||||
- remove the contentfrom source repository(CW). |
||||
|
||||
qtsingleapplication.h |
||||
------------------------- |
||||
|
||||
- remove the contentfrom source repository(CW). |
||||
|
||||
qtlocalpeer.h |
||||
------------- |
||||
|
||||
- replace the content by the old basis source repository (OpenBoard-Third-party) |
||||
|
||||
qtlocalpeer.cpp |
||||
--------------- |
||||
- replace the content by the old basis source repository (OpenBoard-Third-party) |
||||
|
||||
|
||||
UBNetworkAccessManager.cpp |
||||
-------------------------- |
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
|
||||
- replace // introMessage = introMessage.arg(Qt::escape(reply->url().toString())).arg(Qt::escape(reply->url().toString())); by : |
||||
|
||||
introMessage = introMessage.arg(QString(reply->url().toString())).toHtmlEscaped().arg(QString(reply->url().toString())).toHtmlEscaped(); |
||||
|
||||
|
||||
WBHistory.cpp |
||||
-------------- |
||||
- replace //#include <QtGui> by #include <QtWidgets> |
||||
|
||||
- replace reset() by beginResetModel(); |
||||
m_sourceRowCache.clear(); |
||||
endResetModel(); (Line 1213,1268,) |
||||
|
||||
|
||||
-replace //reset(); by |
||||
beginResetModel(); |
||||
endResetModel(); (Line 999,1006..) |
||||
} |
||||
|
||||
- replace createIndex(row, column, 0); by (Line 969,1131,1140) |
||||
createIndex(row, column); |
||||
|
||||
WBHistory.h |
||||
------------ |
||||
|
||||
- replace class WBHistoryFilterModel : public QAbstractProxyModel, by |
||||
class WBHistoryFilterModel : public QAbstractProxyModel, public QAbstractItemModel |
||||
|
||||
|
||||
|
||||
- ?? pb at the level of compiler error: |
||||
|
||||
|
||||
UBBoardView.cpp |
||||
---------------- |
||||
|
||||
************************************************ |
||||
TODO done cf below |
||||
************************************************ |
||||
|
||||
SOLVE THE ItemAt |
||||
|
||||
- comment the mouseReleaseEvent method |
||||
- comment the mousePressEvent method |
||||
|
||||
|
||||
|
||||
|
||||
WBHistory.cpp |
||||
-------------- |
||||
|
||||
- comment and remove //beginResetModel(); and //endResetModel(); (Line 247) |
||||
- comment and remove //beginResetModel(); and //endResetModel(); (Line 837-843) |
||||
|
||||
|
||||
UBApplication.cpp |
||||
------------------ |
||||
|
||||
-remove and comment //QApplication::setStyle(new UBStyle()); // Style is owned and deleted by the application. |
||||
|
||||
|
||||
UBTrapFlashController.h |
||||
----------------------- |
||||
|
||||
- replace //#include <QtGui> by #include <QtWidgets>. |
||||
|
||||
UBTrapFlashController.cpp |
||||
------------------------- |
||||
- replace //#ifdef Q_WS_WIN // Defined on Windows. by#ifdef Q_OS_WIN // Defined on Windows. |
||||
|
||||
|
||||
UBPodcastController.cpp |
||||
------------------------- |
||||
|
||||
-replace QDesktopServices::storageLocation. (Line 715) |
||||
|
||||
-replace by QStandardPaths::writableLocation. |
||||
|
||||
- replace repaintRect = repaintRect.unite(mSceneRepaintRectQueue.dequeue()); by repaintRect = repaintRect.united(mSceneRepaintRectQueue.dequeue()); |
||||
|
||||
- replace QRectF maxRect = rect.intersect(viewportRect); by RectF maxRect = rect.intersected(viewportRect); |
||||
|
||||
- replace repaintRect = repaintRect.unite(mWidgetRepaintRectQueue.dequeue()); by repaintRect = repaintRect.united(mWidgetRepaintRectQueue.dequeue()); |
||||
|
||||
|
||||
|
||||
|
||||
main.cpp |
||||
---------- |
||||
|
||||
|
||||
- move QMessageLogContext context_m; on line 58 |
||||
|
||||
- replace // qt_message_output(type, msg); by qt_message_output(type,context_m, msg); |
||||
|
||||
|
||||
|
||||
COMPILATION STATUS IN DEBUG STATUS : |
||||
************************************ |
||||
|
||||
- compile all libraries (freetype.lib quazip.lib,xpdf.lib) with success |
||||
- issue: error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' |
||||
|
||||
=> solution: complation in RELEASE MODE |
||||
|
||||
|
||||
- problem : LINK : fatal error LNK1123: échec lors de la conversion en fichier COFF msvc 2010 qt 5.2 |
||||
=> solution : |
||||
Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1 |
||||
|
||||
- install the followin tools in your computer quth the msvc 2010 config: |
||||
cf https://support.microsoft.com/fr-fr/kb/2934068 : |
||||
|
||||
|
||||
support microsoft : " Erreur se produit lorsque vous installez le Kit de développement logiciel Windows pour Windows 7 et.NET Framework 4 " |
||||
|
||||
steps : |
||||
------ |
||||
1) remove and reinstall Microsoft Visual C++ 2010 SP1 Redistributable Package (x32) : vcredist_x32.exe |
||||
|
||||
2) remove and reinstall Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) : vcredist_x64.exe |
||||
|
||||
3) install Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO). |
||||
|
||||
4) reinstall Microsoft Visual Studio 2010 Service Pack 1 (Installer) download the iso from the link https://www.microsoft.com/en-us/download/confirmation.aspx?id=23691 |
||||
|
||||
cf link : https://msdn.microsoft.com/fr-fr/library/7dz62kfh.aspx |
||||
|
||||
cf http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval |
||||
|
||||
=> solution : the tools cvtres.exe was broken so copy C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe |
||||
|
||||
into C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe |
||||
|
||||
|
||||
|
||||
OpenBoard.pro |
||||
-------------- |
||||
- pb: fatal error LNK1123: échec lors de la conversion en fichier COFF vs 2010 qt 5.2 => add QMAKE_LFLAGS += /INCREMENTAL:NO |
||||
|
||||
|
||||
|
||||
|
||||
UBBoardView.cpp |
||||
---------------- |
||||
|
||||
the ItemAt issue was solved by the last update methods from the repository. |
||||
|
||||
|
||||
UBGraphicsTextItem.cpp |
||||
---------------------- |
||||
|
||||
|
||||
- replace //#include <QtGui> by #include <QtWidgets>. |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,173 @@ |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 2 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
initializeVariables() |
||||
{ |
||||
APPLICATION_NAME="OpenBoard" |
||||
STANDARD_QT_USED=false |
||||
|
||||
# Root directory |
||||
SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
||||
PROJECT_ROOT="$SCRIPT_PATH/../.." |
||||
BUILD_DIR="$PROJECT_ROOT/build/linux/release" |
||||
PRODUCT_PATH="$BUILD_DIR/product" |
||||
|
||||
# Qt installation path. This may vary across machines |
||||
QT_PATH="/usr/lib/x86_64-linux-gnu/qt5" |
||||
PLUGINS_PATH="$QT_PATH/plugins" |
||||
GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations" |
||||
QMAKE_PATH="$QT_PATH/bin/qmake" |
||||
LRELEASES="$QT_PATH/bin/lrelease" |
||||
|
||||
NOTIFY_CMD=`which notify-send` |
||||
ZIP_PATH=`which zip` |
||||
|
||||
if [ -z $ARCHITECTURE ]; then |
||||
ARCHITECTURE=`uname -m` |
||||
if [ $ARCHITECTURE == "x86_64" ]; then |
||||
ARCHITECTURE="amd64" |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
notifyError(){ |
||||
if [ -e "$NOTIFY_CMD" ]; then |
||||
$NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1" |
||||
fi |
||||
printf "\033[31merror:\033[0m $1\n" |
||||
exit 1 |
||||
} |
||||
|
||||
notifyProgress(){ |
||||
if [ -e "$NOTIFY_CMD" ]; then |
||||
$NOTIFY_CMD "$1" "$2" |
||||
fi |
||||
printf "\033[32m--> Achieved task:\033[0m $1:\n\t$2\n" |
||||
} |
||||
|
||||
checkDir(){ |
||||
if [ ! -d "$1" ]; then |
||||
notifyError "Directory not found : $1" |
||||
fi |
||||
} |
||||
|
||||
checkExecutable(){ |
||||
if [ ! -e "$1" ]; then |
||||
notifyError "$1 command not found" |
||||
fi |
||||
} |
||||
|
||||
buildWithStandardQt(){ |
||||
# if both Qt4 and Qt5 are installed, choose Qt5 |
||||
export QT_SELECT=5 |
||||
STANDARD_QT=`which qmake` |
||||
if [ $? == "0" ]; then |
||||
QT_VERSION=`$STANDARD_QT --version | grep -i "Using Qt version" | sed -e "s/Using Qt version \(.*\) in.*/\1/"` |
||||
if [ `echo $QT_VERSION | sed -e "s/\.//g"` -gt 480 ]; then |
||||
notifyProgress "Standard QT" "A recent enough qmake has been found. Using this one instead of custom one" |
||||
STANDARD_QT_USED=true |
||||
QMAKE_PATH=$STANDARD_QT |
||||
LRELEASES=`which lrelease` |
||||
PLUGINS_PATH="$STANDARD_QT/../plugins" |
||||
fi |
||||
fi |
||||
} |
||||
|
||||
buildImporter(){ |
||||
IMPORTER_DIR="../OpenBoard-Importer/" |
||||
IMPORTER_NAME="OpenBoardImporter" |
||||
checkDir $IMPORTER_DIR |
||||
cd ${IMPORTER_DIR} |
||||
|
||||
rm moc_* |
||||
rm -rf debug release |
||||
rm *.o |
||||
|
||||
notifyProgress "Building importer" |
||||
|
||||
$QMAKE_PATH ${IMPORTER_NAME}.pro |
||||
make clean |
||||
make -j4 |
||||
checkExecutable $IMPORTER_NAME |
||||
cd - |
||||
} |
||||
|
||||
createBuildContext() { |
||||
BUILD_CONTEXT="buildContext" |
||||
echo $ARCHITECTURE > $BUILD_CONTEXT |
||||
} |
||||
|
||||
|
||||
|
||||
# Check command-line arguments to force an architecture |
||||
|
||||
for var in "$@" |
||||
do |
||||
if [ $var == "i386" ]; then |
||||
ARCHITECTURE="i386" |
||||
fi |
||||
if [ $var == "amd64" ]; then |
||||
ARCHITECTURE="amd64" |
||||
fi |
||||
done |
||||
|
||||
|
||||
initializeVariables |
||||
#buildWithStandardQt |
||||
createBuildContext |
||||
|
||||
cd $PROJECT_ROOT |
||||
|
||||
# check of directories and executables |
||||
checkDir $QT_PATH |
||||
checkDir $PLUGINS_PATH |
||||
checkDir $GUI_TRANSLATIONS_DIRECTORY_PATH |
||||
|
||||
checkExecutable $QMAKE_PATH |
||||
checkExecutable $LRELEASES |
||||
checkExecutable $ZIP_PATH |
||||
|
||||
#build third party application |
||||
buildImporter |
||||
notifyProgress "OpenBoardImporter" "Built Importer" |
||||
|
||||
|
||||
# cleaning the build directory |
||||
rm -rf $BUILD_DIR |
||||
|
||||
# Generate translations |
||||
notifyProgress "QT" "Internationalization" |
||||
$LRELEASES ${APPLICATION_NAME}.pro |
||||
cd $GUI_TRANSLATIONS_DIRECTORY_PATH |
||||
$LRELEASES translations.pro |
||||
cd - |
||||
|
||||
notifyProgress "${APPLICATION_NAME}" "Building ${APPLICATION_NAME}" |
||||
|
||||
if [ "$ARCHITECTURE" == "amd64" ] || [ "$ARCHITECTURE" == "x86_64" ]; then |
||||
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++-64 |
||||
else |
||||
$QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++ |
||||
fi |
||||
|
||||
|
||||
make -j4 release-install |
||||
|
||||
if [ ! -e "$PRODUCT_PATH/${APPLICATION_NAME}" ]; then |
||||
notifyError "${APPLICATION_NAME} build failed" |
||||
else |
||||
notifyProgress "Finished building OpenBoard. You may now run the packaging script." |
||||
fi |
@ -0,0 +1,19 @@ |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
xdg-desktop-menu uninstall /usr/share/applications/openboard.desktop |
||||
rm -f /usr/bin/openboard |
||||
exit 0 |
@ -0,0 +1,402 @@ |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 2 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
# ---------------------------------------------------------------------------- |
||||
# Packaging script for OpenBoard, for Debian-compatible distributions. |
||||
# |
||||
# This should be run after `build.sh`. |
||||
# |
||||
# The generated package structure is as follows : |
||||
# |
||||
# DEBIAN/ |
||||
# | control |
||||
# | md5sums |
||||
# | prerm |
||||
# | postinst |
||||
# usr/ |
||||
# | bin/ |
||||
# | | openboard <-- actually a symlink to run.sh or OpenBoard |
||||
# | share/ |
||||
# | | applications/ |
||||
# | | | openboard.desktop |
||||
# opt/ |
||||
# | openboard/ |
||||
# | | importer/ |
||||
# | | library/ |
||||
# | | etc/ |
||||
# | | qtlib/ (*) |
||||
# | | plugins/ (*) |
||||
# | | OpenBoard |
||||
# | | OpenBoard.png |
||||
# | | run.sh (*) |
||||
# |
||||
# (*) Only included if Qt libs and plugins are bundled. It is necessary to |
||||
# bundle these if the target system doesn't provide Qt 5.5.1, for example. |
||||
# ---------------------------------------------------------------------------- |
||||
|
||||
initializeVariables() |
||||
{ |
||||
# This script's path |
||||
SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
||||
|
||||
PROJECT_ROOT="$SCRIPT_PATH/../.." |
||||
|
||||
# Where the application was built (see build.sh) |
||||
BUILD_DIR="$PROJECT_ROOT/build/linux/release" |
||||
PRODUCT_PATH="$BUILD_DIR/product" |
||||
IMPORTER_DIR="$PROJECT_ROOT/../OpenBoard-Importer/" |
||||
IMPORTER_NAME="OpenBoardImporter" |
||||
|
||||
# Where the package is built to |
||||
PACKAGE_BUILD_DIR="$PROJECT_ROOT/install" |
||||
|
||||
# Temporary folder, where we put all the files that will be built into the |
||||
# package |
||||
BASE_WORKING_DIR="debianPackage" |
||||
|
||||
APPLICATION_NAME="OpenBoard" |
||||
APPLICATION_CODE="openboard" |
||||
APPLICATION_PATH="opt" |
||||
|
||||
PACKAGE_DIRECTORY=$BASE_WORKING_DIR/$APPLICATION_PATH/$APPLICATION_CODE |
||||
QT_PLUGINS_DEST_PATH="$PACKAGE_DIRECTORY/plugins" |
||||
QT_LIBRARY_DEST_PATH="$PACKAGE_DIRECTORY/qtlib" |
||||
|
||||
DESKTOP_FILE_PATH="$BASE_WORKING_DIR/usr/share/applications" |
||||
APPLICATION_SHORTCUT="$DESKTOP_FILE_PATH/${APPLICATION_CODE}.desktop" |
||||
|
||||
DESCRIPTION="OpenBoard, an interactive white board application" |
||||
VERSION=`cat $BUILD_DIR/version` |
||||
ARCHITECTURE=`cat buildContext` |
||||
|
||||
|
||||
# Include Qt libraries and plugins in the package, or not |
||||
# (this is necessary if the target system doesn't provide Qt 5.5.1) |
||||
BUNDLE_QT=false |
||||
|
||||
# Qt installation path. This may vary across machines |
||||
QT_PATH="/usr/lib/x86_64-linux-gnu/qt5" |
||||
QT_PLUGINS_SOURCE_PATH="$QT_PATH/plugins" |
||||
GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations" |
||||
QT_LIBRARY_SOURCE_PATH="$QT_PATH/.." |
||||
|
||||
NOTIFY_CMD=`which notify-send` |
||||
ZIP_PATH=`which zip` |
||||
} |
||||
|
||||
checkUser() |
||||
{ |
||||
if [ `id -u` -ne 0 ]; then |
||||
echo "Please run the script as root" |
||||
exit 1 |
||||
fi |
||||
} |
||||
|
||||
checkBuild() |
||||
{ |
||||
if [ -z "$ARCHITECTURE" ]; then |
||||
echo "Make sure you have built the software first using ./build.sh" |
||||
exit 1 |
||||
fi |
||||
} |
||||
|
||||
notifyError(){ |
||||
if [ -e "$NOTIFY_CMD" ]; then |
||||
$NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1" |
||||
fi |
||||
printf "\033[31merror:\033[0m $1\n" |
||||
exit 1 |
||||
} |
||||
|
||||
notifyProgress(){ |
||||
if [ -e "$NOTIFY_CMD" ]; then |
||||
$NOTIFY_CMD "$1" "$2" |
||||
fi |
||||
printf "\033[32m--> \033[0m $1:\n\t$2\n" |
||||
} |
||||
|
||||
copyQtLibrary(){ |
||||
echo -e "\t $1" |
||||
if ls "$QT_LIBRARY_SOURCE_PATH/$1.so" &> /dev/null; then |
||||
cp -P $QT_LIBRARY_SOURCE_PATH/$1.so.? "$QT_LIBRARY_DEST_PATH/" |
||||
cp -P $QT_LIBRARY_SOURCE_PATH/$1.so.?.? "$QT_LIBRARY_DEST_PATH/" |
||||
cp -P $QT_LIBRARY_SOURCE_PATH/$1.so.?.?.? "$QT_LIBRARY_DEST_PATH/" |
||||
|
||||
strip $QT_LIBRARY_DEST_PATH/$1.so.?.?.? |
||||
chmod 644 $QT_LIBRARY_DEST_PATH/$1.so.?.?.? # 644 = rw-r-r |
||||
else |
||||
notifyError "$1 library not found in path: $QT_LIBRARY_SOURCE_PATH" |
||||
fi |
||||
} |
||||
|
||||
copyQtPlugin(){ |
||||
echo -e "\t $1" |
||||
if ls "$QT_PLUGINS_SOURCE_PATH/$1" &> /dev/null; then |
||||
cp -r $QT_PLUGINS_SOURCE_PATH/$1 $QT_PLUGINS_DEST_PATH/ |
||||
|
||||
strip $QT_PLUGINS_DEST_PATH/$1/* |
||||
chmod 644 $QT_PLUGINS_DEST_PATH/$1/* # 644 = rw-r-r |
||||
chmod +rx $QT_PLUGINS_DEST_PATH/$1 |
||||
|
||||
else |
||||
notifyError "$1 plugin not found in path: $QT_PLUGINS_SOURCE_PATH" |
||||
fi |
||||
} |
||||
|
||||
|
||||
# ---------------------------------------------------------------------------- |
||||
# Copying the application, libs etc. to the temporary working directory |
||||
# ---------------------------------------------------------------------------- |
||||
|
||||
|
||||
initializeVariables |
||||
|
||||
checkBuild |
||||
checkUser |
||||
|
||||
cd $PROJECT_ROOT |
||||
|
||||
rm -rf $PACKAGE_DIRECTORY |
||||
mkdir -p $PACKAGE_DIRECTORY |
||||
|
||||
rm -rf $PACKAGE_BUILD_DIR |
||||
|
||||
|
||||
notifyProgress "Copying product directory and resources" |
||||
cp -R $PRODUCT_PATH/* $PACKAGE_DIRECTORY |
||||
chown -R root:root $PACKAGE_DIRECTORY |
||||
|
||||
cp -R resources/customizations $PACKAGE_DIRECTORY/ |
||||
cp resources/linux/openboard-ubz.xml $PACKAGE_DIRECTORY/etc/ |
||||
|
||||
if $BUNDLE_QT; then |
||||
cp -R resources/linux/run.sh $PACKAGE_DIRECTORY/ |
||||
chmod a+x $PACKAGE_DIRECTORY/run.sh |
||||
fi |
||||
|
||||
notifyProgress "Copying importer" |
||||
mkdir -p $PACKAGE_DIRECTORY/importer |
||||
cp -R "$IMPORTER_DIR/$IMPORTER_NAME" "$PACKAGE_DIRECTORY/importer" |
||||
|
||||
notifyProgress "Stripping importer and main executable" |
||||
strip $PACKAGE_DIRECTORY/$APPLICATION_NAME |
||||
strip $PACKAGE_DIRECTORY/importer/$IMPORTER_NAME |
||||
|
||||
if $BUNDLE_QT; then |
||||
notifyProgress "Copying and stripping Qt plugins" |
||||
mkdir -p $QT_PLUGINS_DEST_PATH |
||||
copyQtPlugin audio |
||||
copyQtPlugin generic |
||||
copyQtPlugin iconengines |
||||
copyQtPlugin imageformats |
||||
copyQtPlugin mediaservice |
||||
copyQtPlugin platforminputcontexts |
||||
copyQtPlugin platforms |
||||
copyQtPlugin platformthemes |
||||
copyQtPlugin position |
||||
copyQtPlugin printsupport |
||||
copyQtPlugin qtwebengine |
||||
copyQtPlugin sceneparsers |
||||
copyQtPlugin xcbglintegrations |
||||
|
||||
notifyProgress "Copying and stripping Qt libraries" |
||||
mkdir -p $QT_LIBRARY_DEST_PATH |
||||
copyQtLibrary libQt5Core |
||||
copyQtLibrary libQt5DBus |
||||
copyQtLibrary libQt5Gui |
||||
copyQtLibrary libQt5Multimedia |
||||
copyQtLibrary libQt5MultimediaWidgets |
||||
copyQtLibrary libQt5Network |
||||
copyQtLibrary libQt5OpenGL |
||||
copyQtLibrary libQt5Positioning |
||||
copyQtLibrary libQt5PrintSupport |
||||
copyQtLibrary libQt5Qml |
||||
copyQtLibrary libQt5Quick |
||||
copyQtLibrary libQt5Script |
||||
copyQtLibrary libQt5Sensors |
||||
copyQtLibrary libQt5Sql |
||||
copyQtLibrary libQt5Svg |
||||
copyQtLibrary libQt5WebChannel |
||||
copyQtLibrary libQt5WebKit |
||||
copyQtLibrary libQt5WebKitWidgets |
||||
copyQtLibrary libQt5Widgets |
||||
copyQtLibrary libQt5XcbQpa |
||||
copyQtLibrary libQt5Xml |
||||
copyQtLibrary libQt5XmlPatterns |
||||
copyQtLibrary libqgsttools_p |
||||
fi |
||||
|
||||
notifyProgress "Copying Qt translations" |
||||
mkdir -p $PACKAGE_DIRECTORY/i18n |
||||
cp $GUI_TRANSLATIONS_DIRECTORY_PATH/qt_??.qm $PACKAGE_DIRECTORY/i18n/ |
||||
|
||||
|
||||
# ---------------------------------------------------------------------------- |
||||
# DEBIAN directory of package (control, md5sums, postinst etc) |
||||
# ---------------------------------------------------------------------------- |
||||
notifyProgress "Generating control files for package" |
||||
|
||||
mkdir -p "$BASE_WORKING_DIR/DEBIAN" |
||||
|
||||
# Copy prerm script |
||||
cp -r "$SCRIPT_PATH/debian_package_files/prerm" "$BASE_WORKING_DIR/DEBIAN/" |
||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN/prerm" |
||||
|
||||
# Generate postinst script (can't copy it like prerm because some paths vary depending on |
||||
# the values of the variables in this script) |
||||
|
||||
SYMLINK_TARGET="/$APPLICATION_PATH/$APPLICATION_CODE/$APPLICATION_NAME" |
||||
if $BUNDLE_QT ; then |
||||
SYMLINK_TARGET="/$APPLICATION_PATH/$APPLICATION_CODE/run.sh" |
||||
fi |
||||
|
||||
cat > "$BASE_WORKING_DIR/DEBIAN/postinst" << EOF |
||||
#!/bin/bash |
||||
# -------------------------------------------------------------------- |
||||
# This program 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, either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. |
||||
# --------------------------------------------------------------------- |
||||
|
||||
xdg-desktop-menu install --novendor /usr/share/applications/${APPLICATION_CODE}.desktop |
||||
xdg-mime install --mode system /$APPLICATION_PATH/$APPLICATION_CODE/etc/openboard-ubz.xml |
||||
xdg-mime default /usr/share/applications/${APPLICATION_CODE}.desktop application/ubz |
||||
|
||||
ln -s $SYMLINK_TARGET /usr/bin/$APPLICATION_CODE |
||||
|
||||
exit 0 |
||||
EOF |
||||
|
||||
chmod 755 "$BASE_WORKING_DIR/DEBIAN/postinst" |
||||
|
||||
|
||||
# Generate md5 sums of everything in the application path (e.g /opt) and the desktop entry |
||||
cd $BASE_WORKING_DIR |
||||
find $APPLICATION_PATH/ -exec md5sum {} > DEBIAN/md5sums 2>/dev/null \; |
||||
find $DESKTOP_FILE_PATH/ -exec md5sum {} >> DEBIAN/md5sums 2>/dev/null \; |
||||
cd $PROJECT_ROOT |
||||
|
||||
# Generate control file |
||||
CONTROL_FILE="$BASE_WORKING_DIR/DEBIAN/control" |
||||
|
||||
echo "Package: ${APPLICATION_CODE}" > "$CONTROL_FILE" |
||||
echo "Version: $VERSION" >> "$CONTROL_FILE" |
||||
echo "Section: education" >> "$CONTROL_FILE" |
||||
echo "Priority: optional" >> "$CONTROL_FILE" |
||||
echo "Architecture: $ARCHITECTURE" >> "$CONTROL_FILE" |
||||
echo "Essential: no" >> "$CONTROL_FILE" |
||||
echo "Installed-Size: `du -s $PACKAGE_DIRECTORY | awk '{ print $1 }'`" >> "$CONTROL_FILE" |
||||
echo "Maintainer: ${APPLICATION_NAME} Developers team <dev@openboard.ch>" >> "$CONTROL_FILE" |
||||
echo "Homepage: https://github.com/DIP-SEM/OpenBoard" >> "$CONTROL_FILE" |
||||
|
||||
# Generate dependency list |
||||
echo -n "Depends: " >> "$CONTROL_FILE" |
||||
|
||||
unset tab |
||||
declare -a tab |
||||
let count=0 |
||||
|
||||
if $BUNDLE_QT; then |
||||
for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do |
||||
for lib in `dpkg -S $l | grep -v "libqt5" | grep -v "qt55" | awk -F":" '{ print $1 }'`; do |
||||
presence=`echo ${tab[*]} | grep -c "$lib"`; |
||||
if [ "$presence" == "0" ]; then |
||||
tab[$count]=$lib; |
||||
((count++)); |
||||
fi; |
||||
done; |
||||
done; |
||||
else |
||||
for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do |
||||
for lib in `dpkg -S $l | awk -F":" '{ print $1 }'`; do |
||||
presence=`echo ${tab[*]} | grep -c "$lib"`; |
||||
if [ "$presence" == "0" ]; then |
||||
tab[$count]=$lib; |
||||
((count++)); |
||||
fi; |
||||
done; |
||||
done; |
||||
fi |
||||
|
||||
|
||||
for ((i=0;i<${#tab[@]};i++)); do |
||||
if [ $i -ne "0" ]; then |
||||
echo -n ", " >> "$CONTROL_FILE" |
||||
fi |
||||
|
||||
echo -n "${tab[$i]} (>= "`dpkg -p ${tab[$i]} | grep "Version: " | awk '{ print $2 }' | sed -e 's/\([:. 0-9?]*\).*/\1/g' | sed -e 's/\.$//'`") " >> "$CONTROL_FILE" |
||||
done |
||||
echo -n ", onboard" >> "$CONTROL_FILE" |
||||
|
||||
if $BUNDLE_QT; then |
||||
# Listing some dependencies manually; ideally we should use dpkg -p recursively |
||||
# to get the dependencies of the bundled shared libs & plugins. Or use static libs. |
||||
echo -n ", libxcb-render-util0" >> "$CONTROL_FILE" |
||||
echo -n ", libxcb-icccm4" >> "$CONTROL_FILE" |
||||
echo -n ", libxcb-xkb1" >> "$CONTROL_FILE" |
||||
else |
||||
echo -n ", libqt5multimedia5-plugins" >> "$CONTROL_FILE" |
||||
fi |
||||
|
||||
echo "" >> "$CONTROL_FILE" |
||||
echo "Description: $DESCRIPTION" >> "$CONTROL_FILE" |
||||
|
||||
# ---------------------------------------------------------------------------- |
||||
# .desktop file |
||||
# ---------------------------------------------------------------------------- |
||||
mkdir -p $DESKTOP_FILE_PATH |
||||
echo "[Desktop Entry]" > $APPLICATION_SHORTCUT |
||||
echo "Version=$VERSION" >> $APPLICATION_SHORTCUT |
||||
echo "Encoding=UTF-8" >> $APPLICATION_SHORTCUT |
||||
echo "Name=${APPLICATION_NAME}" >> $APPLICATION_SHORTCUT |
||||
echo "Comment=$DESCRIPTION" >> $APPLICATION_SHORTCUT |
||||
echo "Exec=$APPLICATION_CODE %f" >> $APPLICATION_SHORTCUT |
||||
echo "Icon=/$APPLICATION_PATH/$APPLICATION_CODE/${APPLICATION_NAME}.png" >> $APPLICATION_SHORTCUT |
||||
echo "StartupNotify=true" >> $APPLICATION_SHORTCUT |
||||
echo "Terminal=false" >> $APPLICATION_SHORTCUT |
||||
echo "Type=Application" >> $APPLICATION_SHORTCUT |
||||
echo "MimeType=application/ubz" >> $APPLICATION_SHORTCUT |
||||
echo "Categories=Education;" >> $APPLICATION_SHORTCUT |
||||
cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png" |
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------- |
||||
# Building the package |
||||
# ---------------------------------------------------------------------------- |
||||
notifyProgress "Building package" |
||||
mkdir -p "$PACKAGE_BUILD_DIR/linux" |
||||
PACKAGE_NAME="${APPLICATION_NAME}_`lsb_release -is`_`lsb_release -rs`_${VERSION}_$ARCHITECTURE.deb" |
||||
PACKAGE_NAME=`echo "$PACKAGE_NAME" | awk '{print tolower($0)}'` |
||||
|
||||
dpkg -b "$BASE_WORKING_DIR" "$PACKAGE_BUILD_DIR/linux/$PACKAGE_NAME" |
||||
|
||||
#clean up mess |
||||
rm -rf $BASE_WORKING_DIR |
||||
|
||||
notifyProgress "${APPLICATION_NAME}" "Package built" |
||||
|
||||
|
||||
exit 0 |
@ -0,0 +1,133 @@ |
||||
[App] |
||||
AngleTolerance=4 |
||||
EnableAutomaticSoftwareUpdates=false |
||||
EnableSoftwareUpdates=true |
||||
EnableStartupHints=true |
||||
FavoriteToolURIs=openboardtool://openboard/mask, openboardtool://ruler, openboardtool://compass, openboardtool://protractor, openboardtool://triangle, openboardtool://magnifier, openboardtool://cache |
||||
IsInSoftwareUpdateProcess=false |
||||
LastSessionDocumentUUID= |
||||
LastSessionPageIndex=0 |
||||
LookForOpenSankoreInstall=true |
||||
OnlineUserName= |
||||
PageCacheSize=20 |
||||
PreferredLanguage= |
||||
ProductWebAddress=http://www.openboard.ch |
||||
StartMode= |
||||
SwapControlAndDisplayScreens=false |
||||
ToolBarDisplayText=true |
||||
ToolBarOrientationVertical=false |
||||
ToolBarPositionedAtTop=true |
||||
TutorialUrl=http://www.openboard.ch |
||||
UseMultiscreenMode=true |
||||
UseSystemOnScreenKeyboard=true |
||||
|
||||
[Board] |
||||
AutoSaveIntervalInMinutes=3 |
||||
CrossedBackground=0 |
||||
DarkBackground=0 |
||||
DefaultPageSize=@Size(1280 960) |
||||
EraserCircleWidthIndex=1 |
||||
FeatureSliderPosition=40 |
||||
KeyboardPaletteKeyBtnSize=16x16 |
||||
LeftLibPaletteBoardModeIsCollapsed=true |
||||
LeftLibPaletteBoardModeWidth=270 |
||||
LeftLibPaletteDesktopModeIsCollapsed=true |
||||
LeftLibPaletteDesktopModeWidth=270 |
||||
MagnifierDrawingMode=0 |
||||
MarkerAlpha=0.5 |
||||
MarkerColorIndex=0 |
||||
MarkerDarkBackgroundColors=#FFFF00, #FF4400, #66C0FF, #81FF5C, #B68360, #FF497E, #8D69FF, #FFFFFF |
||||
MarkerDarkBackgroundSelectedColors=#FFFF00, #FF4400, #66C0FF, #81FF5C, #B68360 |
||||
MarkerFineWidth=12 |
||||
MarkerLightBackgroundColors=#E3FF00, #FF0000, #004080, #008000, #C87400, #800040, #008080, #000000 |
||||
MarkerLightBackgroundSelectedColors=#E3FF00, #FF0000, #004080, #008000, #C87400 |
||||
MarkerMediumWidth=24 |
||||
MarkerPressureSensitive=false |
||||
MarkerStrongWidth=48 |
||||
PenColorIndex=0 |
||||
PenDarkBackgroundColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00, #B68360, #FF497E, #8D69FF, #000000 |
||||
PenDarkBackgroundSelectedColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00 |
||||
PenFineWidth=1.5 |
||||
PenLightBackgroundColors=#000000, #FF0000, #004080, #008000, #FFDD00, #C87400, #800040, #008080, #5F2D0A, #FFFFFF |
||||
PenLightBackgroundSelectedColors=#000000, #FF0000, #004080, #008000, #FFDD00 |
||||
PenLineWidthIndex=0 |
||||
PenMediumWidth=3 |
||||
PenPressureSensitive=true |
||||
PenStrongWidth=8 |
||||
RightLibPaletteBoardModeIsCollapsed=true |
||||
RightLibPaletteBoardModeWidth=270 |
||||
RightLibPaletteDesktopModeIsCollapsed=true |
||||
RightLibPaletteDesktopModeWidth=270 |
||||
ShowEraserPreviewCircle=true |
||||
ShowMarkerPreviewCircle=true |
||||
ShowToolsPalette=false |
||||
StartupKeyboardLocale=0 |
||||
UseHighResTabletEvent=true |
||||
ZoomFactor=1.4099999999999999 |
||||
pageDpi=0 |
||||
|
||||
[Community] |
||||
CredentialsPersistence=false |
||||
Password= |
||||
Username= |
||||
|
||||
[Document] |
||||
EmptyGroupNames=@Invalid() |
||||
ThumbnailWidth=150 |
||||
|
||||
[IntranetPodcast] |
||||
Author= |
||||
PublishToIntranet=false |
||||
PublishingUrl= |
||||
|
||||
[Library] |
||||
AnimationsDirectory=./library/animations |
||||
ApplicationsDirectory=./library/applications |
||||
AudiosDirectory=./library/audios |
||||
ImageDirectory=./library/pictures |
||||
ImageThumbnailWidth=150 |
||||
InteractivitiesDirectory=./library/interactivities |
||||
LibIconSize=80 |
||||
ShapeDirectory=./library/shape |
||||
ShapeThumbnailWidth=50 |
||||
SoundThumbnailWidth=50 |
||||
VideoThumbnailWidth=80 |
||||
VideosDirectory=./library/videos |
||||
|
||||
[Mirroring] |
||||
RefreshRateInFramePerSecond=2 |
||||
|
||||
[PDF] |
||||
Margin=20 |
||||
PageFormat=A4 |
||||
Resolution=300 |
||||
|
||||
[Podcast] |
||||
AudioRecordingDevice=Default |
||||
FramesPerSecond=10 |
||||
PublishToYouTube=false |
||||
QuickTimeQuality=High |
||||
VideoSize=Medium |
||||
WindowsMediaBitsPerSecond=1700000 |
||||
|
||||
[SVG] |
||||
ViewBoxMargin=50 |
||||
|
||||
[Voting] |
||||
ReplyPlusAddressingMode=static |
||||
ReplyPlusConnectionURL=USB |
||||
ReplyPlusMaxKeypads=100 |
||||
ReplyWWSerialPort=3 |
||||
|
||||
[Web] |
||||
AddBookmarkURL="http://www.myuniboard.com/bookmarks/save/?url=" |
||||
BookmarksPage=http://www.myuniboard.com |
||||
HistoryLimit=15 |
||||
Homepage=http://www.openboard.ch |
||||
ShowAddBookmarkButton=false |
||||
ShowPageImediatelyOnMirroredScreen=false |
||||
UseExternalBrowser=false |
||||
|
||||
[YouTube] |
||||
CredentialsPersistence=false |
||||
UserEMail= |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 2.7 KiB |
@ -0,0 +1,60 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<title>D'n'd</title> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
||||
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/> |
||||
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script> |
||||
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script> |
||||
<script type="text/javascript" src="js/script.js"></script> |
||||
<script type="text/javascript"> |
||||
$(document).ready(function(){ |
||||
if(window.sankore) |
||||
sankore.enableDropOnWidget(false); |
||||
start(); |
||||
}); |
||||
</script> |
||||
</head> |
||||
<body> |
||||
<table class="body_table" cellpadding=0 cellspacing=0> |
||||
<tr style="height: 54px;"> |
||||
<td class="b_top_left"> </td> |
||||
<td class="b_top_center"> |
||||
<div id="wgt_name"></div> |
||||
<div id="wgt_help"></div> |
||||
<div id="wgt_reload"></div> |
||||
<div id="wgt_display" class="selected"></div> |
||||
<div id="wgt_edit"></div> |
||||
</td> |
||||
<td class="b_top_right"> </td> |
||||
</tr> |
||||
|
||||
<tr> |
||||
<td class="b_center_left"> </td> |
||||
<td> |
||||
<div id="help"></div> |
||||
<div id="data"> |
||||
<div id="parameters"> |
||||
<div class="inline"> |
||||
<label> |
||||
<select id="style_select"> |
||||
<option value="1"></option> |
||||
<option value="2"></option> |
||||
<option value="3"></option> |
||||
</select> |
||||
</label> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</td> |
||||
<td class="b_center_right"> </td> |
||||
</tr> |
||||
|
||||
<tr style="height: 54px;"> |
||||
<td class="b_bottom_left"> </td> |
||||
<td class="b_bottom_center"> </td> |
||||
<td class="b_bottom_right"> </td> |
||||
</tr> |
||||
</table> |
||||
</body> |
||||
</html> |
After Width: | Height: | Size: 2.7 KiB |
@ -0,0 +1,60 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<title>D'n'd</title> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
||||
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/> |
||||
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script> |
||||
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script> |
||||
<script type="text/javascript" src="js/script.js"></script> |
||||
<script type="text/javascript"> |
||||
$(document).ready(function(){ |
||||
if(window.sankore) |
||||
sankore.enableDropOnWidget(false); |
||||
start(); |
||||
}); |
||||
</script> |
||||
</head> |
||||
<body> |
||||
<table class="body_table" cellpadding=0 cellspacing=0> |
||||
<tr style="height: 54px;"> |
||||
<td class="b_top_left"> </td> |
||||
<td class="b_top_center"> |
||||
<div id="wgt_name"></div> |
||||
<div id="wgt_help"></div> |
||||
<div id="wgt_reload"></div> |
||||
<div id="wgt_display" class="selected"></div> |
||||
<div id="wgt_edit"></div> |
||||
</td> |
||||
<td class="b_top_right"> </td> |
||||
</tr> |
||||
|
||||
<tr> |
||||
<td class="b_center_left"> </td> |
||||
<td> |
||||
<div id="help"></div> |
||||
<div id="data"> |
||||
<div id="parameters"> |
||||
<div class="inline"> |
||||
<label> |
||||
<select id="style_select"> |
||||
<option value="1"></option> |
||||
<option value="2"></option> |
||||
<option value="3"></option> |
||||
</select> |
||||
</label> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</td> |
||||
<td class="b_center_right"> </td> |
||||
</tr> |
||||
|
||||
<tr style="height: 54px;"> |
||||
<td class="b_bottom_left"> </td> |
||||
<td class="b_bottom_center"> </td> |
||||
<td class="b_bottom_right"> </td> |
||||
</tr> |
||||
</table> |
||||
</body> |
||||
</html> |
@ -0,0 +1,60 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<title>D'n'd</title> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
||||
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/> |
||||
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script> |
||||
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script> |
||||
<script type="text/javascript" src="js/script.js"></script> |
||||
<script type="text/javascript"> |
||||
$(document).ready(function(){ |
||||
if(window.sankore) |
||||
sankore.enableDropOnWidget(false); |
||||
start(); |
||||
}); |
||||
</script> |
||||
</head> |
||||
<body> |
||||
<table class="body_table" cellpadding=0 cellspacing=0> |
||||
<tr style="height: 54px;"> |
||||
<td class="b_top_left"> </td> |
||||
<td class="b_top_center"> |
||||
<div id="wgt_name"></div> |
||||
<div id="wgt_help"></div> |
||||
<div id="wgt_reload"></div> |
||||
<div id="wgt_display" class="selected"></div> |
||||
<div id="wgt_edit"></div> |
||||
</td> |
||||
<td class="b_top_right"> </td> |
||||
</tr> |
||||
|
||||
<tr> |
||||
<td class="b_center_left"> </td> |
||||
<td> |
||||
<div id="help"></div> |
||||
<div id="data"> |
||||
<div id="parameters"> |
||||
<div class="inline"> |
||||
<label> |
||||
<select id="style_select"> |
||||
<option value="1"></option> |
||||
<option value="2"></option> |
||||
<option value="3"></option> |
||||
</select> |
||||
</label> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</td> |
||||
<td class="b_center_right"> </td> |
||||
</tr> |
||||
|
||||
<tr style="height: 54px;"> |
||||
<td class="b_bottom_left"> </td> |
||||
<td class="b_bottom_center"> </td> |
||||
<td class="b_bottom_right"> </td> |
||||
</tr> |
||||
</table> |
||||
</body> |
||||
</html> |
@ -0,0 +1,60 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<title>D'n'd</title> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> |
||||
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/> |
||||
<script type="text/javascript" src="../../js/jquery-1.6.2.min.js"></script> |
||||
<script type="text/javascript" src="../../js/jquery-ui-1.8.9.custom.min.js"></script> |
||||
<script type="text/javascript" src="js/script.js"></script> |
||||
<script type="text/javascript"> |
||||
$(document).ready(function(){ |
||||
if(window.sankore) |
||||
sankore.enableDropOnWidget(false); |
||||
start(); |
||||
}); |
||||
</script> |
||||
</head> |
||||
<body> |
||||
<table class="body_table" cellpadding=0 cellspacing=0> |
||||
<tr style="height: 54px;"> |
||||
<td class="b_top_left"> </td> |
||||
<td class="b_top_center"> |
||||
<div id="wgt_name"></div> |
||||
<div id="wgt_help"></div> |
||||
<div id="wgt_reload"></div> |
||||
<div id="wgt_display" class="selected"></div> |
||||
<div id="wgt_edit"></div> |
||||
</td> |
||||
<td class="b_top_right"> </td> |
||||
</tr> |
||||
|
||||
<tr> |
||||
<td class="b_center_left"> </td> |
||||
<td> |
||||
<div id="help"></div> |
||||
<div id="data"> |
||||
<div id="parameters"> |
||||
<div class="inline"> |
||||
<label> |
||||
<select id="style_select"> |
||||
<option value="1"></option> |
||||
<option value="2"></option> |
||||
<option value="3"></option> |
||||
</select> |
||||
</label> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</td> |
||||
<td class="b_center_right"> </td> |
||||
</tr> |
||||
|
||||
<tr style="height: 54px;"> |
||||
<td class="b_bottom_left"> </td> |
||||
<td class="b_bottom_center"> </td> |
||||
<td class="b_bottom_right"> </td> |
||||
</tr> |
||||
</table> |
||||
</body> |
||||
</html> |
@ -0,0 +1,59 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<title></title> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
||||
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/> |
||||
<script type="text/javascript" src="../../scripts/jquery-1.6.2.min.js"></script> |
||||
<script type="text/javascript" src="scripts/selQuestionApp.js"></script> |
||||
<script type="text/javascript"> |
||||
|
||||
$(document).ready(function(){ |
||||
init(); |
||||
}); |
||||
|
||||
</script> |
||||
</head> |
||||
<body> |
||||
<table class="body_table" cellpadding=0 cellspacing=0> |
||||
<tr style="height: 54px;"> |
||||
<td class="b_top_left"> </td> |
||||
<td class="b_top_center"> |
||||
<div id="wgt_name"></div> |
||||
<div id="wgt_help"></div> |
||||
<div id="wgt_reload"></div> |
||||
<div id="wgt_display" class="selected"></div> |
||||
<div id="wgt_edit"></div> |
||||
</td> |
||||
<td class="b_top_right"> </td> |
||||
</tr> |
||||
|
||||
<tr> |
||||
<td class="b_center_left"> </td> |
||||
<td> |
||||
<div id="help"></div> |
||||
<div id="data"> |
||||
<div id="parameters"> |
||||
<div class="inline"> |
||||
<label> |
||||
<select id="style_select"> |
||||
<option value="1"></option> |
||||
<option value="2"></option> |
||||
<option value="3"></option> |
||||
</select> |
||||
</label> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</td> |
||||
<td class="b_center_right"> </td> |
||||
</tr> |
||||
|
||||
<tr style="height: 54px;"> |
||||
<td class="b_bottom_left"> </td> |
||||
<td class="b_bottom_center"> </td> |
||||
<td class="b_bottom_right"> </td> |
||||
</tr> |
||||
</table> |
||||
</body> |
||||
</html> |
@ -0,0 +1,66 @@ |
||||
<!-- |
||||
To change this template, choose Tools | Templates |
||||
and open the template in the editor. |
||||
--> |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<title></title> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
||||
<link rel="stylesheet" type="text/css" href="../../css/basic.css"/> |
||||
<script type="text/javascript" src="../../scripts/jquery-1.6.2.min.js"></script> |
||||
<script src="../../scripts/jquery.disable.text.select.js" type="text/javascript"></script> |
||||
<script type="text/javascript" src="scripts/blackYellow.js"></script> |
||||
<script type="text/javascript"> |
||||
|
||||
$(document).ready(function(){ |
||||
init(); |
||||
}); |
||||
|
||||
</script> |
||||
</head> |
||||
<body> |
||||
<table class="body_table" cellpadding=0 cellspacing=0> |
||||
<tr style="height: 54px;"> |
||||
<td class="b_top_left"> </td> |
||||
<td class="b_top_center"> |
||||
<div id="wgt_name"></div> |
||||
<div id="wgt_help"></div> |
||||
<div id="wgt_reload"></div> |
||||
<div id="wgt_display" class="selected"></div> |
||||
<div id="wgt_edit"></div> |
||||
</td> |
||||
<td class="b_top_right"> </td> |
||||
</tr> |
||||
|
||||
<tr> |
||||
<td class="b_center_left"> </td> |
||||
<td> |
||||
<div id="help"></div> |
||||
<div id="parameters"> |
||||
<div class="inline"> |
||||
<label> |
||||
<select id="style_select"> |
||||
<option value="1"></option> |
||||
<option value="2"></option> |
||||
<option value="3"></option> |
||||
</select> |
||||
</label> |
||||
<button id="wgt_add"></button> |
||||
</div> |
||||
</div> |
||||
<div id="data"> |
||||
|
||||
</div> |
||||
</td> |
||||
<td class="b_center_right"> </td> |
||||
</tr> |
||||
|
||||
<tr style="height: 54px;"> |
||||
<td class="b_bottom_left"> </td> |
||||
<td class="b_bottom_center"> </td> |
||||
<td class="b_bottom_right"> </td> |
||||
</tr> |
||||
</table> |
||||
</body> |
||||
</html> |