diff options
Diffstat (limited to 'kcontrol/kfontinst/viewpart/FontViewPart.cpp')
-rw-r--r-- | kcontrol/kfontinst/viewpart/FontViewPart.cpp | 282 |
1 files changed, 0 insertions, 282 deletions
diff --git a/kcontrol/kfontinst/viewpart/FontViewPart.cpp b/kcontrol/kfontinst/viewpart/FontViewPart.cpp deleted file mode 100644 index a95c4e4e6..000000000 --- a/kcontrol/kfontinst/viewpart/FontViewPart.cpp +++ /dev/null @@ -1,282 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Class Name : KFI::CFontViewPart -// Author : Craig Drummond -// Project : K Font Installer -// Creation Date : 03/08/2002 -// Version : $Revision$ $Date$ -// -//////////////////////////////////////////////////////////////////////////////// -// -// 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. -// -//////////////////////////////////////////////////////////////////////////////// -// (C) Craig Drummond, 2002, 2003, 2004 -//////////////////////////////////////////////////////////////////////////////// - -#include "FontViewPart.h" -#include "FontPreview.h" -#include "Misc.h" -#include "KfiConstants.h" -#include "KfiPrint.h" -#include <klocale.h> -#include <tqlayout.h> -#include <tqpushbutton.h> -#include <tqframe.h> -#include <tqfile.h> -#include <tqlabel.h> -#include <tqpainter.h> -#include <tqpaintdevicemetrics.h> -#include <tqvalidator.h> -#include <tqregexp.h> -#include <tqsettings.h> -#include <tqstringlist.h> -#include <tqtimer.h> -#include <tdeio/netaccess.h> -#include <kinstance.h> -#include <kmessagebox.h> -#include <knuminput.h> -#include <kstdaction.h> -#include <kaction.h> -#include <kinputdialog.h> -#include <kdialog.h> -#include <kprinter.h> -#include <fontconfig/fontconfig.h> - -static KURL getDest(const KURL &url, bool system) -{ - return KURL(KFI::Misc::root() - ? TQString("fonts:/") + url.fileName() - : TQString("fonts:/") + TQString(system ? i18n(KFI_KIO_FONTS_SYS) : i18n(KFI_KIO_FONTS_USER)) - + TQChar('/') + url.fileName()); -} - -namespace KFI -{ - -CFontViewPart::CFontViewPart(TQWidget *parent, const char *name) -{ - bool kcm=0==strcmp(name, "kcmfontinst"); - - itsFrame=new TQFrame(parent, "frame"); - - TQFrame *previewFrame=new TQFrame(itsFrame); - - itsToolsFrame=new TQFrame(itsFrame); - - TQVBoxLayout *layout=new TQVBoxLayout(itsFrame, kcm ? 0 : KDialog::marginHint(), kcm ? 0 : KDialog::spacingHint()); - TQGridLayout *previewLayout=new TQGridLayout(previewFrame, 1, 1, 1, 1); - TQHBoxLayout *toolsLayout=new TQHBoxLayout(itsToolsFrame, 0, KDialog::spacingHint()); - - itsFrame->setFrameShape(TQFrame::NoFrame); - itsFrame->setFocusPolicy(TQ_ClickFocus); - itsToolsFrame->setFrameShape(TQFrame::NoFrame); - previewFrame->setFrameShadow(kcm ? TQFrame::Sunken : TQFrame::Raised); - previewFrame->setFrameShape(TQFrame::Panel); - setInstance(new TDEInstance("kfontview")); - - itsPreview=new CFontPreview(previewFrame, "FontViewPart::Preview"); - itsPreview->setSizePolicy(TQSizePolicy::MinimumExpanding, TQSizePolicy::MinimumExpanding); - itsFaceLabel=new TQLabel(i18n("Face:"), itsToolsFrame); - itsFaceSelector=new KIntNumInput(1, itsToolsFrame); - itsInstallButton=new TQPushButton(i18n("Install..."), itsToolsFrame, "button"); - itsInstallButton->hide(); - previewLayout->addWidget(itsPreview, 0, 0); - layout->addWidget(previewFrame); - layout->addWidget(itsToolsFrame); - toolsLayout->addWidget(itsFaceLabel); - toolsLayout->addWidget(itsFaceSelector); - itsFaceLabel->hide(); - itsFaceSelector->hide(); - toolsLayout->addItem(new TQSpacerItem(5, 5, TQSizePolicy::MinimumExpanding, TQSizePolicy::Minimum)); - toolsLayout->addWidget(itsInstallButton); - itsToolsFrame->hide(); - connect(itsPreview, TQT_SIGNAL(status(bool)), TQT_SLOT(previewStatus(bool))); - connect(itsInstallButton, TQT_SIGNAL(clicked()), TQT_SLOT(install())); - connect(itsFaceSelector, TQT_SIGNAL(valueChanged(int)), itsPreview, TQT_SLOT(showFace(int))); - - itsChangeTextAction=new TDEAction(i18n("Change Text..."), "text", TDEShortcut(), - this, TQT_SLOT(changeText()), actionCollection(), "changeText"); - itsChangeTextAction->setEnabled(false); - itsPrintAction=KStdAction::print(this, TQT_SLOT(print()), actionCollection(), "print"); - itsPrintAction->setEnabled(false); - - setXMLFile("kfontviewpart.rc"); - setWidget(itsFrame); -} - -bool CFontViewPart::openURL(const KURL &url) -{ - if (!url.isValid() || !closeURL()) - return false; - - if(KFI_KIO_FONTS_PROTOCOL==url.protocol() || url.isLocalFile()) - { - m_url=url; - emit started(0); - m_file = m_url.path(); - bool ret=openFile(); - if (ret) - { - emit completed(); - emit setWindowCaption(m_url.prettyURL()); - } - return ret; - } - else - return ReadOnlyPart::openURL(url); -} - -bool CFontViewPart::openFile() -{ - // NOTE: Cant do the real open here, as dont seem to be able to use TDEIO::NetAccess functions during initial start-up. - // Bug report 111535 indicates that calling "konqueror <font>" crashes. - TQTimer::singleShot(0, this, TQT_SLOT(timeout())); - return true; -} - -void CFontViewPart::timeout() -{ - bool showFs=false, - isFonts=KFI_KIO_FONTS_PROTOCOL==m_url.protocol(); - - itsShowInstallButton=false; - - if(isFonts) - FcInitReinitialize(); - else - { - KURL destUrl; - - // - // Not from fonts:/, so try to see if font is already installed... - if(Misc::root()) - { - destUrl=TQString("fonts:/")+itsPreview->engine().getName(m_url); - itsShowInstallButton=!TDEIO::NetAccess::exists(destUrl, true, itsFrame->parentWidget()); - } - else - { - destUrl=TQString("fonts:/")+i18n(KFI_KIO_FONTS_SYS)+TQChar('/')+itsPreview->engine().getName(m_url); - if(TDEIO::NetAccess::exists(destUrl, true, itsFrame->parentWidget())) - itsShowInstallButton=false; - else - { - destUrl=TQString("fonts:/")+i18n(KFI_KIO_FONTS_USER)+TQChar('/')+itsPreview->engine().getName(m_url); - itsShowInstallButton=!TDEIO::NetAccess::exists(destUrl, true, itsFrame->parentWidget()); - } - } - } - - itsPreview->showFont(isFonts ? m_url : m_file); - - if(!isFonts && itsPreview->engine().getNumIndexes()>1) - { - showFs=true; - itsFaceSelector->setRange(1, itsPreview->engine().getNumIndexes(), 1, false); - } - - itsFaceLabel->setShown(showFs); - itsFaceSelector->setShown(showFs); - itsToolsFrame->hide(); -} - -void CFontViewPart::previewStatus(bool st) -{ - itsInstallButton->setShown(st && itsShowInstallButton); - itsToolsFrame->setShown(itsInstallButton->isShown()||itsFaceSelector->isShown()); - itsChangeTextAction->setEnabled(st); - itsPrintAction->setEnabled(st && KFI_KIO_FONTS_PROTOCOL==m_url.protocol()); -} - -void CFontViewPart::install() -{ - int resp=Misc::root() ? KMessageBox::Yes - : KMessageBox::questionYesNoCancel(itsFrame, - i18n("Where do you wish to install \"%1\" (%2)?\n" - "\"%3\" - only accessible to you, or\n" - "\"%4\" - accessible to all (requires administrator " - "password)") - .arg(itsPreview->engine().getName(m_url)) - .arg(m_url.fileName()) - .arg(i18n(KFI_KIO_FONTS_USER)) - .arg(i18n(KFI_KIO_FONTS_SYS)), - i18n("Install"), i18n(KFI_KIO_FONTS_USER), - i18n(KFI_KIO_FONTS_SYS)); - - if(KMessageBox::Cancel!=resp) - { - KURL destUrl(getDest(m_url, KMessageBox::No==resp)); - - if(TDEIO::NetAccess::copy(m_url, destUrl, itsFrame->parentWidget())) - { - // - // OK file copied, now look for any AFM or PFM file... - KURL::List urls; - - Misc::getAssociatedUrls(m_url, urls); - - if(urls.count()) - { - KURL::List::Iterator it, - end=urls.end(); - - for(it=urls.begin(); it!=end; ++it) - { - destUrl=getDest(*it, KMessageBox::No==resp); - TDEIO::NetAccess::copy(*it, destUrl, itsFrame->parentWidget()); - } - } - - KMessageBox::information(itsFrame, i18n("%1:%2 successfully installed.").arg(m_url.protocol()) - .arg(m_url.path()), i18n("Success"), - "FontViewPart_DisplayInstallationSuccess"); - itsShowInstallButton=false; - itsInstallButton->setShown(itsShowInstallButton); - } - else - KMessageBox::error(itsFrame, i18n("Could not install %1:%2").arg(m_url.protocol()).arg(m_url.path()), - i18n("Error")); - } -} - -void CFontViewPart::changeText() -{ - bool status; - TQRegExpValidator validator(TQRegExp(".*"), 0L); - TQString oldStr(itsPreview->engine().getPreviewString()), - newStr(KInputDialog::getText(i18n("Preview String"), i18n("Please enter new string:"), - oldStr, &status, itsFrame, - "preview string dialog", &validator)); - - if(status && newStr!=oldStr) - { - itsPreview->engine().setPreviewString(newStr); - itsPreview->showFont(); - } -} - -void CFontViewPart::print() -{ - TQStringList items; - - items.append(itsPreview->engine().getName(m_url)); - - Print::printItems(items, 0, itsFrame->parentWidget(), itsPreview->engine()); -} - -} - -#include "FontViewPart.moc" |