gambas-source-code/gb.qt4/src/webkit/cwebsettings.cpp
Benoît Minisini 76275850fb [DEVELOPMENT ENVIRONMENT]
* NEW: The IDE now uses the WebKit component to display an online help 
  directly into the automatic completion popup. The online help management
  is quick and dirty at the moment.
* NEW: The option dialog is being redesigned. Not finished yet...
* NEW: Some cosmetic changes in the user control that displays the 
  information about a project. Not perfect yet.

[WIKI CGI SCRIPT]
* NEW: The wiki now sends the "Last-Modified", "Expires" and 
  "Cache-Control: max-age" headers with the HTML pages.
* NEW: Adding "?help" to an URL returns the page for the IDE online help.

[INTERPRETER]
* BUG: Try to stop breaking strict aliasing rules. This way the interpreter 
  should behave better on ARM architecture.
* BUG: Remove a possible crash when calling a constructor.

[GB.DRAW]
* NEW: The deprecated properties Draw.ForeColor and Draw.BackColor have 
  been removed.

[GB.NET]
* BUG: Do not watch the SerialPort file descriptor for reading if there is 
  no Read event handler.

[GB.QT4.WEBKIT]
* NEW: WebSettings.Cache.Path is a new property to define the directory 
  used for storing the disk cache contents. If this property is not 
  defined, no cache will be used.
* NEW: WebView.Cached is a new property to tell if the web browser will use
  the disk cache. The WebSettings.Cache.Path *must* be defined before 
  setting that property.
* NEW: WebView.HTML is not read-only anymore.


git-svn-id: svn://localhost/gambas/trunk@2460 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-12-07 17:14:32 +00:00

221 lines
6.3 KiB
C++

