diff options
Diffstat (limited to 'krita/ui/kis_config.cc')
-rw-r--r-- | krita/ui/kis_config.cc | 442 |
1 files changed, 442 insertions, 0 deletions
diff --git a/krita/ui/kis_config.cc b/krita/ui/kis_config.cc new file mode 100644 index 00000000..b233a1eb --- /dev/null +++ b/krita/ui/kis_config.cc @@ -0,0 +1,442 @@ +/* + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#include <limits.h> + +#include <kglobalsettings.h> +#include <kconfig.h> +#include <kglobal.h> +#include <kdebug.h> +#include <config.h> + +#include LCMS_HEADER + +#include "kis_global.h" +#include "kis_config.h" + +namespace { + const double IMG_DEFAULT_RESOLUTION = 100.0; + const Q_INT32 IMG_DEFAULT_WIDTH = 512; + const Q_INT32 IMG_DEFAULT_HEIGHT = 512; + const enumCursorStyle DEFAULT_CURSOR_STYLE = CURSOR_STYLE_OUTLINE; + const Q_INT32 DEFAULT_MAX_THREADS = 4; + const Q_INT32 DEFAULT_MAX_TILES_MEM = 500; // 8192 kilobytes given 64x64 tiles with 32bpp + const Q_INT32 DEFAULT_SWAPPINESS = 100; + const Q_INT32 DEFAULT_PRESSURE_CORRECTION = 50; + const Q_INT32 DEFAULT_DOCKABILITY = 0; + const Q_INT32 DEFAULT_UNDO_LIMIT = 50; +} + +KisConfig::KisConfig() +{ + + m_cfg = KGlobal::config(); + if (!m_cfg) { + // Allow unit tests to test parts of the code without having to run the + // full application. + m_cfg = new KConfig(); + } + m_cfg->setGroup(""); +} + +KisConfig::~KisConfig() +{ + m_cfg->sync(); +} + + +bool KisConfig::fixDockerWidth() const +{ + return m_cfg->readBoolEntry("fixDockerWidth", true); +} + +void KisConfig::setFixedDockerWidth(bool fix) +{ + m_cfg->writeEntry("fixDockerWidth", fix); +} + +bool KisConfig::undoEnabled() const +{ + return m_cfg->readBoolEntry("undoEnabled", true); +} + +void KisConfig::setUndoEnabled(bool undo) +{ + m_cfg->writeEntry("undoEnabled", undo); +} + + +Q_INT32 KisConfig::defUndoLimit() const +{ + return m_cfg->readNumEntry("undolimit", DEFAULT_UNDO_LIMIT); +} + +void KisConfig::defUndoLimit(Q_INT32 limit) +{ + m_cfg->writeEntry("undolimit", limit); +} + +Q_INT32 KisConfig::defImgWidth() const +{ + return m_cfg->readNumEntry("imgWidthDef", IMG_DEFAULT_WIDTH); +} + +Q_INT32 KisConfig::defImgHeight() const +{ + return m_cfg->readNumEntry("imgHeightDef", IMG_DEFAULT_HEIGHT); +} + +double KisConfig::defImgResolution() const +{ + return m_cfg->readDoubleNumEntry("imgResolutionDef", IMG_DEFAULT_RESOLUTION); +} + +void KisConfig::defImgWidth(Q_INT32 width) +{ + m_cfg->writeEntry("imgWidthDef", width); +} + +void KisConfig::defImgHeight(Q_INT32 height) +{ + m_cfg->writeEntry("imgHeightDef", height); +} + +void KisConfig::defImgResolution(double res) +{ + m_cfg->writeEntry("imgResolutionDef", res); +} + +enumCursorStyle KisConfig::cursorStyle() const +{ + return (enumCursorStyle) m_cfg->readNumEntry("cursorStyleDef", DEFAULT_CURSOR_STYLE); +} + +enumCursorStyle KisConfig::getDefaultCursorStyle() const +{ + return DEFAULT_CURSOR_STYLE; +} + +void KisConfig::setCursorStyle(enumCursorStyle style) +{ + m_cfg->writeEntry("cursorStyleDef", style); +} + + +QString KisConfig::monitorProfile() const +{ + return m_cfg->readEntry("monitorProfile", ""); +} + +void KisConfig::setMonitorProfile(QString monitorProfile) +{ + m_cfg->writeEntry("monitorProfile", monitorProfile); +} + + +QString KisConfig::workingColorSpace() const +{ + return m_cfg->readEntry("workingColorSpace", "RGBA"); +} + +void KisConfig::setWorkingColorSpace(QString workingColorSpace) +{ + m_cfg->writeEntry(workingColorSpace, workingColorSpace); +} + + +QString KisConfig::printerColorSpace() const +{ + return m_cfg->readEntry("printerColorSpace", "CMYK"); +} + +void KisConfig::setPrinterColorSpace(QString printerColorSpace) +{ + m_cfg->writeEntry("printerColorSpace", printerColorSpace); +} + + +QString KisConfig::printerProfile() const +{ + return m_cfg->readEntry("printerProfile", ""); +} + +void KisConfig::setPrinterProfile(QString printerProfile) +{ + m_cfg->writeEntry("printerProfile", printerProfile); +} + + +bool KisConfig::useBlackPointCompensation() const +{ + return m_cfg->readBoolEntry("useBlackPointCompensation", false); +} + +void KisConfig::setUseBlackPointCompensation(bool useBlackPointCompensation) +{ + m_cfg->writeEntry("useBlackPointCompensation", useBlackPointCompensation); +} + + +bool KisConfig::showRulers() const +{ + return m_cfg->readBoolEntry("showrulers", false); +} + +void KisConfig::setShowRulers(bool rulers) +{ + m_cfg->writeEntry("showrulers", rulers); +} + + +Q_INT32 KisConfig::pasteBehaviour() const +{ + return m_cfg->readNumEntry("pasteBehaviour", 2); +} + +void KisConfig::setPasteBehaviour(Q_INT32 renderIntent) +{ + m_cfg->writeEntry("pasteBehaviour", renderIntent); +} + + +Q_INT32 KisConfig::renderIntent() const +{ + return m_cfg->readNumEntry("renderIntent", INTENT_PERCEPTUAL); +} + +void KisConfig::setRenderIntent(Q_INT32 renderIntent) +{ + m_cfg->writeEntry("renderIntent", renderIntent); +} + +bool KisConfig::useOpenGL() const +{ + return m_cfg->readBoolEntry("useOpenGL", false); +} + +void KisConfig::setUseOpenGL(bool useOpenGL) +{ + m_cfg->writeEntry("useOpenGL", useOpenGL); +} + +bool KisConfig::useOpenGLShaders() const +{ + return m_cfg->readBoolEntry("useOpenGLShaders", false); +} + +void KisConfig::setUseOpenGLShaders(bool useOpenGLShaders) +{ + m_cfg->writeEntry("useOpenGLShaders", useOpenGLShaders); +} + +Q_INT32 KisConfig::maxNumberOfThreads() +{ + return m_cfg->readNumEntry("maxthreads", DEFAULT_MAX_THREADS); +} + +void KisConfig::setMaxNumberOfThreads(Q_INT32 maxThreads) +{ + m_cfg->writeEntry("maxthreads", maxThreads); +} + +Q_INT32 KisConfig::maxTilesInMem() const +{ + return m_cfg->readNumEntry("maxtilesinmem", DEFAULT_MAX_TILES_MEM); +} + +void KisConfig::setMaxTilesInMem(Q_INT32 tiles) +{ + m_cfg->writeEntry("maxtilesinmem", tiles); +} + +Q_INT32 KisConfig::swappiness() const +{ + return m_cfg->readNumEntry("swappiness", DEFAULT_SWAPPINESS); +} + +void KisConfig::setSwappiness(Q_INT32 swappiness) +{ + m_cfg->writeEntry("swappiness", swappiness); +} + +Q_INT32 KisConfig::getPressureCorrection() +{ + return m_cfg->readNumEntry( "pressurecorrection", DEFAULT_PRESSURE_CORRECTION ); +} + +void KisConfig::setPressureCorrection( Q_INT32 correction ) +{ + m_cfg->writeEntry( "pressurecorrection", correction ); +} + +Q_INT32 KisConfig::getDefaultPressureCorrection() +{ + return DEFAULT_PRESSURE_CORRECTION; +} + +bool KisConfig::tabletDeviceEnabled(const QString& tabletDeviceName) const +{ + return m_cfg->readBoolEntry("TabletDevice" + tabletDeviceName + "Enabled", false); +} + +void KisConfig::setTabletDeviceEnabled(const QString& tabletDeviceName, bool enabled) +{ + m_cfg->writeEntry("TabletDevice" + tabletDeviceName + "Enabled", enabled); +} + +Q_INT32 KisConfig::tabletDeviceAxis(const QString& tabletDeviceName, const QString& axisName, Q_INT32 defaultAxis) const +{ + return m_cfg->readNumEntry("TabletDevice" + tabletDeviceName + axisName, defaultAxis); +} + +void KisConfig::setTabletDeviceAxis(const QString& tabletDeviceName, const QString& axisName, Q_INT32 axis) const +{ + m_cfg->writeEntry("TabletDevice" + tabletDeviceName + axisName, axis); +} + +void KisConfig::setDockability( Q_INT32 dockability ) +{ + m_cfg->writeEntry( "palettesdockability", dockability ); +} + +Q_INT32 KisConfig::dockability() +{ + return m_cfg->readNumEntry("palettesdockability", DEFAULT_DOCKABILITY); +} + +Q_INT32 KisConfig::getDefaultDockability() +{ + return DEFAULT_DOCKABILITY; +} + +float KisConfig::dockerFontSize() +{ + return (float) m_cfg->readNumEntry("palettefontsize", (int)getDefaultDockerFontSize()); +} + +float KisConfig::getDefaultDockerFontSize() +{ + float ps = QMIN(9, KGlobalSettings::generalFont().pointSize() * 0.8); + if (ps < 6) ps = 6; + return ps; +} + +void KisConfig::setDockerFontSize(float size) +{ + m_cfg->writeEntry("palettefontsize", size); +} + +Q_UINT32 KisConfig::getGridMainStyle() +{ + Q_UINT32 v = m_cfg->readNumEntry("gridmainstyle", 0); + if (v > 2) + v = 2; + return v; +} + +void KisConfig::setGridMainStyle(Q_UINT32 v) +{ + m_cfg->writeEntry("gridmainstyle", v); +} + +Q_UINT32 KisConfig::getGridSubdivisionStyle() +{ + Q_UINT32 v = m_cfg->readNumEntry("gridsubdivisionstyle", 1); + if (v > 2) v = 2; + return v; +} + +void KisConfig::setGridSubdivisionStyle(Q_UINT32 v) +{ + m_cfg->writeEntry("gridsubdivisionstyle", v); +} + +QColor KisConfig::getGridMainColor() +{ + return m_cfg->readColorEntry("gridmaincolor", new QColor(99,99,99)); +} + +void KisConfig::setGridMainColor(QColor v) +{ + m_cfg->writeEntry("gridmaincolor", v); +} + +QColor KisConfig::getGridSubdivisionColor() +{ + return m_cfg->readColorEntry("gridsubdivisioncolor", new QColor(150,150,150)); +} + +void KisConfig::setGridSubdivisionColor(QColor v) +{ + m_cfg->writeEntry("gridsubdivisioncolor", v); +} + +Q_UINT32 KisConfig::getGridHSpacing() +{ + Q_INT32 v = m_cfg->readNumEntry("gridhspacing", 10); + return (Q_UINT32)QMAX(1, v ); +} + +void KisConfig::setGridHSpacing(Q_UINT32 v) +{ + m_cfg->writeEntry("gridhspacing", v); +} + +Q_UINT32 KisConfig::getGridVSpacing() +{ + Q_INT32 v = m_cfg->readNumEntry("gridvspacing", 10); + return (Q_UINT32)QMAX(1, v ); +} + +void KisConfig::setGridVSpacing(Q_UINT32 v) +{ + m_cfg->writeEntry("gridvspacing", v); +} + +Q_UINT32 KisConfig::getGridSubdivisions() +{ + Q_INT32 v = m_cfg->readNumEntry("gridsubsivisons", 2); + return (Q_UINT32)QMAX(1, v ); +} + +void KisConfig::setGridSubdivisions(Q_UINT32 v) +{ + return m_cfg->writeEntry("gridsubsivisons", v); +} + +Q_UINT32 KisConfig::getGridOffsetX() +{ + Q_INT32 v = m_cfg->readNumEntry("gridoffsetx", 0); + return (Q_UINT32)QMAX(0, v ); +} + +void KisConfig::setGridOffsetX(Q_UINT32 v) +{ + m_cfg->writeEntry("gridoffsetx", v); +} + +Q_UINT32 KisConfig::getGridOffsetY() +{ + Q_INT32 v = m_cfg->readNumEntry("gridoffsety", 0); + return (Q_UINT32)QMAX(0, v ); +} + +void KisConfig::setGridOffsetY(Q_UINT32 v) +{ + m_cfg->writeEntry("gridoffsety", v); +} + |