本文整理汇总了C++中QNetworkDiskCache::setMaximumCacheSize方法的典型用法代码示例。如果您正苦于以下问题:C++ QNetworkDiskCache::setMaximumCacheSize方法的具体用法?C++ QNetworkDiskCache::setMaximumCacheSize怎么用?C++ QNetworkDiskCache::setMaximumCacheSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QNetworkDiskCache
的用法示例。
在下文中一共展示了QNetworkDiskCache::setMaximumCacheSize方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: icon
LxMainWindow::LxMainWindow( QWidget* prarent /*= 0*/ )
:QWebView(prarent)
{
_initWidget();
this->setRenderHints(QPainter::SmoothPixmapTransform | QPainter::HighQualityAntialiasing);
QObject::connect(this, SIGNAL(linkClicked(const QUrl&)), this, SLOT(linkClickedAction(const QUrl&)));
QNetworkAccessManager* pNetworkAccessManager = this->page()->networkAccessManager();
LxOption* pOption = lxCoreApp->getOption();
if (pOption && pNetworkAccessManager)
{
QString strCookies = pOption->getCookieFilePath();
LxNetWorkCookies* pCookies = new LxNetWorkCookies(strCookies, this);
pNetworkAccessManager->setCookieJar(pCookies);
QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
QString location = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
//QString location = QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
diskCache->setCacheDirectory(location);
diskCache->setMaximumCacheSize(1024);//byte
pNetworkAccessManager->setCache(diskCache);
pNetworkAccessManager->setNetworkAccessible(QNetworkAccessManager::Accessible);
m_bLoadHrefInCurrent = pOption->getLoadHrefInCurrentMainDialog();
}
QString iconName = pOption->getSystemTrayIconName();
QString iconPath = QCoreApplication::applicationDirPath() + "/" + iconName;
qDebug("show path %s", qPrintable(iconPath));
QIcon icon(iconPath);
this->setWindowIcon(icon);
}
示例2: platformSetCacheModel
void WebProcess::platformSetCacheModel(CacheModel cacheModel)
{
uint64_t physicalMemorySizeInMegabytes = WTF::ramSize() / 1024 / 1024;
// The Mac port of WebKit2 uses a fudge factor of 1000 here to account for misalignment, however,
// that tends to overestimate the memory quite a bit (1 byte misalignment ~ 48 MiB misestimation).
// We use 1024 * 1023 for now to keep the estimation error down to +/- ~1 MiB.
QNetworkDiskCache* diskCache = qobject_cast<QNetworkDiskCache*>(m_networkAccessManager->cache());
uint64_t freeVolumeSpace = !diskCache ? 0 : WebCore::getVolumeFreeSizeForPath(diskCache->cacheDirectory().toLocal8Bit().constData()) / 1024 / 1023;
// The following variables are initialised to 0 because WebProcess::calculateCacheSizes might not
// set them in some rare cases.
unsigned cacheTotalCapacity = 0;
unsigned cacheMinDeadCapacity = 0;
unsigned cacheMaxDeadCapacity = 0;
double deadDecodedDataDeletionInterval = 0;
unsigned pageCacheCapacity = 0;
unsigned long urlCacheMemoryCapacity = 0;
unsigned long urlCacheDiskCapacity = 0;
calculateCacheSizes(cacheModel, physicalMemorySizeInMegabytes, freeVolumeSpace,
cacheTotalCapacity, cacheMinDeadCapacity, cacheMaxDeadCapacity, deadDecodedDataDeletionInterval,
pageCacheCapacity, urlCacheMemoryCapacity, urlCacheDiskCapacity);
if (diskCache)
diskCache->setMaximumCacheSize(urlCacheDiskCapacity);
memoryCache()->setCapacities(cacheMinDeadCapacity, cacheMaxDeadCapacity, cacheTotalCapacity);
memoryCache()->setDeadDecodedDataDeletionInterval(deadDecodedDataDeletionInterval);
pageCache()->setCapacity(pageCacheCapacity);
// FIXME: Implement hybrid in-memory- and disk-caching as e.g. the Mac port does.
}
示例3: create
QNetworkAccessManager* TBNetworkAccessManagerFactory::create(QObject *parent)
{
QMutexLocker lock(&mutex);
Q_UNUSED(lock);
QNetworkAccessManager* manager = new TBNetworkAccessManager(parent);
#ifdef Q_OS_SYMBIAN
bool useDiskCache = Utility::Instance()->qtVersion() >= 0x040800;
#else
bool useDiskCache = true;
#endif
if (useDiskCache){
QNetworkDiskCache* diskCache = new QNetworkDiskCache(parent);
QString dataPath = QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
QDir dir(dataPath);
if (!dir.exists()) dir.mkpath(dir.absolutePath());
diskCache->setCacheDirectory(dataPath);
diskCache->setMaximumCacheSize(3*1024*1024);
manager->setCache(diskCache);
}
QNetworkCookieJar* cookieJar = TBNetworkCookieJar::GetInstance();
manager->setCookieJar(cookieJar);
cookieJar->setParent(0);
return manager;
}
示例4: QNetworkAccessManager
QNetworkAccessManager *MyNetworkAccessManagerFactory::create(QObject *parent)
{
QNetworkAccessManager *nam = new QNetworkAccessManager(parent);
QNetworkDiskCache* cache = new QNetworkDiskCache(parent);
// 500 Mb
cache->setMaximumCacheSize(500*1024*1024);
cache->setCacheDirectory("cacheDir");
nam->setCache(cache);
return nam;
}
示例5: loadSettings
void NetworkManager::loadSettings()
{
Settings settings;
if (settings.value("Web-Browser-Settings/AllowLocalCache", true).toBool() && !mApp->isPrivateSession()) {
QNetworkDiskCache* cache = mApp->networkCache();
cache->setMaximumCacheSize(settings.value("MaximumCacheSize", 50).toInt() * 1024 * 1024); //MegaBytes
setCache(cache);
}
settings.beginGroup("Web-Browser-Settings");
m_doNotTrack = settings.value("DoNotTrack", false).toBool();
m_sendReferer = settings.value("SendReferer", true).toBool();
settings.endGroup();
m_acceptLanguage = AcceptLanguage::generateHeader(settings.value("Language/acceptLanguage", AcceptLanguage::defaultLanguage()).toStringList());
// Falling back to Qt 4.7 default behavior, use SslV3 by default
// Fixes issue with some older servers closing the connection
// However, it also makes some servers requesting TLS ClientHello
// not working, or showing invalid certificates.
// See #921
// QSslConfiguration config = QSslConfiguration::defaultConfiguration();
// config.setProtocol(QSsl::SslV3);
// QSslConfiguration::setDefaultConfiguration(config);
#if defined(Q_OS_WIN) || defined(Q_OS_HAIKU) || defined(Q_OS_OS2)
QString certDir = mApp->PROFILEDIR + "certificates";
QString bundlePath = certDir + "/ca-bundle.crt";
QString bundleVersionPath = certDir + "/bundle_version";
if (!QDir(certDir).exists()) {
QDir dir(mApp->PROFILEDIR);
dir.mkdir("certificates");
}
if (!QFile::exists(bundlePath)) {
QFile(":data/ca-bundle.crt").copy(bundlePath);
QFile(bundlePath).setPermissions(QFile::ReadUser | QFile::WriteUser);
QFile(":data/bundle_version").copy(bundleVersionPath);
QFile(bundleVersionPath).setPermissions(QFile::ReadUser | QFile::WriteUser);
}
QSslSocket::setDefaultCaCertificates(QSslCertificate::fromPath(bundlePath));
#else
QSslSocket::setDefaultCaCertificates(QSslSocket::systemCaCertificates());
#endif
loadCertificates();
m_proxyFactory->loadSettings();
}
示例6: setupNetworkAccessManager
void QgsServer::setupNetworkAccessManager()
{
QSettings settings;
QgsNetworkAccessManager *nam = QgsNetworkAccessManager::instance();
QNetworkDiskCache *cache = new QNetworkDiskCache( nullptr );
qint64 cacheSize = sSettings.cacheSize();
QString cacheDirectory = sSettings.cacheDirectory();
cache->setCacheDirectory( cacheDirectory );
cache->setMaximumCacheSize( cacheSize );
QgsMessageLog::logMessage( QStringLiteral( "cacheDirectory: %1" ).arg( cache->cacheDirectory() ), QStringLiteral( "Server" ), Qgis::Info );
QgsMessageLog::logMessage( QStringLiteral( "maximumCacheSize: %1" ).arg( cache->maximumCacheSize() ), QStringLiteral( "Server" ), Qgis::Info );
nam->setCache( cache );
}
示例7: setupNetworkAccessManager
/**
* @brief QgsServer::setupNetworkAccessManager
*/
void QgsServer::setupNetworkAccessManager()
{
QSettings settings;
QgsNetworkAccessManager *nam = QgsNetworkAccessManager::instance();
QNetworkDiskCache *cache = new QNetworkDiskCache( 0 );
QString cacheDirectory = settings.value( "cache/directory", QgsApplication::qgisSettingsDirPath() + "cache" ).toString();
qint64 cacheSize = settings.value( "cache/size", 50 * 1024 * 1024 ).toULongLong();
QgsDebugMsg( QString( "setCacheDirectory: %1" ).arg( cacheDirectory ) );
QgsDebugMsg( QString( "setMaximumCacheSize: %1" ).arg( cacheSize ) );
cache->setCacheDirectory( cacheDirectory );
cache->setMaximumCacheSize( cacheSize );
QgsDebugMsg( QString( "cacheDirectory: %1" ).arg( cache->cacheDirectory() ) );
QgsDebugMsg( QString( "maximumCacheSize: %1" ).arg( cache->maximumCacheSize() ) );
nam->setCache( cache );
}
示例8: loadSettings
void NetworkManager::loadSettings()
{
Settings settings;
settings.beginGroup("Web-Browser-Settings");
if (settings.value("AllowLocalCache", true).toBool() && !mApp->isPrivateSession()) {
QNetworkDiskCache* cache = mApp->networkCache();
cache->setMaximumCacheSize(settings.value("MaximumCacheSize", 50).toInt() * 1024 * 1024); //MegaBytes
setCache(cache);
}
m_doNotTrack = settings.value("DoNotTrack", false).toBool();
m_sendReferer = settings.value("SendReferer", true).toBool();
settings.endGroup();
m_acceptLanguage = AcceptLanguage::generateHeader(settings.value("Language/acceptLanguage", AcceptLanguage::defaultLanguage()).toStringList());
#ifdef Q_OS_WIN
// From doc:
// QSslSocket::VerifyNone ... The connection will still be encrypted, and your socket
// will still send its local certificate to the peer if it's requested.
QSslConfiguration config = QSslConfiguration::defaultConfiguration();
config.setPeerVerifyMode(QSslSocket::VerifyNone);
QSslConfiguration::setDefaultConfiguration(config);
#endif
QString certDir = mApp->PROFILEDIR + "certificates";
QString bundlePath = certDir + "/ca-bundle.crt";
QString bundleVersionPath = certDir + "/bundle_version";
if (!QDir(certDir).exists()) {
QDir dir(mApp->PROFILEDIR);
dir.mkdir("certificates");
}
if (!QFile::exists(bundlePath)) {
QFile(":data/ca-bundle.crt").copy(bundlePath);
QFile(bundlePath).setPermissions(QFile::ReadUser | QFile::WriteUser);
QFile(":data/bundle_version").copy(bundleVersionPath);
QFile(bundleVersionPath).setPermissions(QFile::ReadUser | QFile::WriteUser);
}
QSslSocket::setDefaultCaCertificates(QSslCertificate::fromPath(bundlePath));
m_proxyFactory->loadSettings();
}
示例9: init
void AssetClient::init() {
Q_ASSERT(QThread::currentThread() == thread());
// Setup disk cache if not already
auto& networkAccessManager = NetworkAccessManager::getInstance();
if (!networkAccessManager.cache()) {
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
cachePath = !cachePath.isEmpty() ? cachePath : "interfaceCache";
QNetworkDiskCache* cache = new QNetworkDiskCache();
cache->setMaximumCacheSize(MAXIMUM_CACHE_SIZE);
cache->setCacheDirectory(cachePath);
networkAccessManager.setCache(cache);
qInfo() << "ResourceManager disk cache setup at" << cachePath
<< "(size:" << MAXIMUM_CACHE_SIZE / BYTES_PER_GIGABYTES << "GB)";
}
}
示例10: init
void AssetClient::init() {
if (QThread::currentThread() != thread()) {
QMetaObject::invokeMethod(this, "init", Qt::BlockingQueuedConnection);
}
// Setup disk cache if not already
QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
if (!networkAccessManager.cache()) {
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
cachePath = !cachePath.isEmpty() ? cachePath : "interfaceCache";
QNetworkDiskCache* cache = new QNetworkDiskCache();
cache->setMaximumCacheSize(MAXIMUM_CACHE_SIZE);
cache->setCacheDirectory(cachePath);
networkAccessManager.setCache(cache);
qCDebug(asset_client) << "AssetClient disk cache setup at" << cachePath
<< "(size:" << MAXIMUM_CACHE_SIZE / BYTES_PER_GIGABYTES << "GB)";
}
}
示例11: QWebPage
MyWebPage::MyWebPage(QObject *parent) :
QWebPage(parent)
{
auto pNAM = networkAccessManager();
QNetworkDiskCache * pNDC = new QNetworkDiskCache(parent);
pNDC->setCacheDirectory(getDataDir()+"/cache");
qint64 size = pNDC->cacheSize();
size = pNDC->maximumCacheSize();
const qint64 desired = 1024*1024*1024;
if (size < desired) {
pNDC->setMaximumCacheSize(desired);
size = pNDC->maximumCacheSize();
}
QString dir = pNDC->cacheDirectory();
pNAM->setCache(pNDC);
auto cj = new CookieJar(parent);
pNAM->setCookieJar(cj);
}
示例12: QGeoTiledMappingManagerEngine
QGeoMappingManagerEngineGoogle::QGeoMappingManagerEngineGoogle(const QMap<QString, QVariant> ¶meters, QGeoServiceProvider::Error *error, QString *errorString)
: QGeoTiledMappingManagerEngine(parameters),
m_parameters(parameters),
m_nam(NULL)
{
QNetworkDiskCache *cache = NULL;
Q_UNUSED(error)
Q_UNUSED(errorString)
setTileSize(QSize(256, 256));
setMinimumZoomLevel(0.0);
setMaximumZoomLevel(17.0);
QList<QGraphicsGeoMap::MapType> types;
types << QGraphicsGeoMap::StreetMap;
types << QGraphicsGeoMap::SatelliteMapDay;
setSupportedMapTypes(types);
QList<QGraphicsGeoMap::ConnectivityMode> modes;
modes << QGraphicsGeoMap::OnlineMode;
setSupportedConnectivityModes(modes);
QList<QString> keys = m_parameters.keys();
if (keys.contains("mapping.networkaccessmanager")) {
QNetworkAccessManager *nam;
nam = (QNetworkAccessManager *)m_parameters
.value("mapping.networkaccessmanager").value<void *>();
if (nam)
m_nam = nam;
}
if (!m_nam) {
m_nam = new QNetworkAccessManager(this);
cache = new QNetworkDiskCache(this);
}
if (cache) {
QDir dir = QDir::temp();
dir.mkdir("maptiles-google");
dir.cd("maptiles-google");
cache->setCacheDirectory(dir.path());
}
if (keys.contains("mapping.proxy")) {
QString proxy = m_parameters.value("mapping.proxy").toString();
if (!proxy.isEmpty())
m_nam->setProxy(parseProxy(proxy));
}
if (cache && keys.contains("mapping.cache.directory")) {
QString cacheDir = m_parameters.value("mapping.cache.directory").toString();
if (!cacheDir.isEmpty())
cache->setCacheDirectory(cacheDir);
}
if (cache && keys.contains("mapping.cache.size")) {
bool ok = false;
qint64 cacheSize = m_parameters.value("mapping.cache.size").toString().toLongLong(&ok);
if (ok)
cache->setMaximumCacheSize(cacheSize);
}
if (cache)
m_nam->setCache(cache);
}
示例13: main
int main( int argc, char * argv[] )
{
#ifndef _MSC_VER
qInstallMsgHandler( dummyMessageHandler );
#endif
QgsApplication qgsapp( argc, argv, getenv( "DISPLAY" ) );
//Default prefix path may be altered by environment variable
char* prefixPath = getenv( "QGIS_PREFIX_PATH" );
if ( prefixPath )
{
QgsApplication::setPrefixPath( prefixPath, TRUE );
}
#if !defined(Q_OS_WIN)
else
{
// init QGIS's paths - true means that all path will be inited from prefix
QgsApplication::setPrefixPath( CMAKE_INSTALL_PREFIX, TRUE );
}
#endif
#if defined(MAPSERVER_SKIP_ECW)
QgsDebugMsg( "Skipping GDAL ECW drivers in server." );
QgsApplication::skipGdalDriver( "ECW" );
QgsApplication::skipGdalDriver( "JP2ECW" );
#endif
QSettings settings;
QgsNetworkAccessManager *nam = QgsNetworkAccessManager::instance();
QNetworkDiskCache *cache = new QNetworkDiskCache( 0 );
QString cacheDirectory = settings.value( "cache/directory", QgsApplication::qgisSettingsDirPath() + "cache" ).toString();
qint64 cacheSize = settings.value( "cache/size", 50 * 1024 * 1024 ).toULongLong();
QgsDebugMsg( QString( "setCacheDirectory: %1" ).arg( cacheDirectory ) );
QgsDebugMsg( QString( "setMaximumCacheSize: %1" ).arg( cacheSize ) );
cache->setCacheDirectory( cacheDirectory );
cache->setMaximumCacheSize( cacheSize );
QgsDebugMsg( QString( "cacheDirectory: %1" ).arg( cache->cacheDirectory() ) );
QgsDebugMsg( QString( "maximumCacheSize: %1" ).arg( cache->maximumCacheSize() ) );
nam->setCache( cache );
QDomImplementation::setInvalidDataPolicy( QDomImplementation::DropInvalidChars );
// Instantiate the plugin directory so that providers are loaded
QgsProviderRegistry::instance( QgsApplication::pluginPath() );
QgsDebugMsg( "Prefix PATH: " + QgsApplication::prefixPath() );
QgsDebugMsg( "Plugin PATH: " + QgsApplication::pluginPath() );
QgsDebugMsg( "PkgData PATH: " + QgsApplication::pkgDataPath() );
QgsDebugMsg( "User DB PATH: " + QgsApplication::qgisUserDbFilePath() );
QgsDebugMsg( qgsapp.applicationDirPath() + "/qgis_wms_server.log" );
QgsApplication::createDB(); //init qgis.db (e.g. necessary for user crs)
//create config cache and search for config files in the current directory.
//These configurations are used if no mapfile parameter is present in the request
QString defaultConfigFilePath;
QFileInfo projectFileInfo = defaultProjectFile(); //try to find a .qgs file in the server directory
if ( projectFileInfo.exists() )
{
defaultConfigFilePath = projectFileInfo.absoluteFilePath();
}
else
{
QFileInfo adminSLDFileInfo = defaultAdminSLD();
if ( adminSLDFileInfo.exists() )
{
defaultConfigFilePath = adminSLDFileInfo.absoluteFilePath();
}
}
//create cache for capabilities XML
QgsCapabilitiesCache capabilitiesCache;
//creating QgsMapRenderer is expensive (access to srs.db), so we do it here before the fcgi loop
QgsMapRenderer* theMapRenderer = new QgsMapRenderer();
theMapRenderer->setLabelingEngine( new QgsPalLabeling() );
while ( fcgi_accept() >= 0 )
{
printRequestInfos(); //print request infos if in debug mode
//use QgsGetRequestHandler in case of HTTP GET and QgsSOAPRequestHandler in case of HTTP POST
QgsRequestHandler* theRequestHandler = 0;
char* requestMethod = getenv( "REQUEST_METHOD" );
if ( requestMethod != NULL )
{
if ( strcmp( requestMethod, "POST" ) == 0 )
{
//QgsDebugMsg( "Creating QgsSOAPRequestHandler" );
//theRequestHandler = new QgsSOAPRequestHandler();
theRequestHandler = new QgsPostRequestHandler();
}
else
{
QgsDebugMsg( "Creating QgsGetRequestHandler" );
theRequestHandler = new QgsGetRequestHandler();
}
//.........这里部分代码省略.........
示例14: main
int main(int argc, char **argv)
{
qRegisterMetaType<Cache::Key>("Key");
qRegisterMetaType<Tile>("Tile");
qRegisterMetaType<qkey>("qkey");
QCoreApplication::setOrganizationName("ZTopo");
QCoreApplication::setApplicationName("ZTopo");
QApplication app(argc, argv);
#if defined(Q_WS_MAC)
QApplication::instance()->setAttribute(Qt::AA_DontShowIconsInMenus);
// Mac OS specific code to find resources within a bundle
CFURLRef appUrlRef = CFBundleCopyBundleURL(CFBundleGetMainBundle());
CFStringRef macPath = CFURLCopyFileSystemPath(appUrlRef,
kCFURLPOSIXPathStyle);
const char *pathPtr = CFStringGetCStringPtr(macPath,
CFStringGetSystemEncoding());
if (!pathPtr) {
qFatal("Could not find Mac application bundle path!");
}
QString rootPath = QString(pathPtr) % "/Contents/Resources/";
QByteArray rootPathArray = QString(rootPath % "proj4").toLatin1();
//qDebug("proj root '%s'\n", rootPathArray.data());
const char *path[] = { rootPathArray.data() };
pj_set_searchpath(1, (const char **)&path);
CFRelease(appUrlRef);
CFRelease(macPath);
#elif defined(Q_WS_WIN)
/* On Windows, use the proj4 subdirectory of the directory containing the
application */
QString projPath = app.applicationDirPath() % "/proj4";
//qDebug() << "proj root" << projPath;
const char *path[] = { QDir::toNativeSeparators(projPath).toLatin1().data() };
pj_set_searchpath(1, (const char **)&path);
#endif
// On other operating systems, we assume the proj4 library can find its own datum
// shift grids.
QSettings settings;
QString cachePath = settings.value("cachePath",
QDesktopServices::storageLocation(QDesktopServices::CacheLocation)).toString();
QDir::current().mkpath(cachePath);
QNetworkAccessManager networkManager;
QNetworkDiskCache diskCache;
diskCache.setCacheDirectory(cachePath % "/meta");
diskCache.setMaximumCacheSize(maxDiskCacheSize);
networkManager.setCache(&diskCache);
RootData rootData(&networkManager);
if (rootData.maps().size() == 0) {
qFatal("No maps in root data file!");
}
Map *map = rootData.maps().values()[0];
int maxMemCache = settings.value(settingMemCache, 64).toInt();
int maxDiskCache = settings.value(settingDiskCache, 200).toInt();
Cache::Cache tileCache(map, networkManager, maxMemCache, maxDiskCache, cachePath);
MapRenderer renderer(map, tileCache);
MainWindow *window = new MainWindow(rootData, map, &renderer, tileCache,
networkManager);
window->show();
if (rootData.majorVersion() > majorVersion ||
(rootData.majorVersion() == majorVersion
&& rootData.minorVersion() > minorVersion)) {
QMessageBox mbox;
mbox.setText("A new version of ZTopo is available.");
mbox.setInformativeText(QString("A new version of ZTopo (%1.%2) is available for download. Would you like to open the ZTopo home page?").arg(rootData.majorVersion()).arg(rootData.minorVersion()));
mbox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
mbox.setDefaultButton(QMessageBox::Yes);
int ret = mbox.exec();
if (ret == QMessageBox::Yes) {
QDesktopServices::openUrl(QUrl(rootData.homePageUrl()));
}
}
return app.exec();
}
示例15: dlg
MainWindow::Private::Private(MainWindow *parent)
: q(parent)
, settings(SETTING_FILE_NAME, SETTING_FILE_FORMAT)
, trayIcon(QIcon(":/resources/KanmusuMemory32.png"))
{
ui.setupUi(q);
ui.webView->page()->networkAccessManager()->setCookieJar(new CookieJar(q));
QNetworkDiskCache *cache = new QNetworkDiskCache(q);
cache->setCacheDirectory(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
cache->setMaximumCacheSize(1073741824); //about 1024MB
ui.webView->page()->networkAccessManager()->setCache(cache);
//通知タイマーのダイアログ作成
m_timerDialog = new TimerDialog(q, &trayIcon, &settings);
//メニュー
connect(ui.capture, &QAction::triggered, [this](){ captureGame(); });
connect(ui.actionCaptureAndEdit, &QAction::triggered, [this]() { captureGame(true); });
#ifndef DISABLE_CATALOG_AND_DETAIL_FLEET
connect(ui.captureCatalog, &QAction::triggered, [this](){ captureCatalog(); });
connect(ui.captureFleetDetail, &QAction::triggered, [this](){ captureFleetDetail(); });
#endif
connect(ui.reload, &QAction::triggered, ui.webView, &QWebView::reload);
connect(ui.exit, &QAction::triggered, q, &MainWindow::close);
connect(ui.actionReturn_to_Kan_Colle, &QAction::triggered, [this]() {
//艦これ読込み
ui.webView->load(QUrl(URL_KANCOLLE));
});
connect(ui.actionClearAccessCache, &QAction::triggered, [this]() {
//キャッシュをクリア
ui.webView->page()->networkAccessManager()->cache()->clear();
});
//画像リスト
connect(ui.viewMemory, &QAction::triggered, [this]() {
checkSavePath();
MemoryDialog dlg(settings.value(QStringLiteral("path")).toString(), q);
dlg.exec();
if(QFile::exists(dlg.imagePath())){
switch(dlg.nextOperation()){
case MemoryDialog::Tweet:
//つぶやく
openTweetDialog(dlg.imagePath());
break;
case MemoryDialog::Edit:
{
//編集
QString format;
if(settings.value(SETTING_GENERAL_SAVE_PNG, false).toBool())
format = QStringLiteral("png");
else
format = QStringLiteral("jpg");
QString path = makeFileName(format);
QString editPath = makeFileName(format);
openImageEditDialog(path ,dlg.imagePath(), editPath);
break;
}
default:
break;
}
}
});
//通知タイマー
connect(ui.notificationTimer, &QAction::triggered, [this]() {
m_timerDialog->show();
});
//設定ダイアログ表示
connect(ui.preferences, &QAction::triggered, [this]() {
SettingsDialog dlg(q);
dlg.setSavePath(settings.value(QStringLiteral("path")).toString());
dlg.setUnusedTwitter(settings.value(SETTING_GENERAL_UNUSED_TWITTER, false).toBool());
dlg.setSavePng(settings.value(SETTING_GENERAL_SAVE_PNG, false).toBool());
dlg.setMaskAdmiralName(settings.value(SETTING_GENERAL_MASK_ADMIRAL_NAME, false).toBool());
dlg.setMaskHqLevel(settings.value(SETTING_GENERAL_MASK_HQ_LEVEL, false).toBool());
if (dlg.exec()) {
//設定更新
settings.setValue(QStringLiteral("path"), dlg.savePath());
settings.setValue(SETTING_GENERAL_UNUSED_TWITTER, dlg.unusedTwitter());
settings.setValue(SETTING_GENERAL_SAVE_PNG, dlg.savePng());
settings.setValue(SETTING_GENERAL_MASK_ADMIRAL_NAME, dlg.isMaskAdmiralName());
settings.setValue(SETTING_GENERAL_MASK_HQ_LEVEL, dlg.isMaskHqLevel());
}
});
//アバウト
connect(ui.about, &QAction::triggered, [this]() {
AboutDialog dlg(q);
dlg.setVersion(KANMEMO_VERSION);
dlg.setDevelopers(KANMEMO_DEVELOPERS);
dlg.exec();
});
//フルスクリーン
q->addAction(ui.actionFullScreen);
connect(ui.actionFullScreen, &QAction::triggered, [this]() {
if(q->isFullScreen()){
//フルスクリーン解除
q->setWindowState(q->windowState() ^ Qt::WindowFullScreen);
}else if(ui.webView->gameExists()){
//フルスクリーンじゃなくてゲームがある
//.........这里部分代码省略.........