2 * KFontInst - KDE Font Installer
4 * Copyright 2003-2007 Craig Drummond <craig@kde.org>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; see the file COPYING. If not, write to
20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
25 #include "KfiConstants.h"
26 #include <KDE/KCmdLineArgs>
27 #include <KDE/KAboutData>
28 #include <KDE/KUniqueApplication>
29 #include <KDE/KPluginLoader>
30 #include <KDE/KPluginFactory>
31 #include <KDE/KLocale>
32 #include <KDE/KGlobal>
33 #include <KDE/KFileDialog>
34 #include <KDE/KConfig>
35 #include <KDE/KStandardAction>
36 #include <KDE/KActionCollection>
37 #include <KDE/KShortcutsDialog>
38 #include <KDE/KParts/BrowserExtension>
45 KPluginFactory
*factory
=KPluginLoader("kfontviewpart").factory();
49 itsPreview
=factory
->create
<KParts::ReadOnlyPart
>(this);
51 actionCollection()->addAction(KStandardAction::Open
, this, SLOT(fileOpen()));
52 actionCollection()->addAction(KStandardAction::Quit
, this, SLOT(close()));
53 actionCollection()->addAction(KStandardAction::KeyBindings
, this, SLOT(configureKeys()));
54 itsPrintAct
=actionCollection()->addAction(KStandardAction::Print
, itsPreview
, SLOT(print()));
56 itsPrintAct
->setEnabled(false);
58 if(itsPreview
->browserExtension())
59 connect(itsPreview
->browserExtension(), SIGNAL(enableAction(const char *, bool)),
60 this, SLOT(enableAction(const char *, bool)));
62 setCentralWidget(itsPreview
->widget());
63 createGUI(itsPreview
);
65 setAutoSaveSettings();
66 applyMainWindowSettings(KGlobal::config()->group("MainWindow"));
72 void CViewer::fileOpen()
74 KUrl
url(KFileDialog::getOpenUrl(KUrl(), "application/x-font-ttf application/x-font-otf "
75 "application/x-font-type1 "
76 "application/x-font-bdf application/x-font-pcf ",
77 this, i18n("Select Font to View")));
81 void CViewer::showUrl(const KUrl
&url
)
84 itsPreview
->openUrl(url
);
87 void CViewer::configureKeys()
89 KShortcutsDialog
dlg(KShortcutsEditor::AllActions
, KShortcutsEditor::LetterShortcutsAllowed
, this);
91 dlg
.addCollection(actionCollection());
95 void CViewer::enableAction(const char *name
, bool enable
)
97 if(0==qstrcmp("print", name
))
98 itsPrintAct
->setEnabled(enable
);
104 class ViewerApplication
: public KUniqueApplication
109 ViewerApplication(Display
*display
, Qt::HANDLE visual
, Qt::HANDLE colormap
)
110 : KUniqueApplication(display
,visual
,colormap
)
115 ViewerApplication() : KUniqueApplication()
121 KCmdLineArgs
*args(KCmdLineArgs::parsedArgs());
122 KFI::CViewer
*viewer
=new KFI::CViewer
;
125 if(args
->count() > 0)
127 for (int i
= 0; i
< args
->count(); ++i
)
129 KUrl
url(args
->url(i
));
133 viewer
=new KFI::CViewer
;
136 viewer
->showUrl(url
);
146 static KAboutData
aboutData("kfontview", KFI_CATALOGUE
, ki18n("Font Viewer"), "1.1", ki18n("Simple font viewer"),
147 KAboutData::License_GPL
, ki18n("(C) Craig Drummond, 2004-2007"));
149 int main(int argc
, char **argv
)
151 KCmdLineArgs::init(argc
, argv
, &aboutData
);
152 KCmdLineArgs::addTempFileOption();
154 KCmdLineOptions options
;
155 options
.add("+[URL]", ki18n("URL to open"));
156 KCmdLineArgs::addCmdLineOptions(options
);
158 if (!KUniqueApplication::start())
161 KFI::ViewerApplication app
;
166 #include "Viewer.moc"