/* * Copyright (C) 2009, 2010, 2013, 2015 Nicolas Bonnefon and other contributors * * This file is part of glogg. * * glogg 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 3 of the License, or * (at your option) any later version. * * glogg 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 glogg. If not, see . */ #include #include "log.h" #include "configuration.h" Configuration::Configuration() { // Should have some sensible default values. mainFont_ = QFont("monaco", 10); mainFont_.setStyleHint( QFont::Courier, QFont::PreferOutline ); mainRegexpType_ = ExtendedRegexp; quickfindRegexpType_ = FixedString; quickfindIncremental_ = true; #ifdef GLOGG_SUPPORTS_POLLING pollingEnabled_ = true; #else pollingEnabled_ = false; #endif pollIntervalMs_ = 2000; loadLastSession_ = true; overviewVisible_ = true; lineNumbersVisibleInMain_ = false; lineNumbersVisibleInFiltered_ = true; QFontInfo fi(mainFont_); LOG(logDEBUG) << "Default font is " << fi.family().toStdString(); searchAutoRefresh_ = false; searchIgnoreCase_ = false; } // Accessor functions QFont Configuration::mainFont() const { return mainFont_; } void Configuration::setMainFont( QFont newFont ) { LOG(logDEBUG) << "Configuration::setMainFont"; mainFont_ = newFont; } void Configuration::retrieveFromStorage( QSettings& settings ) { LOG(logDEBUG) << "Configuration::retrieveFromStorage"; // Fonts QString family = settings.value( "mainFont.family" ).toString(); int size = settings.value( "mainFont.size" ).toInt(); // If no config read, keep the default if ( !family.isNull() ) mainFont_ = QFont( family, size ); // Regexp types mainRegexpType_ = static_cast( settings.value( "regexpType.main", mainRegexpType_ ).toInt() ); quickfindRegexpType_ = static_cast( settings.value( "regexpType.quickfind", quickfindRegexpType_ ).toInt() ); if ( settings.contains( "quickfind.incremental" ) ) quickfindIncremental_ = settings.value( "quickfind.incremental" ).toBool(); // "Advanced" settings if ( settings.contains( "polling.enabled" ) ) pollingEnabled_ = settings.value( "polling.enabled" ).toBool(); if ( settings.contains( "polling.intervalMs" ) ) pollIntervalMs_ = settings.value( "polling.intervalMs" ).toInt(); if ( settings.contains( "session.loadLast" ) ) loadLastSession_ = settings.value( "session.loadLast" ).toBool(); // View settings if ( settings.contains( "view.overviewVisible" ) ) overviewVisible_ = settings.value( "view.overviewVisible" ).toBool(); if ( settings.contains( "view.lineNumbersVisibleInMain" ) ) lineNumbersVisibleInMain_ = settings.value( "view.lineNumbersVisibleInMain" ).toBool(); if ( settings.contains( "view.lineNumbersVisibleInFiltered" ) ) lineNumbersVisibleInFiltered_ = settings.value( "view.lineNumbersVisibleInFiltered" ).toBool(); // Some sanity check (mainly for people upgrading) if ( quickfindIncremental_ ) quickfindRegexpType_ = FixedString; // Default crawler settings if ( settings.contains( "defaultView.searchAutoRefresh" ) ) searchAutoRefresh_ = settings.value( "defaultView.searchAutoRefresh" ).toBool(); if ( settings.contains( "defaultView.searchIgnoreCase" ) ) searchIgnoreCase_ = settings.value( "defaultView.searchIgnoreCase" ).toBool(); } void Configuration::saveToStorage( QSettings& settings ) const { LOG(logDEBUG) << "Configuration::saveToStorage"; QFontInfo fi(mainFont_); settings.setValue( "mainFont.family", fi.family() ); settings.setValue( "mainFont.size", fi.pointSize() ); settings.setValue( "regexpType.main", static_cast( mainRegexpType_ ) ); settings.setValue( "regexpType.quickfind", static_cast( quickfindRegexpType_ ) ); settings.setValue( "quickfind.incremental", quickfindIncremental_ ); settings.setValue( "polling.enabled", pollingEnabled_ ); settings.setValue( "polling.intervalMs", pollIntervalMs_ ); settings.setValue( "session.loadLast", loadLastSession_); settings.setValue( "view.overviewVisible", overviewVisible_ ); settings.setValue( "view.lineNumbersVisibleInMain", lineNumbersVisibleInMain_ ); settings.setValue( "view.lineNumbersVisibleInFiltered", lineNumbersVisibleInFiltered_ ); settings.setValue( "defaultView.searchAutoRefresh", searchAutoRefresh_ ); settings.setValue( "defaultView.searchIgnoreCase", searchIgnoreCase_ ); }