mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-24 10:52:53 +00:00
149 lines
5.5 KiB
C++
149 lines
5.5 KiB
C++
/***************************************************************************
|
|
* KSystemLog, a system log viewer tool *
|
|
* Copyright (C) 2007 by Nicolas Ternisien *
|
|
* nicolas.ternisien@gmail.com *
|
|
* *
|
|
* 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 "generalConfigurationWidget.h"
|
|
|
|
|
|
#include <QCheckBox>
|
|
#include <QPushButton>
|
|
#include <QButtonGroup>
|
|
|
|
#include <klocale.h>
|
|
#include <kiconloader.h>
|
|
#include <kstandarddirs.h>
|
|
|
|
#include "logging.h"
|
|
#include "defaults.h"
|
|
#include "globals.h"
|
|
#include "ksystemlogConfig.h"
|
|
|
|
class GeneralConfigurationWidgetPrivate {
|
|
public:
|
|
QButtonGroup* dateFormatGroup;
|
|
};
|
|
|
|
GeneralConfigurationWidget::GeneralConfigurationWidget() :
|
|
QWidget(),
|
|
d(new GeneralConfigurationWidgetPrivate())
|
|
{
|
|
|
|
setupUi(this);
|
|
|
|
startupLogMode->addItem(KIcon( QLatin1String( NO_MODE_ICON) ), i18n("No Log Mode"), QVariant(QLatin1String( "" ) ));
|
|
foreach(LogMode* logMode, Globals::instance()->logModes()) {
|
|
//Ignore this special case
|
|
if (logMode->id() == QLatin1String( "openLogMode" ))
|
|
continue;
|
|
|
|
startupLogMode->addItem(KIcon(logMode->icon()), logMode->name(), QVariant(logMode->id()));
|
|
}
|
|
|
|
connect(startupLogMode, SIGNAL(currentIndexChanged(int)), this, SIGNAL(configurationChanged()));
|
|
|
|
connect(maxLines, SIGNAL(valueChanged(int)), this, SIGNAL(configurationChanged()));
|
|
|
|
connect(deleteDuplicatedLines, SIGNAL(clicked()), this, SIGNAL(configurationChanged()));
|
|
|
|
connect(deleteProcessId, SIGNAL(clicked()), this, SIGNAL(configurationChanged()));
|
|
|
|
connect(colorizeLogLines, SIGNAL(clicked()), this, SIGNAL(configurationChanged()));
|
|
|
|
d->dateFormatGroup = new QButtonGroup(this);
|
|
d->dateFormatGroup->addButton(formatShortDate, KLocale::ShortDate);
|
|
d->dateFormatGroup->addButton(formatLongDate, KLocale::LongDate);
|
|
d->dateFormatGroup->addButton(formatFancyShortDate, KLocale::FancyShortDate);
|
|
d->dateFormatGroup->addButton(formatFancyLongDate, KLocale::FancyLongDate);
|
|
|
|
connect(d->dateFormatGroup, SIGNAL(buttonClicked(int)), this, SIGNAL(configurationChanged()));
|
|
|
|
addDateFormatExample();
|
|
}
|
|
|
|
|
|
GeneralConfigurationWidget::~GeneralConfigurationWidget() {
|
|
//dateFormatGroup is automatically deleted by Qt
|
|
|
|
delete d;
|
|
}
|
|
|
|
void GeneralConfigurationWidget::addDateFormatExample() {
|
|
foreach(QAbstractButton* button, d->dateFormatGroup->buttons()) {
|
|
QDateTime currentDateTime(QDateTime::currentDateTime());
|
|
|
|
KLocale::DateFormat currentButtonFormat = (KLocale::DateFormat) d->dateFormatGroup->id(button);
|
|
|
|
QString formattedDate = KGlobal::locale()->formatDateTime(currentDateTime, currentButtonFormat, true);
|
|
|
|
button->setText( i18nc("Date format Option (Date example)", "%1 (%2)", button->text(), formattedDate) );
|
|
}
|
|
}
|
|
|
|
void GeneralConfigurationWidget::readConfig() {
|
|
for (int i=0; i<startupLogMode->count(); ++i) {
|
|
if (KSystemLogConfig::startupLogMode() == startupLogMode->itemData(i)) {
|
|
startupLogMode->setCurrentIndex(i);
|
|
break;
|
|
}
|
|
}
|
|
|
|
maxLines->setValue(KSystemLogConfig::maxLines());
|
|
|
|
deleteDuplicatedLines->setChecked(KSystemLogConfig::deleteDuplicatedLines());
|
|
|
|
deleteProcessId->setChecked(KSystemLogConfig::deleteProcessIdentifier());
|
|
|
|
colorizeLogLines->setChecked(KSystemLogConfig::colorizeLogLines());
|
|
|
|
KLocale::DateFormat dateFormat = (KLocale::DateFormat) KSystemLogConfig::dateFormat();
|
|
QAbstractButton* selectedButton = d->dateFormatGroup->button(dateFormat);
|
|
selectedButton->setChecked(true);
|
|
}
|
|
|
|
void GeneralConfigurationWidget::saveConfig() const {
|
|
logDebug() << "Save config from General preferences" << endl;
|
|
|
|
KSystemLogConfig::setStartupLogMode(startupLogMode->itemData(startupLogMode->currentIndex()).toString());
|
|
|
|
KSystemLogConfig::setMaxLines(maxLines->value());
|
|
KSystemLogConfig::setDeleteDuplicatedLines(deleteDuplicatedLines->isChecked());
|
|
KSystemLogConfig::setDeleteProcessIdentifier(deleteProcessId->isChecked());
|
|
KSystemLogConfig::setColorizeLogLines(colorizeLogLines->isChecked());
|
|
|
|
KSystemLogConfig::setDateFormat(d->dateFormatGroup->checkedId());
|
|
|
|
}
|
|
|
|
void GeneralConfigurationWidget::defaultConfig() {
|
|
//TODO Find a way to read the configuration per default
|
|
readConfig();
|
|
}
|
|
|
|
bool GeneralConfigurationWidget::isValid() const {
|
|
if (maxLines->value()>0) {
|
|
logDebug() << "General configuration valid" << endl;
|
|
return true;
|
|
}
|
|
|
|
logDebug() << "General configuration not valid" << endl;
|
|
return false;
|
|
}
|
|
|
|
#include "generalConfigurationWidget.moc"
|