Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenBoard
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
Nicolas Ollinger
OpenBoard
Commits
ffc9b5c3
Commit
ffc9b5c3
authored
May 03, 2012
by
Anna Udovichenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Web search partially implemented
parent
62a82e1d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
152 additions
and
5 deletions
+152
-5
style.qss
resources/style.qss
+7
-0
UBFeaturesController.cpp
src/board/UBFeaturesController.cpp
+12
-4
UBFeaturesController.h
src/board/UBFeaturesController.h
+4
-1
UBFeaturesWidget.cpp
src/gui/UBFeaturesWidget.cpp
+105
-0
UBFeaturesWidget.h
src/gui/UBFeaturesWidget.h
+24
-0
No files found.
resources/style.qss
View file @
ffc9b5c3
...
...
@@ -26,6 +26,13 @@ QWidget#UBLibWebView
border: 2px solid #999999;
}
QWidget#UBFeaturesWebView
{
background: #EEEEEE;
border-radius : 10px;
border: 2px solid #999999;
}
QListView
{
background: #EEEEEE;
...
...
src/board/UBFeaturesController.cpp
View file @
ffc9b5c3
...
...
@@ -65,6 +65,7 @@ void UBFeaturesController::initDirectoryTree()
mLibInteractiveDirectoryPath
=
UBSettings
::
settings
()
->
applicationInteractivesDirectory
();
mLibApplicationsDirectoryPath
=
UBSettings
::
settings
()
->
applicationApplicationsLibraryDirectory
();
mLibShapesDirectoryPath
=
UBSettings
::
settings
()
->
applicationShapeLibraryDirectory
()
;
mLibSearchDirectoryPath
=
UBSettings
::
settings
()
->
userSearchDirectory
();
trashDirectoryPath
=
UBSettings
::
userTrashDirPath
();
featuresList
=
new
QList
<
UBFeature
>
();
...
...
@@ -100,7 +101,8 @@ void UBFeaturesController::initDirectoryTree()
featuresList
->
append
(
trashElement
);
favoriteElement
=
UBFeature
(
rootPath
,
QPixmap
(
":images/libpalette/FavoritesCategory.svg"
),
"Favorites"
,
"favorites"
,
FEATURE_FAVORITE
);
featuresList
->
append
(
favoriteElement
);
searchElement
=
UBFeature
(
rootPath
,
QPixmap
(
":images/libpalette/WebSearchCategory.svg"
),
"Web search"
,
mLibSearchDirectoryPath
);
featuresList
->
append
(
searchElement
);
loadFavoriteList
();
foreach
(
UBToolsManager
::
UBToolDescriptor
tool
,
tools
)
...
...
@@ -122,7 +124,7 @@ void UBFeaturesController::initDirectoryTree()
fileSystemScan
(
mLibShapesDirectoryPath
,
shapesPath
);
fileSystemScan
(
mLibInteractiveDirectoryPath
,
interactPath
);
fileSystemScan
(
trashDirectoryPath
,
trashPath
);
fileSystemScan
(
mLibSearchDirectoryPath
,
rootPath
+
"/"
+
"Web search"
);
}
...
...
@@ -137,8 +139,14 @@ void UBFeaturesController::fileSystemScan(const QString & currentPath, const QSt
UBFeatureElementType
fileType
=
fileInfo
->
isDir
()
?
FEATURE_FOLDER
:
FEATURE_ITEM
;
QString
fileName
=
fileInfo
->
fileName
();
if
(
UBFileSystemUtils
::
mimeTypeFromFileName
(
fileName
).
contains
(
"application"
)
)
{
fileType
=
FEATURE_INTERACTIVE
;
if
(
UBFileSystemUtils
::
mimeTypeFromFileName
(
fileName
).
contains
(
"application"
)
)
{
if
(
UBFileSystemUtils
::
mimeTypeFromFileName
(
fileName
).
contains
(
"application/search"
)
)
{
fileType
=
FEATURE_SEARCH
;
}
else
fileType
=
FEATURE_INTERACTIVE
;
}
QString
itemName
=
(
fileType
!=
FEATURE_ITEM
)
?
fileName
:
fileInfo
->
completeBaseName
();
QPixmap
icon
=
QPixmap
(
":images/libpalette/soundIcon.svg"
);
...
...
src/board/UBFeaturesController.h
View file @
ffc9b5c3
...
...
@@ -19,7 +19,8 @@ enum UBFeatureElementType
FEATURE_INTERNAL
,
FEATURE_ITEM
,
FEATURE_TRASH
,
FEATURE_FAVORITE
FEATURE_FAVORITE
,
FEATURE_SEARCH
};
class
UBFeature
...
...
@@ -105,6 +106,7 @@ private:
QString
mLibApplicationsDirectoryPath
;
QString
mLibShapesDirectoryPath
;
QString
trashDirectoryPath
;
QString
mLibSearchDirectoryPath
;
QString
rootPath
;
QString
audiosPath
;
...
...
@@ -127,6 +129,7 @@ private:
UBFeature
interactElement
;
UBFeature
flashElement
;
UBFeature
shapesElement
;
UBFeature
searchElement
;
QSet
<
QString
>
*
favoriteSet
;
};
...
...
src/gui/UBFeaturesWidget.cpp
View file @
ffc9b5c3
#include <QDomDocument>
#include "UBFeaturesWidget.h"
#include "domain/UBAbstractWidget.h"
#include "gui/UBThumbnailWidget.h"
...
...
@@ -6,6 +8,7 @@
#include "core/UBApplication.h"
#include "core/UBDownloadManager.h"
#include "globals/UBGlobals.h"
#include "board/UBBoardController.h"
UBFeaturesWidget
::
UBFeaturesWidget
(
QWidget
*
parent
,
const
char
*
name
)
:
UBDockPaletteWidget
(
parent
)
{
...
...
@@ -82,6 +85,7 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale
pathScene
=
new
QGraphicsScene
(
this
);
//pathViewer = new UBFeaturesPathViewer( QPixmap(":images/libpalette/home.png"), controller->getRootPath(), pathScene, this );
featureProperties
=
new
UBFeatureProperties
(
this
);
webView
=
new
UBFeaturesWebView
(
this
);
//layout->addWidget( pathViewer );
//pathViewer->show();
...
...
@@ -91,6 +95,7 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale
stackedWidget
->
addWidget
(
featuresListView
);
stackedWidget
->
addWidget
(
featureProperties
);
stackedWidget
->
addWidget
(
webView
);
stackedWidget
->
setCurrentIndex
(
ID_LISTVIEW
);
currentStackedWidget
=
ID_LISTVIEW
;
...
...
@@ -183,6 +188,11 @@ void UBFeaturesWidget::currentSelected(const QModelIndex ¤t)
mActionBar
->
setCurrentState
(
IN_FOLDER
);
}
}
else
if
(
feature
.
getType
()
==
FEATURE_SEARCH
)
{
webView
->
showElement
(
feature
);
switchToWebView
();
}
else
{
featureProperties
->
showElement
(
feature
);
...
...
@@ -307,6 +317,11 @@ void UBFeaturesWidget::switchToProperties()
currentStackedWidget
=
ID_PROPERTIES
;
}
void
UBFeaturesWidget
::
switchToWebView
()
{
stackedWidget
->
setCurrentIndex
(
ID_WEBVIEW
);
currentStackedWidget
=
ID_WEBVIEW
;
}
/*
...
...
@@ -375,6 +390,96 @@ void UBFeaturesListView::dropEvent( QDropEvent *event )
}
UBFeaturesWebView
::
UBFeaturesWebView
(
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
,
mpView
(
NULL
)
,
mpWebSettings
(
NULL
)
,
mpLayout
(
NULL
)
,
mpSankoreAPI
(
NULL
)
{
setObjectName
(
name
);
SET_STYLE_SHEET
();
mpLayout
=
new
QVBoxLayout
();
setLayout
(
mpLayout
);
mpView
=
new
QWebView
(
this
);
mpView
->
setObjectName
(
"SearchEngineView"
);
mpSankoreAPI
=
new
UBWidgetUniboardAPI
(
UBApplication
::
boardController
->
activeScene
());
mpView
->
page
()
->
mainFrame
()
->
addToJavaScriptWindowObject
(
"sankore"
,
mpSankoreAPI
);
mpWebSettings
=
QWebSettings
::
globalSettings
();
mpWebSettings
->
setAttribute
(
QWebSettings
::
JavaEnabled
,
true
);
mpWebSettings
->
setAttribute
(
QWebSettings
::
PluginsEnabled
,
true
);
mpWebSettings
->
setAttribute
(
QWebSettings
::
LocalStorageDatabaseEnabled
,
true
);
mpWebSettings
->
setAttribute
(
QWebSettings
::
OfflineWebApplicationCacheEnabled
,
true
);
mpWebSettings
->
setAttribute
(
QWebSettings
::
OfflineStorageDatabaseEnabled
,
true
);
mpWebSettings
->
setAttribute
(
QWebSettings
::
JavascriptCanAccessClipboard
,
true
);
mpWebSettings
->
setAttribute
(
QWebSettings
::
DnsPrefetchEnabled
,
true
);
mpLayout
->
addWidget
(
mpView
);
connect
(
mpView
,
SIGNAL
(
loadFinished
(
bool
)),
this
,
SLOT
(
onLoadFinished
(
bool
)));
}
UBFeaturesWebView
::~
UBFeaturesWebView
()
{
if
(
NULL
!=
mpSankoreAPI
){
delete
mpSankoreAPI
;
mpSankoreAPI
=
NULL
;
}
if
(
NULL
!=
mpView
){
delete
mpView
;
mpView
=
NULL
;
}
if
(
NULL
!=
mpLayout
){
delete
mpLayout
;
mpLayout
=
NULL
;
}
}
void
UBFeaturesWebView
::
showElement
(
const
UBFeature
&
elem
)
{
QString
qsWidgetName
;
QString
path
=
elem
.
getFullPath
();
QString
qsConfigPath
=
QString
(
"%0/config.xml"
).
arg
(
path
);
if
(
QFile
::
exists
(
qsConfigPath
))
{
QFile
f
(
qsConfigPath
);
if
(
f
.
open
(
QIODevice
::
ReadOnly
))
{
QDomDocument
domDoc
;
domDoc
.
setContent
(
QString
(
f
.
readAll
()));
QDomElement
root
=
domDoc
.
documentElement
();
QDomNode
node
=
root
.
firstChild
();
while
(
!
node
.
isNull
())
{
if
(
node
.
toElement
().
tagName
()
==
"content"
)
{
QDomAttr
srcAttr
=
node
.
toElement
().
attributeNode
(
"src"
);
qsWidgetName
=
srcAttr
.
value
();
break
;
}
node
=
node
.
nextSibling
();
}
f
.
close
();
}
}
mpView
->
load
(
QUrl
::
fromLocalFile
(
QString
(
"%0/%1"
).
arg
(
path
).
arg
(
qsWidgetName
)));
}
void
UBFeaturesWebView
::
onLoadFinished
(
bool
ok
)
{
if
(
ok
&&
NULL
!=
mpSankoreAPI
){
mpView
->
page
()
->
mainFrame
()
->
addToJavaScriptWindowObject
(
"sankore"
,
mpSankoreAPI
);
}
}
UBFeatureProperties
::
UBFeatureProperties
(
QWidget
*
parent
,
const
char
*
name
)
:
QWidget
(
parent
)
,
mpLayout
(
NULL
)
,
mpButtonLayout
(
NULL
)
...
...
src/gui/UBFeaturesWidget.h
View file @
ffc9b5c3
...
...
@@ -18,6 +18,7 @@
#include "UBDockPaletteWidget.h"
//#include "UBLibActionBar.h"
#include "board/UBFeaturesController.h"
#include "api/UBWidgetUniboardAPI.h"
#include "UBFeaturesActionBar.h"
#include "UBRubberBand.h"
...
...
@@ -25,6 +26,7 @@
#define THUMBNAIL_WIDTH 400
#define ID_LISTVIEW 0
#define ID_PROPERTIES 1
#define ID_WEBVIEW 2
class
UBListModel
;
...
...
@@ -38,6 +40,7 @@ class UBFeaturesPathViewer;
class
UBFeatureProperties
;
class
UBFeatureItemButton
;
class
UBFeaturesListView
;
class
UBFeaturesWebView
;
class
UBFeaturesWidget
:
public
UBDockPaletteWidget
{
...
...
@@ -59,6 +62,7 @@ public:
private
:
void
switchToListView
();
void
switchToProperties
();
void
switchToWebView
();
UBFeaturesController
*
controller
;
...
...
@@ -79,7 +83,9 @@ private:
QGraphicsScene
*
pathScene
;
UBFeaturesActionBar
*
mActionBar
;
UBFeatureProperties
*
featureProperties
;
UBFeaturesWebView
*
webView
;
QStackedWidget
*
stackedWidget
;
int
currentStackedWidget
;
QModelIndex
trashIndex
;
...
...
@@ -114,6 +120,24 @@ private:
//QPoint rubberOrigin;
};
class
UBFeaturesWebView
:
public
QWidget
{
Q_OBJECT
public
:
UBFeaturesWebView
(
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBFeaturesWebView"
);
~
UBFeaturesWebView
();
void
showElement
(
const
UBFeature
&
elem
);
private
slots
:
void
onLoadFinished
(
bool
ok
);
private
:
QWebView
*
mpView
;
QWebSettings
*
mpWebSettings
;
QVBoxLayout
*
mpLayout
;
UBWidgetUniboardAPI
*
mpSankoreAPI
;
};
class
UBFeatureProperties
:
public
QWidget
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment