kmconfigpreview.cpp

00001 /*
00002  *  This file is part of the KDE libraries
00003  *  Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be>
00004  *
00005  *  This library is free software; you can redistribute it and/or
00006  *  modify it under the terms of the GNU Library General Public
00007  *  License version 2 as published by the Free Software Foundation.
00008  *
00009  *  This library is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  *  Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Library General Public License
00015  *  along with this library; see the file COPYING.LIB.  If not, write to
00016  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  *  Boston, MA 02110-1301, USA.
00018  **/
00019 
00020 #include "kmconfigpreview.h"
00021 
00022 #include <qcheckbox.h>
00023 #include <qlayout.h>
00024 #include <qgroupbox.h>
00025 #include <qlabel.h>
00026 
00027 #include <klocale.h>
00028 #include <kurlrequester.h>
00029 #include <kconfig.h>
00030 #include <kdialog.h>
00031 
00032 KMConfigPreview::KMConfigPreview(QWidget *parent, const char *name)
00033 : KMConfigPage(parent, name)
00034 {
00035     setPageName(i18n("Preview"));
00036     setPageHeader(i18n("Preview Settings"));
00037     setPagePixmap("filefind");
00038 
00039     QGroupBox *box = new QGroupBox(0, Qt::Vertical, i18n("Preview Program"), this);
00040 
00041     m_useext = new QCheckBox(i18n("&Use external preview program"), box);
00042     m_program = new KURLRequester(box);
00043     QLabel  *lab = new QLabel(box);
00044     lab->setText(i18n("You can use an external preview program (PS viewer) instead of the "
00045                       "KDE built-in preview system. Note that if the KDE default PS viewer "
00046                       "(KGhostView) cannot be found, KDE tries automatically to find another "
00047                       "external PostScript viewer"));
00048     lab->setTextFormat(Qt::RichText);
00049 
00050     QVBoxLayout *l0 = new QVBoxLayout(this, 0, KDialog::spacingHint());
00051     l0->addWidget(box);
00052     l0->addStretch(1);
00053     QVBoxLayout *l1 = new QVBoxLayout(box->layout(), KDialog::spacingHint());
00054     l1->addWidget(lab);
00055     l1->addWidget(m_useext);
00056     l1->addWidget(m_program);
00057 
00058     connect(m_useext, SIGNAL(toggled(bool)), m_program, SLOT(setEnabled(bool)));
00059     m_program->setEnabled(false);
00060 }
00061 
00062 void KMConfigPreview::loadConfig(KConfig *conf)
00063 {
00064     conf->setGroup("General");
00065     m_useext->setChecked(conf->readBoolEntry("ExternalPreview", false));
00066     m_program->setURL(conf->readPathEntry("PreviewCommand", "gv"));
00067 }
00068 
00069 void KMConfigPreview::saveConfig(KConfig *conf)
00070 {
00071     conf->setGroup("General");
00072     conf->writeEntry("ExternalPreview", m_useext->isChecked());
00073     conf->writePathEntry("PreviewCommand", m_program->url());
00074 }
KDE Home | KDE Accessibility Home | Description of Access Keys