2 * This file is a part of QComicBook.
4 * Copyright (C) 2005-2006 Pawel Stolowski <yogin@linux.bydg.org>
6 * QComicBook is free software; you can redestribute it and/or modify it
7 * under terms of GNU General Public License by Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY. See GPL for more details.
13 #include "helpbrowser.h"
14 #include <qtextbrowser.h>
15 #include <qtextcodec.h>
16 #include <qfileinfo.h>
17 #include <qpopupmenu.h>
20 using namespace QComicBook;
22 HelpBrowser::HelpBrowser(const QString &caption, const QString &path, const QString &file, const QString &imgpath, QWidget *parent): QMainWindow(parent)
25 txtb = new QTextBrowser(this);
26 setCentralWidget(txtb);
30 //if (!imgpath.isEmpty())
31 // fpaths.append(path + "/" + imgpath); //append common images subdirectory
32 txtb->mimeSourceFactory()->setFilePath(fpaths);
33 txtb->setSource(file);
37 QPopupMenu *file_menu = new QPopupMenu(this);
38 file_menu->insertItem(tr("Quit"), this, SLOT(close()));
39 menuBar()->insertItem(tr("File"), file_menu);
40 go_menu = new QPopupMenu(this);
41 go_menu->insertItem(tr("Table of contents"), txtb, SLOT(home()));
42 go_menu->insertSeparator();
43 id_back = go_menu->insertItem(tr("Back"), txtb, SLOT(backward()));
44 id_forward = go_menu->insertItem(tr("Forward"), txtb, SLOT(forward()));
45 menuBar()->insertItem(tr("Go"), go_menu);
47 enableBackward(false);
50 connect(txtb, SIGNAL(backwardAvailable(bool)), this, SLOT(enableBackward(bool)));
51 connect(txtb, SIGNAL(forwardAvailable(bool)), this, SLOT(enableForward(bool)));
56 HelpBrowser::~HelpBrowser()
60 void HelpBrowser::enableBackward(bool f)
62 go_menu->setItemEnabled(id_back, f);
65 void HelpBrowser::enableForward(bool f)
67 go_menu->setItemEnabled(id_forward, f);
70 QString HelpBrowser::getLocaleHelpDir(const QString &maindir, const QString &file)
72 const QString locale = QTextCodec::locale();
73 const QString paths[] = { maindir + "/" + locale,
74 maindir + "/" + locale.left(4),
75 maindir + "/" + locale.left(2),
78 // try to find translated help first according to locale setting; fallback to en
79 for (int i=0; i<4; i++)
81 QFileInfo f(paths[i] + "/" + file);
83 return f.absFilePath();