示例#1
0
bool Settings::load(const char* settingsFile)
{
	GKeyFile* keyfile;
	GKeyFileFlags flags;
	GError* error = 0;

	keyfile = g_key_file_new();
	if(!keyfile)
		return false;
	flags = GKeyFileFlags( G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS);

	if( !g_key_file_load_from_file( keyfile, settingsFile, flags, &error ) )
	{
		g_key_file_free( keyfile );
		if (error) g_error_free(error);
		return false;
	}

	KEY_BOOLEAN("Debug","turnOnNovacomAtStart",m_turnNovacomOnAtStartup);
	KEY_BOOLEAN("Debug","saveLastBackedUpTempDb",m_saveLastBackedUpTempDb);
	KEY_BOOLEAN("Debug","saveLastRestoredTempDb",m_saveLastRestoredTempDb);
	KEY_STRING("Debug","logLevel",m_logLevel);

	KEY_BOOLEAN("ImageService","useComPalmImage2",m_useComPalmImage2);
	KEY_STRING("ImageService","comPalmImage2Binary",m_comPalmImage2BinaryFile);

    KEY_INTEGER("General", "schemaValidationOption", schemaValidationOption);

	g_key_file_free( keyfile );
	return true;
}
void DynamicsSettings::readSettings(const char* filePath)
{
    QString alphaTrAnimTypeName;
    GKeyFile* keyfile = g_key_file_new();

    if (!g_key_file_load_from_file(keyfile, filePath,
                                   G_KEY_FILE_NONE, NULL)) {
        goto Done;
    }

    KEY_UINTEGER("Animations","IconReorderIconMoveAnimTime",iconReorderIconMoveAnimTime);
    KEY_CURVE("Animations","IconReorderIconMoveAnimCurve",iconReorderIconMoveAnimCurve);

    KEY_UINTEGER("UserControl","IconReorderSampleRate",iconReorderSampleRate);
    if (iconReorderSampleRate == 0)
    {
        iconReorderSampleRate = 1;
    }

    KEY_BOOLEAN("Animations","AlwaysWaitForIconReorderAnimToFinish",alwaysWaitForIconReorderAnimToFinish);
    KEY_BOOLEAN("Animations","TrackedIconUseDistanceBasedAnimTime",iconReorderTrackedIconUseDistanceBasedAnimTime);
    KEY_UINTEGER("Animations","TrackedIconMinAnimTime",iconReorderTrackedIconMinAnimTime);

    KEY_BOOLEAN("Animations","UseAnimationForAlphaTrackedIconCancel",alphaIconMoveTrackedIconUseAnimation);
    KEY_QSTRING("Animations","AlphaTrackedIconCancelAnimationType",alphaTrAnimTypeName);
    if (!alphaTrAnimTypeName.isEmpty())
    {
        alphaIconMoveTrackedIconAnimType = animName2Type(alphaTrAnimTypeName);
    }
    KEY_UINTEGER("UserControl","PageScrollUnderIconMoveDelayMs",pageScrollDelayMs);
    KEY_UINTEGER("UserControl","PageVerticalAutoScrollAmountPx",pageScrollAmount);
    KEY_UINTEGER("Animations","PageVerticalAutoScrollAnimTime",pageScrollAnimTime);

    KEY_QREAL("IconRender","IconInstallModeOpacity",iconInstallModeOpacity);

    KEY_UINTEGER("Animations","AppInfoDialogFadeInAnimTime",appInfoDialogFadeInTime);
    KEY_UINTEGER("Animations","AppInfoDialogFadeOutAnimTime",appInfoDialogFadeOutTime);

    KEY_UINTEGER("UserControl","IconFeedbackTimeout", launchFeedbackTimeout);

    KEY_UINTEGER("UserControl","MaxVelocityForSampling",maxVelocityForSampling);
    KEY_UINTEGER("UserControl","VelocityTimeNormalizationUnit",timeNormalizationUnit);
    KEY_UINTEGER("UserControl","VelocityDistanceMagFactor",distanceMagFactor);

    KEY_UINTEGER("UserControl","PagePanForIconMoveDelayMs",pagePanForIconMoveDelayMs);
Done:

    if (keyfile) {
        g_key_file_free(keyfile);
    }
}
void StaticElementSettings::readSettings(const char* filePath)
{
    GKeyFile* keyfile = g_key_file_new();
    qint32 v = INT_MIN;
    qreal vf = 0.0;
	if (!g_key_file_load_from_file(keyfile, filePath,
								   G_KEY_FILE_NONE, NULL)) {
		goto Done;
	}


	KEY_BOOLEAN("HorizontalLabeledDivider",		"UseAlignmentGeom",
													horizLabeledDivider_useAlignmentGeom);
	KEY_UINTEGER("HorizontalLabeledDivider",	"AlignmentAbsoluteGeomSizeHeightPx",
													horizLabeledDivider_alignmentHeightPx);

Done:

	if (keyfile) {
		g_key_file_free(keyfile);
	}
}
void IconGeometrySettings::readSettings(const char* filePath)
{
    GKeyFile* keyfile = g_key_file_new();
    qint32 v = INT_MIN;
    qreal vf = 0.0;
	if (!g_key_file_load_from_file(keyfile, filePath,
								   G_KEY_FILE_NONE, NULL)) {
		goto Done;
	}

	KEY_BOOLEAN("Main","UseAbsoluteGeom",useAbsoluteGeom);
	KEYS_SIZE("Main","AbsoluteGeomSizeWidthPx",
								"AbsoluteGeomSizeHeightPx",
								absoluteGeomSizePx);

	KEY_BOOLEAN("Main","UseAbsoluteFrameGeom",useAbsoluteFrameGeom);
	KEYS_SIZE("Main",		"FrameAbsoluteGeomSizeWidthPx",
							"FrameAbsoluteGeomSizeHeightPx",
							frameBoxAbsoluteGeomSizePx);
	KEYS_SIZEF("Main",		"FrameBoxHorizontalProportionToTotalGeom",
							"FrameBoxVerticalProportionToTotalGeom",
							frameBoxProportionToGeom);

	KEY_BOOLEAN("Main","UseAbsoluteMainIconGeom",useAbsoluteMainIconGeom);
	KEYS_SIZE("Main",		"MainIconAbsoluteGeomSizeWidthPx",
							"MainIconAbsoluteGeomSizeHeightPx",
							mainIconBoxAbsoluteGeomSizePx);
	KEYS_SIZEF("Main",		"MainIconBoxHorizontalProportionToTotalGeom",
							"MainIconBoxVerticalProportionToTotalGeom",
							mainIconBoxProportionToGeom);

	KEY_BOOLEAN("Main","UseAlignmentGeom",useAlignmentGeom);
	KEYS_SIZE("Main",		"AlignmentAbsoluteGeomSizeWidthPx",
								"AlignmentAbsoluteGeomSizeHeightPx",
								alignmentGeomSizePx);

	KEY_BOOLEAN("Main","UseAbsoluteRemoveDeleteDecoratorGeom",useAbsoluteRemoveDeleteDecoratorGeom);
	KEYS_SIZE("Main",		"RemoveDeleteDecoratorBoxAbsoluteGeomWidthPx",
							"RemoveDeleteDecoratorBoxAbsoluteGeomHeightPx",
							removeDeleteDecoratorBoxAbsoluteGeomSizePx);
	KEYS_SIZEF("Main",		"RemoveDeleteDecoratorBoxHorizontalProportionToTotalGeom",
							"RemoveDeleteDecoratorBoxVerticalProportionToTotalGeom",
							removeDeleteDecoratorBoxProportionToGeom);
	KEY_BOOLEAN("Main","UseAbsoluteRemoveDeleteDecoratorOffsetFromGeomOrigin",useAbsoluteRemoveDeleteDecoratorOffsetFromGeomOrigin);
	KEYS_POINT("Main", "RemoveDeleteDecoratorHorizontalOffsetFromGeomOrigin",
					   "RemoveDeleteDecoratorVerticalOffsetFromGeomOrigin",
					   removeDeleteDecoratorOffsetFromGeomOriginPx);

	KEY_BOOLEAN("Main","UseAbsoluteInstallStatusDecoratorGeom",useAbsoluteInstallStatusDecoratorGeom);
	KEYS_SIZE("Main",		"InstallStatusDecoratorBoxAbsoluteGeomWidthPx",
							"InstallStatusDecoratorBoxAbsoluteGeomHeightPx",
							installStatusDecoratorBoxAbsoluteGeomSizePx);
	KEYS_SIZEF("Main",		"InstallStatusDecoratorBoxHorizontalProportionToTotalGeom",
							"InstallStatusDecoratorBoxVerticalProportionToTotalGeom",
							installStatusDecoratorBoxProportionToGeom);
	KEY_BOOLEAN("Main","UseAbsoluteInstallStatusDecoratorOffsetFromGeomOrigin",useAbsoluteInstallStatusDecoratorOffsetFromGeomOrigin);
	KEYS_POINT("Main", "InstallStatusDecoratorHorizontalOffsetFromGeomOrigin",
					   "InstallStatusDecoratorVerticalOffsetFromGeomOrigin",
					   installStatusDecoratorOffsetFromGeomOriginPx);

	KEY_BOOLEAN("Label",	"UseAbsoluteLabelBoxGeom",useAbsoluteLabelBoxGeom);
	KEYS_SIZE("Label",		"LabelBoxAbsoluteGeomWidthPx",
							"LabelBoxAbsoluteGeomHeightPx",
							labelBoxAbsoluteGeomSizePx);
	KEYS_SIZEF("Label",		"LabelBoxHorizontalProportionToTotalGeom",
							"LabelBoxVerticalProportionToTotalGeom",
							labelBoxProportionToGeom);

	KEY_UINTEGER("Label","LabelVerticalSpacingFromMainIcon",labelVerticalSpacingPx);

	KEY_UINTEGER("Label","FontSizePx",labelFontSizePx);
	KEY_COLOR("Label","FontColor",labelFontColor);
	KEY_BOOLEAN("Label","FontUsesBold",labelFontEmbolden);

	KEYS_SIZE("Decorators",	"EdgeOffsetHorizontalPx",
							"EdgeOffsetVerticalPx",
							decoratorEdgeOffsetPx);

	KEYS_POINT("Main","MainIconHorizontalOffsetFromGeomOriginPx",
					"MainIconVerticalOffsetFromGeomOriginPx",
					mainIconOffsetFromGeomOriginPx);

	KEYS_POINT("Main","FrameHorizontalOffsetFromGeomOriginPx",
					 "FrameVerticalOffsetFromGeomOriginPx",
					 frameOffsetFromGeomOriginPx);

Done:

	if (keyfile) {
		g_key_file_free(keyfile);
	}
}
示例#5
0
void Settings::load(const char* settingsFile)
{
	GKeyFile* keyfile;
	GKeyFileFlags flags;
	GError* error = 0;

	keyfile = g_key_file_new();
	if(!keyfile)
		return;
	flags = GKeyFileFlags( G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS);

	if( !g_key_file_load_from_file( keyfile, settingsFile, flags, &error ) )
	{
		g_key_file_free( keyfile );
		if (error) g_error_free(error);
		return ;
	}

	// Fill in with the macros above.
	KEY_STRING("General","ApplicationPath", lunaAppsPath );					// apps path can now be multiple paths, separated by :  (setenv PATH style)
	KEY_STRING("General","AppInstallBase", appInstallBase);	// due to all the churn surrounding moving of apps around, this is now a conf option
	KEY_STRING("General","AppInstallRelative", appInstallRelative);	// due to all the churn surrounding moving of apps around, this is now a conf option
//	KEY_STRING("General","PackageInstallBase", packageInstallBase);

	KEY_STRING("General","PackageInstallRelative", packageInstallRelative);

	KEY_STRING("General","DownloadPathMedia",downloadPathMedia);
	//validate path, reset to default if necessary
	if (!validateDownloadPath(downloadPathMedia)) {
		downloadPathMedia = "/media/internal/downloads";
	}

	KEY_STRING("General","AppInstallTemp",appInstallerTmp);

	KEY_STRING("General","SystemPath", lunaSystemPath );
	KEY_STRING("General","AppLauncherPath", lunaAppLauncherPath );
	KEY_STRING("General","SystemResourcesPath", lunaSystemResourcesPath );
	KEY_STRING("General","SystemLocalePath", lunaSystemLocalePath );
	KEY_STRING("General","PresetLaunchPointsPath",lunaPresetLaunchPointsPath);
	KEY_STRING("General","LaunchPointsPath", lunaLaunchPointsPath);
	KEY_STRING("General", "PreferencesPath", lunaPrefsPath);
	KEY_STRING("General","UiComponentsPath", lunaQmlUiComponentsPath );
	KEY_BOOLEAN("General", "ShowReticle", showReticle);

	KEY_INTEGER("General", "NotificationSoundDuration", notificationSoundDuration);

	KEY_INTEGER( "CoreNavi", "ThrobberBrightnessInLight", ledPulseMaxBrightness);
	KEY_INTEGER( "CoreNavi", "ThrobberBrightnessInDark", ledPulseDarkBrightness);
	KEY_BOOLEAN( "CoreNavi", "EnableLightBar", lightbarEnabled);
	KEY_INTEGER( "CoreNavi", "CoreNaviBrightnessScaler", coreNaviScaler);
	KEY_INTEGER( "CoreNavi", "GestureAnimationSpeedInMs", gestureAnimationSpeed);
    KEY_INTEGER( "CoreNavi", "HomeDoubleClickDuration", homeDoubleClickDuration);

	KEY_INTEGER( "Display", "BrightnessOutdoorScale", backlightOutdoorScale);
	KEY_INTEGER( "Display", "BrightnessDimScale", backlightDimScale);
	KEY_INTEGER( "Display", "BrightnessDarkScale", backlightDarkScale);

	KEY_BOOLEAN( "Display", "EnableALS", enableAls);
	KEY_BOOLEAN( "Display", "TurnOffAccelerometerWhenDimmed", turnOffAccelWhenDimmed);
	KEY_BOOLEAN( "Display", "DisableLocking", disableLocking);
	KEY_INTEGER( "Display", "LockScreenTimeoutMs", lockScreenTimeout);

	KEY_INTEGER( "Memory", "CardLimit", cardLimit );
	KEY_INTEGER( "General","DisplayWidth",displayWidth);
	KEY_INTEGER( "General","DisplayHeight",displayHeight);
	KEY_INTEGER( "General","DisplayNumBuffers", displayNumBuffers);
	KEY_INTEGER("General", "MaxPenMoveFreq", maxPenMoveFreq);
	KEY_INTEGER("General",  "MaxPaintLoad", maxPaintLoad);
	KEY_INTEGER("General", "MaxGestureChangeFreq", maxGestureChangeFreq);
	KEY_INTEGER("General", "MaxTouchChangeFreq", maxTouchChangeFreq);
	KEY_BOOLEAN( "Debug", "WatchPenEvents", debug_trackInputEvents );
	KEY_BOOLEAN( "Debug", "EnableDebugModeByDefault", debug_enabled );
	KEY_BOOLEAN( "Debug", "PiranhaDrawColoredOutlines", debug_piranhaDrawColoredOutlines);
	KEY_BOOLEAN( "Debug", "PiranhaDisplayFps", debug_piranhaDisplayFps);
	KEY_BOOLEAN( "Debug", "ShowGestures", debug_showGestures);

	KEY_BOOLEAN( "Debug", "DoVerboseCrashLogging", debug_doVerboseCrashLogging);
	KEY_BOOLEAN( "Debug", "LoopInCrashHandler", debug_loopInCrashHandler);
	KEY_INTEGER( "Debug", "AppInstallerCleaner",debug_appInstallerCleaner );
	KEY_STRING( "General", "CmdResourceHandlers", lunaCmdHandlerPath );
	KEY_STRING( "General", "CmdResourceHandlersActiveCopy", lunaCmdHandlerSavedPath);
	KEY_STRING( "Fonts", "Banner", fontBanner );
	KEY_STRING( "Fonts", "ActiveBanner", fontActiveBanner );
	KEY_STRING( "Fonts", "LockWindow", fontLockWindow );
	KEY_STRING( "Fonts", "DockMode", fontDockMode );
	KEY_STRING( "Fonts", "Quicklaunch", fontQuicklaunch );
	KEY_STRING( "Fonts", "StatusBar", fontStatusBar );
	KEY_STRING( "Fonts", "KeyboardKeys", fontKeyboardKeys );
	KEY_STRING( "Fonts", "StatusBar", fontStatusBar );

	KEY_INTEGER("TouchEvents", "TapRadiusMax", tapRadius);
	KEY_INTEGER("TouchEvents", "TapRadiusMin", tapRadiusMin);
	KEY_INTEGER("TouchEvents", "TapRadiusShrinkPerc", tapRadiusShrinkPercent);
	KEY_INTEGER("TouchEvents", "TapRadiusShrinkGranMs", tapRadiusShrinkGranMs);
    KEY_BOOLEAN("TouchEvents", "EnableForWebApps", enableTouchEventsForWebApps);

	tapRadiusSquared = tapRadius * tapRadius;

	KEY_INTEGER("TouchEvents", "DoubleClickDuration", tapDoubleClickDuration);
	// Clamp to sensible values
	if (tapDoubleClickDuration < 50)
		tapDoubleClickDuration = 50;
	else if (tapDoubleClickDuration > 2000)
		tapDoubleClickDuration = 2000;

	KEY_INTEGER("VTrackBall", "PixelsPerMoveH", h_trackball_pixels_per_move );
	KEY_INTEGER("VTrackBall", "PixelsPerMoveV", v_trackball_pixels_per_move );
	KEY_INTEGER("VTrackBall", "AccelRateH1", h_accel_rate1 );
	KEY_INTEGER("VTrackBall", "AccelRateV1", v_accel_rate1 );
	KEY_INTEGER("VTrackBall", "AccelConstH1", h_accel_const1 );
	KEY_INTEGER("VTrackBall", "AccelConstV1", v_accel_const1 );
	KEY_INTEGER("VTrackBall", "AccelRateH2", h_accel_rate2 );
	KEY_INTEGER("VTrackBall", "AccelRateV2", v_accel_rate2 );
	KEY_INTEGER("VTrackBall", "AccelConstH2", h_accel_const2 );
	KEY_INTEGER("VTrackBall", "AccelConstV2", v_accel_const2 );

	KEY_STRING("General", "QuickLaunchDefaultPositions", quicklaunchDefaultPositions );
#if defined(TARGET_DESKTOP)
	//If we don't have a home directory, we'll set it to /tmp. Otherwise, this does nothing.
	setenv("HOME", "/tmp", 0);
        const std::string homeFolder = getenv("HOME");
	quicklaunchUserPositions = homeFolder + "/.user-dock-positions.json";
#endif
	KEY_STRING("General", "QuickLaunchUserPositions", quicklaunchUserPositions );
	KEY_INTEGER( "General", "StatusBarTitleMaxWidth", statusBarTitleMaxWidth);

	KEY_BOOLEAN( "DockMode", "DockModePrelaunchAllApps", dockModePrelaunchAllApps);
	KEY_BOOLEAN( "DockMode", "DockModeCloseAppOnMinimize", dockModeCloseOnMinimize);
	KEY_BOOLEAN( "DockMode", "DockModeCloseAppsOnExit", dockModeCloseOnExit);
	KEY_INTEGER( "DockMode", "DockModeMaxApps", dockModeMaxApps);
	KEY_INTEGER( "DockMode", "DockModeNightBrightness", dockModeNightBrightness);
	KEY_INTEGER( "DockMode", "DockModeMenuHeight", dockModeMenuHeight);
	KEY_STRING("DockMode", "DockModeDefaultPositions", quicklaunchDefaultPositions );
#if defined(TARGET_DESKTOP)
	dockModeUserPositions = homeFolder + "/.user-dock-mode-launcher-positions.json";
#endif
	KEY_STRING("DockMode", "DockModeUserPositions", quicklaunchUserPositions );

	KEY_BOOLEAN( "VirtualKeyboard", "VirtualKeyboardEnabled", virtualKeyboardEnabled);

	KEY_BOOLEAN( "VirtualCoreNavi", "VirtualCoreNaviEnabled", virtualCoreNaviEnabled);
	KEY_INTEGER( "VirtualCoreNavi", "VirtualCoreNaviHeight", virtualCoreNaviHeight);

	KEY_DOUBLE("Launcher", "CardSideScrollSwipeThreshold", launcherSideSwipeThreshold);
	KEY_BOOLEAN("Launcher", "UseOGLHardwareAntialias", launcherUsesHwAA);
	KEY_INTEGER("Launcher", "LauncherItemRowSpacingAdjust",launcherRowSpacingAdjust);
	KEY_INTEGER("Launcher", "LauncherLabelWidthAdjust",launcherLabelWidthAdjust);
	KEY_INTEGER("Launcher", "LauncherLabelXPadding",launcherLabelXPadding);
	KEY_DOUBLE("Launcher","LauncherIconReorderPositionThreshold",launcherIconReorderPositionThreshold);

	KEY_BOOLEAN("UI", "DisplayUiRotates", displayUiRotates);
	KEY_BOOLEAN("UI", "TabletUi", tabletUi);
	KEY_INTEGER("UI", "HomeButtonOrientationAngle", homeButtonOrientationAngle);
	KEY_INTEGER("UI", "EmuModeOrientationAngle", emuModeOrientationAngle);
	KEY_INTEGER("UI", "PositiveSpaceTopPadding", positiveSpaceTopPadding);
	KEY_INTEGER("UI", "PositiveSpaceBottomPadding", positiveSpaceBottomPadding);
	KEY_DOUBLE("UI", "MaximumNegativeSpaceHeightRatio", maximumNegativeSpaceHeightRatio);
	KEY_DOUBLE("UI", "ActiveCardWindowRatio", activeCardWindowRatio);
	KEY_DOUBLE("UI", "NonActiveCardWindowRatio", nonActiveCardWindowRatio);
	KEY_DOUBLE("UI", "GhostCardFinalRatio", ghostCardFinalRatio);
	KEY_INTEGER("UI", "CardGroupRotFactor", cardGroupRotFactor);
	KEY_INTEGER("UI", "GapBetweenCardGroups", gapBetweenCardGroups);
	KEY_INTEGER("UI", "OverlayNotificationsHeight", overlayNotificationsHeight);
	KEY_INTEGER("UI", "SplashIconSize", splashIconSize);
	KEY_BOOLEAN("UI", "EnableSplashBackgrounds", enableSplashBackgrounds);
	KEY_BOOLEAN("UI", "AtlasEnabled", atlasEnabled);

	KEY_INTEGER("UI", "EmulatedCardWidth", emulatedCardWidth);
	KEY_INTEGER("UI", "EmulatedCardHeight", emulatedCardHeight);
	KEY_INTEGER("UI", "ModalWindowWidth", modalWindowWidth);
	KEY_INTEGER("UI", "ModalWindowHeight", modalWindowHeight);

	KEY_DOUBLE("UI", "CardGroupingXDistanceFactor", cardGroupingXDistanceFactor);
    KEY_DOUBLE("UI", "CardDimmPercentage", cardDimmPercentage);

	KEY_INTEGER("UI", "AtlasMemThreshold", atlasMemThreshold);
	KEY_BOOLEAN("Debug", "LauncherAtlasStatistics", launcherAtlasStatistics);
	KEY_BOOLEAN("Debug", "DumpLauncherAtlas", launcherDumpAtlas);
	if (forceSoftwareRendering) {
		atlasEnabled = false;
		launcherAtlasStatistics = false;
	} else if (atlasEnabled && atlasMemThreshold > 0 && MeasureTotalRAM() < atlasMemThreshold * 1024) {
		g_message("Atlas disabled because physical memory below %dMB threshold\n", atlasMemThreshold);
		atlasEnabled = false;
	}

	KEY_INTEGER("DownloadManager", "MaxQueueLength", maxDownloadManagerQueueLength);
	KEY_INTEGER("DownloadManager", "MaxConcurrent", maxDownloadManagerConcurrent);
	KEY_INTEGER("DownloadManager", "MaxRecvSpeed", maxDownloadManagerRecvSpeed);

	KEY_STRING( "Demo", "GestureRepeaterIp", cesGestureRepeaterIp );
	KEY_INTEGER( "Demo", "GestureRepeaterPort", cesGestureRepeaterPort );
	KEY_BOOLEAN( "Demo", "EnableGestureRepeater", enableGestureRepeater );

	KEY_BOOLEAN( "Demo", "DemoMode", demoMode );

	KEY_BOOLEAN( "Debug", "ShowAppStats", showAppStats );

	KEY_BOOLEAN( "General", "CollectUseStats", collectUseStats );

	KEY_BOOLEAN( "General" , "UsePartialKeywordMatchForAppSearch",usePartialKeywordAppSearch);
	KEY_BOOLEAN( "General" , "ScanCalculatesAppSizes",scanCalculatesAppSizes);

	KEY_INTEGER("KeepAlive", "MaxParked", maxNumParkedApps );

	KEY_INTEGER("CpuShare", "UiMainLow", uiMainCpuShareLow);
	KEY_INTEGER("CpuShare", "UiOtherLow", uiOtherCpuShareLow);
	KEY_INTEGER("CpuShare", "JavaLow", javaCpuShareLow);
	KEY_INTEGER("CpuShare", "WebLow", webCpuShareLow);
	KEY_INTEGER("CpuShare", "GameLow", gameCpuShareLow);
	KEY_INTEGER("CpuShare", "Default", cpuShareDefault);

	KEY_BOOLEAN("AllowTurboMode", "General", allowTurboMode);

	KEY_STRING( "General", "WifiInterfaceName", wifiInterfaceName );
	KEY_STRING( "General", "WanInterfaceName", wanInterfaceName );

	KEY_BOOLEAN( "Memory", "CanRestartHeadlessApps", canRestartHeadlessApps );
	KEY_BOOLEAN( "Debug", "PerformanceLogs", perfTesting);

    KEY_INTEGER("General", "schemaValidationOption", schemaValidationOption);


	// apps to launch at boot time

	gchar** appsToLaunchAtBootStr =   g_key_file_get_string_list(keyfile, "LaunchAtBoot",
																 "Applications", NULL, NULL);
	if (appsToLaunchAtBootStr) {

		int index = 0;
		appsToLaunchAtBoot.clear();
		while (appsToLaunchAtBootStr[index]) {
			appsToLaunchAtBoot.insert(appsToLaunchAtBootStr[index]);
			SETTINGS_TRACE("App to launch at boot time: %s\n", appsToLaunchAtBootStr[index]);
			++index;
		}

		g_strfreev(appsToLaunchAtBootStr);
	}

	// apps to keep alive
	gchar** appsToKeepAliveStr =   g_key_file_get_string_list(keyfile, "KeepAlive",
																 "Applications", NULL, NULL);
	if (appsToKeepAliveStr) {

		int index = 0;
		appsToKeepAlive.clear();
		while (appsToKeepAliveStr[index]) {
			appsToKeepAlive.insert(appsToKeepAliveStr[index]);
			SETTINGS_TRACE("App to keep alive: %s\n", appsToKeepAliveStr[index]);
			++index;
		}

		g_strfreev(appsToKeepAliveStr);
	}

	// apps to keep alive forever (pinned)
	gchar** appsToKeepAliveForeverStr =   g_key_file_get_string_list(keyfile, "KeepAliveUntilMemPressure",
																 "Applications", NULL, NULL);
	if (appsToKeepAliveForeverStr) {

		int index = 0;
		appsToKeepAliveUntilMemPressure.clear();
		while (appsToKeepAliveForeverStr[index]) {
			appsToKeepAliveUntilMemPressure.insert(appsToKeepAliveForeverStr[index]);
			SETTINGS_TRACE("App to keep alive until memory pressure: %s\n", appsToKeepAliveForeverStr[index]);
			++index;
		}

		g_strfreev(appsToKeepAliveForeverStr);
	}

	// apps to allow under low memory conditions
	gchar** appsToAllowInLowMemoryStr = g_key_file_get_string_list(keyfile, "Memory",
																   "AppsToAllowInLowMemory", NULL, NULL);
	if (appsToAllowInLowMemoryStr) {

		int index = 0;
		appsToAllowInLowMemory.clear();
		while (appsToAllowInLowMemoryStr[index]) {
			appsToAllowInLowMemory.insert(appsToAllowInLowMemoryStr[index]);
			g_message("App to allow in Low memory: %s", appsToAllowInLowMemoryStr[index]);
			++index;
		}

		g_strfreev(appsToAllowInLowMemoryStr);
	}

	// apps with accelerated compositing disabled
	gchar** appsToDisableAccelCompositingStr = g_key_file_get_string_list(keyfile, "AccelCompositingDisabled",
											"Applications", NULL, NULL);
	if (appsToDisableAccelCompositingStr) {
		int index = 0;
		appsToDisableAccelCompositing.clear();
		while (appsToDisableAccelCompositingStr[index]) {
			appsToDisableAccelCompositing.insert(appsToDisableAccelCompositingStr[index]);
			SETTINGS_TRACE("App with accelerated compositing disabled: %s\n", appsToDisableAccelCompositingStr[index]);
			++index;
		}

		g_strfreev(appsToDisableAccelCompositingStr);
	}

	// SUC apps that have special launch privs
	gchar** sucAppsList =   g_key_file_get_string_list(keyfile, "SUCApps",
			"Applications", NULL, NULL);
	if (sucAppsList) {

		int index = 0;
		sucApps.clear();
		while (sucAppsList[index]) {
			sucApps.insert(sucAppsList[index]);
			SETTINGS_TRACE("SUC App with special launch priviledge: %s\n", sucAppsList[index]);
			++index;
		}

		g_strfreev(sucAppsList);
	}

	// ...

	g_key_file_free( keyfile );

	// sanity check on the homeButtonOrientationAngle value:

	if(homeButtonOrientationAngle >= 360)
		homeButtonOrientationAngle = homeButtonOrientationAngle%360;

	if(homeButtonOrientationAngle < -90)
		homeButtonOrientationAngle += 360;

	if((homeButtonOrientationAngle != 0) && (homeButtonOrientationAngle != 90) &&
	   (homeButtonOrientationAngle != 180) && (homeButtonOrientationAngle != 270) &&
	   (homeButtonOrientationAngle != -90))
		homeButtonOrientationAngle = 0;

	// sanity check on the emuModeOrientationAngle value:

	if(emuModeOrientationAngle >= 360)
		emuModeOrientationAngle = emuModeOrientationAngle%360;

	if(emuModeOrientationAngle < -90)
		emuModeOrientationAngle += 360;

	if((emuModeOrientationAngle != 0) && (emuModeOrientationAngle != 90) &&
	   (emuModeOrientationAngle != 180) && (emuModeOrientationAngle != 270) &&
	   (emuModeOrientationAngle != -90))
		emuModeOrientationAngle = 0;

}
示例#6
0
void LayoutSettings::load(const char* settingsFile)
{
	GKeyFile* keyfile;
	GKeyFileFlags flags;
	GError* error = 0;

	keyfile = g_key_file_new();
	if(!keyfile)
		return;
	flags = GKeyFileFlags( G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS);

	if( !g_key_file_load_from_file( keyfile, settingsFile, flags, &error ) )
	{
		g_key_file_free( keyfile );
		if (error) g_error_free(error);
		return ;
	}

	KEYS_SIZEF("Main", "launcherWidthPctScreenRelative","launcherHeighPctScreenRelative",launcherSizePctScreenRelative);
	KEY_INTEGER("Main","centerUiVerticalOffset",centerUiVerticalOffset);
	KEY_INTEGER("Main","searchPillWidth",searchPillWidth);
	KEY_INTEGER("Main","searchPillInnerIconRightOffset",searchPillInnerIconRightOffset);
	KEY_INTEGER("Main","searchPillTopOffsetFromStatusBar",searchPillTopOffsetFromStatusBar);
	KEYS_POINT("Main","searchPillInnerTextHorizAdjust","searchPillInnerTextVertAdjust",searchPillInnerTextAdjust);
	KEY_BOOLEAN("Main","openglHatesOddNumbers",openglHatesOddNumbers);

	KEY_BOOLEAN("Tabs","tabBarUseAbsoluteSize",tabBarUseAbsoluteSize);
	KEYS_SIZEF("Tabs", "tabBarWidthPctLauncherRelative","tabBarHeightPctLauncherRelative",tabBarSizePctLauncherRelative);
	KEY_INTEGER("Tabs","tabBarHeightAbsolute",tabBarHeightAbsolute);
	KEY_INTEGER("Tabs","tabBarTabFontSizePx",tabBarTabFontSizePx);
	KEY_BOOLEAN("Tabs","tabBarTabFontEmbolden",tabBarTabFontEmbolden);
	KEY_COLOR("Tabs","tabBarSelectedTabFontColor",tabBarSelectedTabFontColor);
	KEY_COLOR("Tabs","tabBarUnSelectedTabFontColor",tabBarUnSelectedTabFontColor);
	KEY_INTEGER("Tabs","tabTextVerticalPosAdjust",tabTextVerticalPosAdjust);

	KEY_INTEGER("DoneButton","doneButtonFontSizePx",doneButtonFontSizePx);
	KEY_BOOLEAN("DoneButton","doneButtonFontEmbolden",doneButtonFontEmbolden);
	KEY_COLOR("DoneButton","doneButtonFontColor",doneButtonFontColor);
	KEY_INTEGER("DoneButton","doneButtonTextVerticalPosAdjust",doneButtonTextVerticalPosAdjust);
	KEYS_POINT("DoneButton",
			"doneButtonHorizontalPositionAdjustPx",
			"doneButtonVerticalPositionAdjustPx",
			doneButtonPositionAdjust);
	KEYS_SIZEF("Pages","pageWidthPctLauncherRelative","pageHeightPctLauncherRelative",pageSizePctLauncherRelative);
	KEY_BOOLEAN("Pages","autoPageSize",autoPageSize);

	KEYS_SIZE("Pages","pageLeftBorderActivationSizePx","pageRightBorderActivationSizePx",pageHorizontalBorderActivationAreaSizePx);
	KEYS_SIZE("Pages","pageTopActivationSizePx","pageBottomActivationSizePx",pageVerticalBorderActivationAreaSizePx);

	KEY_INTEGER("Pages","pageTopBorderActivationTimeoutMs",pageTopBorderActivationTimeoutMs);
	KEY_INTEGER("Pages","pageBottomBorderActivationTimeoutMs",pageBottomBorderActivationTimeoutMs);
	KEY_INTEGER("Pages","pageLeftBorderActivationTimeoutMs",pageLeftBorderActivationTimeoutMs);
	KEY_INTEGER("Pages","pageRightBorderActivationTimeoutMs",pageRightBorderActivationTimeoutMs);

	KEY_BOOLEAN("QuickLaunch","quickLaunchBarUseAbsoluteSize",quickLaunchBarUseAbsoluteSize);
	KEYS_SIZEF("QuickLaunch","quickLaunchBarWidthPctScreenRelative","quickLaunchBarHeightPctScreenRelative",quickLaunchBarSizePctScreenRelative);
	KEY_INTEGER("QuickLaunch","quickLaunchBarHeightAbsolute",quickLaunchBarHeightAbsolute);
	KEYS_POINT("QuickLaunch","quickLaunchBarLauncherAccessButtonHorizontalOffsetPx",
							"quickLaunchBarLauncherAccessButtonVerticalOffsetPx",
							quickLaunchBarLauncherAccessButtonOffsetPx);
	KEYS_POINT("QuickLaunch","quickLaunchItemAreaHorizontalOffsetPx",
							"quickLaunchItemAreaVerticalOffsetPx",
							quickLaunchItemAreaOffsetPx);
	KEY_INTEGER("QuickLaunch","quickLaunchMaxItems",quickLaunchMaxItems);

	KEYS_POINT("Icons","iconVisibleLocationHorizontalOffsetPx","iconVisibleLocationVerticalOffsetPx",iconVisibleLocationOffsetPx);

	g_key_file_free( keyfile );
}
void OperationalSettings::readSettings(const char* filePath)
{
    GKeyFile* keyfile = g_key_file_new();
    qint32 v = INT_MIN;
    qreal vf = 0.0;
	if (!g_key_file_load_from_file(keyfile, filePath,
								   G_KEY_FILE_NONE, NULL)) {
		goto Done;
	}

	KEY_QSTRING("Main","StartOnPageDesignated",startOnPageDesignated);
	KEY_QSTRING("Main","ReturnToPageDesignatedOnHide",returnToDesignatorOnHide);
	KEY_QSTRING("Main","SavedPagesDirectory",savedPagesDirectory);
	KEY_QSTRING("Main","AppBlacklistFilepath",appBlacklistFilepath);
	KEY_BOOLEAN("Main","ForceFavoritesToAllContent",forceFavoritesToAllContent);
	KEY_BOOLEAN("Main","UseAllContentInsteadOfEmptyFavorites",useAllContentInsteadOfEmptyFavorites);
	KEY_BOOLEAN("Main","ForceSaveOnHide",forceSaveOnHide);
	KEY_BOOLEAN("Main","UsePreciseTimeForMasterFilename",usePreciseTimeForMasterSaveFileName);
	KEY_BOOLEAN("Main","UseSingleMasterFilename",useSingleMasterSaveFileName);
	KEY_BOOLEAN("Main","UseApplicationManagerHiddenFlag",useApplicationManagerHiddenFlag);
	KEY_BOOLEAN("Main","UseStagedRendering",useStagedRendering);
	KEY_QSTRING("Main","AppKeywordsToPageDesignatorMapFilepath",appKeywordsToPageDesignatorMapFilepath);
	KEY_BOOLEAN("Main","UseSingleQuicklaunchSaveFilename",useSingleQuicklaunchSaveFileName);
	KEY_UINTEGER("Main","FavoritesPageIndex",favoritesPageIndex);
	KEY_UINTEGER("Main","InstalledAppsPageIndex",installedAppsPageIndex);
	KEY_QSTRING("Main","AppCatalogAppId",appCatalogAppId);
	KEY_UINTEGER("Main","SettingsPageIndex",settingsPageIndex);
	KEY_QSTRING("Main","SettingsAppCategoryDesignator",settingsAppCategoryDesignator);
	KEY_UINTEGER("Main","SystemAppsPageIndex",systemAppsPageIndex);
	KEY_BOOLEAN("Main","PreferAppKeywordsForAppPlacement",preferAppKeywordsForAppPlacement);
	KEY_BOOLEAN("Main","UseDynamicMultiPageInitialConfigurator",useDynamicMultiPageInitialConfigurator);
	KEY_BOOLEAN("Main","AllowedToLaunchInReorderMode",allowedToLaunchInReorderMode);
	KEY_BOOLEAN("Main","IgnoreLegacyCustomizationFiles",ignoreLegacyCustomizationFiles);
	KEY_BOOLEAN("Main","SafeLauncherBoot",safeLauncherBoot);
	KEY_QSTRING("Debug","LogDirPath",logDirPath);
	KEY_QSTRING("Debug","ArchiverExeFilename",archiverExeFilename);

	verify();
Done:

	if (keyfile) {
		g_key_file_free(keyfile);
	}
}