/***************************************************************************
cwebsettings.cpp
(c) 2000-2009 Benoît Minisini <gambas@users.sourceforge.net>
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, 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, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
***************************************************************************/
#define __CWEBSETTINGS_CPP
#include <QNetworkDiskCache>
#include "cwebsettings.h"
//static QNetworkDiskCache *_cache = 0;
static char *_cache_path = 0;
void WEBSETTINGS_set_cache(QWebView *view, bool on)
{
QNetworkDiskCache *cache;
if (!_cache_path)
return;
if (on)
{
cache = new QNetworkDiskCache(0);
cache->setCacheDirectory(TO_QSTRING(_cache_path));
view->page()->networkAccessManager()->setCache(cache);
}
else
view->page()->networkAccessManager()->setCache(0);
}
static QWebSettings *get_settings(void *_object)
{
if (!_object)
return QWebSettings::globalSettings();
else
return WEBVIEW->settings();
}
BEGIN_METHOD(WebSettingsFont_get, GB_INTEGER font)
QWebSettings *settings = get_settings(_object);
QWebSettings::FontFamily font(QWebSettings::FontFamily(VARG(font)));
GB.ReturnNewZeroString(TO_UTF8(settings->fontFamily(font)));
END_METHOD
BEGIN_METHOD(WebSettingsFont_put, GB_STRING family; GB_INTEGER font)
QWebSettings *settings = get_settings(_object);
QWebSettings::FontFamily font(QWebSettings::FontFamily(VARG(font)));
settings->setFontFamily(font, QSTRING_ARG(family));
END_METHOD
BEGIN_METHOD_VOID(WebSettingsIconDatabase_Clear)
QWebSettings::clearIconDatabase();
END_METHOD
BEGIN_PROPERTY(WebSettingsIconDatabase_Path)
if (READ_PROPERTY)
GB.ReturnNewZeroString(TO_UTF8(QWebSettings::iconDatabasePath()));
else
QWebSettings::setIconDatabasePath(QSTRING_PROP());
END_PROPERTY
BEGIN_PROPERTY(WebSettingsCache_Path)
if (READ_PROPERTY)
GB.ReturnString(_cache_path);
else
GB.StoreString(PROP(GB_STRING), &_cache_path);
END_PROPERTY
BEGIN_METHOD(WebSettings_get, GB_INTEGER flag)
QWebSettings *settings = get_settings(_object);
QWebSettings::WebAttribute flag(QWebSettings::WebAttribute(VARG(flag)));
GB.ReturnBoolean(settings->testAttribute(flag));
END_METHOD
BEGIN_METHOD(WebSettings_put, GB_BOOLEAN value; GB_INTEGER flag)
QWebSettings *settings = get_settings(_object);
QWebSettings::WebAttribute flag(QWebSettings::WebAttribute(VARG(flag)));
settings->setAttribute(flag, VARG(value));
END_METHOD
BEGIN_METHOD(WebSettings_Reset, GB_INTEGER flag)
QWebSettings *settings = get_settings(_object);
QWebSettings::WebAttribute flag(QWebSettings::WebAttribute(VARG(flag)));
settings->resetAttribute(flag);
END_METHOD
BEGIN_METHOD_VOID(WebSettings_exit)
GB.FreeString(&_cache_path);
END_METHOD
/***************************************************************************/
GB_DESC CWebViewSettingsDesc[] =
{
GB_DECLARE(".WebViewSettings", 0),
GB_METHOD("_get", "b", WebSettings_get, "(Flag)i"),
GB_METHOD("_put", NULL, WebSettings_put, "(Value)b(Flag)i"),
GB_METHOD("Reset", NULL, WebSettings_Reset, "(Flag)i"),
GB_END_DECLARE
};
/***************************************************************************/
GB_DESC CWebSettingsFontDesc[] =
{
GB_DECLARE(".WebSettingsFont", 0), GB_VIRTUAL_CLASS(),
GB_STATIC_METHOD("_get", "s", WebSettingsFont_get, "(Font)i"),
GB_STATIC_METHOD("_put", NULL, WebSettingsFont_get, "(Family)s(Font)i"),
GB_END_DECLARE
};
GB_DESC CWebSettingsIconDatabaseDesc[] =
{
GB_DECLARE(".WebSettingsIconDatabase", 0), GB_VIRTUAL_CLASS(),
GB_STATIC_METHOD("Clear", NULL, WebSettingsIconDatabase_Clear, NULL),
GB_STATIC_PROPERTY("Path", "s", WebSettingsIconDatabase_Path),
GB_END_DECLARE
};
GB_DESC CWebSettingsCacheDesc[] =
{
GB_DECLARE(".WebSettingsCache", 0), GB_VIRTUAL_CLASS(),
GB_STATIC_PROPERTY("Path", "s", WebSettingsCache_Path),
GB_END_DECLARE
};
GB_DESC CWebSettingsDesc[] =
{
GB_DECLARE("WebSettings", 0),
GB_CONSTANT("StandardFont", "i", QWebSettings::StandardFont),
GB_CONSTANT("FixedFont", "i", QWebSettings::FixedFont),
GB_CONSTANT("SerifFont", "i", QWebSettings::SerifFont),
GB_CONSTANT("SansSerifFont", "i", QWebSettings::SansSerifFont),
GB_CONSTANT("CursiveFont", "i", QWebSettings::CursiveFont),
GB_CONSTANT("FantasyFont", "i", QWebSettings::FantasyFont),
GB_CONSTANT("AutoLoadImages", "i", QWebSettings::AutoLoadImages),
GB_CONSTANT("JavascriptEnabled", "i", QWebSettings::JavascriptEnabled),
GB_CONSTANT("JavaEnabled", "i", QWebSettings::JavaEnabled),
GB_CONSTANT("PluginsEnabled", "i", QWebSettings::PluginsEnabled),
GB_CONSTANT("PrivateBrowsingEnabled", "i", QWebSettings::PrivateBrowsingEnabled),
GB_CONSTANT("JavascriptCanOpenWindows", "i", QWebSettings::JavascriptCanOpenWindows),
GB_CONSTANT("JavascriptCanAccessClipboard", "i", QWebSettings::JavascriptCanAccessClipboard),
GB_CONSTANT("DeveloperExtrasEnabled", "i", QWebSettings::DeveloperExtrasEnabled),
GB_CONSTANT("LinksIncludedInFocusChain", "i", QWebSettings::LinksIncludedInFocusChain),
GB_CONSTANT("ZoomTextOnly", "i", QWebSettings::ZoomTextOnly),
GB_CONSTANT("PrintElementBackgrounds", "i", QWebSettings::PrintElementBackgrounds),
GB_CONSTANT("OfflineStorageDatabaseEnabled", "i", QWebSettings::OfflineStorageDatabaseEnabled),
GB_CONSTANT("OfflineWebApplicationCacheEnabled", "i", QWebSettings::OfflineWebApplicationCacheEnabled),
GB_CONSTANT("LocalStorageDatabaseEnabled", "i", QWebSettings::LocalStorageDatabaseEnabled),
GB_STATIC_PROPERTY_SELF("Font", ".WebSettingsFont"),
GB_STATIC_PROPERTY_SELF("IconDatabase", ".WebSettingsIconDatabase"),
GB_STATIC_PROPERTY_SELF("Cache", ".WebSettingsCache"),
GB_STATIC_METHOD("_get", "b", WebSettings_get, "(Flag)i"),
GB_STATIC_METHOD("_put", NULL, WebSettings_put, "(Value)b(Flag)i"),
GB_STATIC_METHOD("_exit", NULL, WebSettings_exit, NULL),
GB_END_DECLARE
};
/***************************************************************************/