|
|
|
//
|
|
|
|
// File : helpwidget.cpp
|
|
|
|
// Creation date : Thu Aug 10 2000 17:42:12 by Szymon Stefanek
|
|
|
|
//
|
|
|
|
// This file is part of the KVirc irc client distribution
|
|
|
|
// Copyright (C) 1999-2000 Szymon Stefanek (pragma at kvirc dot net)
|
|
|
|
//
|
|
|
|
// 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 opinion) 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 "helpwidget.h"
|
|
|
|
|
|
|
|
#include "kvi_frame.h"
|
|
|
|
#include "kvi_iconmanager.h"
|
|
|
|
#include "kvi_locale.h"
|
|
|
|
#include "kvi_app.h"
|
|
|
|
#include "kvi_msgbox.h"
|
|
|
|
#include "kvi_module.h"
|
|
|
|
#include "kvi_styled_controls.h"
|
|
|
|
#include "helpwindow.h"
|
|
|
|
#include "kvi_fileutils.h"
|
|
|
|
|
|
|
|
#include <tqtoolbutton.h>
|
|
|
|
#include <tqlineedit.h>
|
|
|
|
#include <tqtooltip.h>
|
|
|
|
#include <tqtimer.h>
|
|
|
|
#include <clipboard.h>
|
|
|
|
|
|
|
|
extern Index * g_pDocIndex;
|
|
|
|
extern KviPointerList<KviHelpWindow> * g_pHelpWindowList;
|
|
|
|
extern KviPointerList<KviHelpWidget> * g_pHelpWidgetList;
|
|
|
|
|
|
|
|
KviHelpWidget::KviHelpWidget(TQWidget * par,KviFrame * lpFrm,bool bIsStandalone)
|
|
|
|
: TQWidget(par,"help_widget")
|
|
|
|
{
|
|
|
|
|
|
|
|
if(bIsStandalone)g_pHelpWidgetList->append(this);
|
|
|
|
m_bIsStandalone = bIsStandalone;
|
|
|
|
|
|
|
|
//#warning "Re enable this when using TQt 3.0 : TQProcess "
|
|
|
|
m_pTextBrowser = new TQTextBrowser(this,"text_browser");
|
|
|
|
m_pTextBrowser->setFrameStyle(TQFrame::StyledPanel|TQFrame::Sunken);
|
|
|
|
#ifndef COMPILE_USE_QT4
|
|
|
|
m_pTextBrowser->setFocusPolicy(TQ_NoFocus);
|
|
|
|
#endif
|
|
|
|
m_pToolBar = new KviTalHBox(this);
|
|
|
|
|
|
|
|
m_pBtnIndex = new KviStyledToolButton(m_pToolBar);
|
|
|
|
m_pBtnIndex->setIconSet(*g_pIconManager->getBigIcon(KVI_BIGICON_HELPINDEX));
|
|
|
|
connect(m_pBtnIndex,TQT_SIGNAL(clicked()),this,TQT_SLOT(showIndex()));
|
|
|
|
//m_pBtnIndex->setUsesBigPixmap(true);
|
|
|
|
|
|
|
|
m_pBtnBackward = new KviStyledToolButton(m_pToolBar);
|
|
|
|
m_pBtnBackward->setIconSet(*g_pIconManager->getBigIcon(KVI_BIGICON_HELPBACK));
|
|
|
|
connect(m_pBtnBackward,TQT_SIGNAL(clicked()),m_pTextBrowser,TQT_SLOT(backward()));
|
|
|
|
m_pBtnBackward->setEnabled(false);
|
|
|
|
//m_pBtnBackward->setUsesBigPixmap(true);
|
|
|
|
|
|
|
|
m_pBtnForward = new KviStyledToolButton(m_pToolBar);
|
|
|
|
m_pBtnForward->setIconSet(*g_pIconManager->getBigIcon(KVI_BIGICON_HELPFORWARD));
|
|
|
|
connect(m_pBtnForward,TQT_SIGNAL(clicked()),m_pTextBrowser,TQT_SLOT(forward()));
|
|
|
|
m_pBtnForward->setEnabled(false);
|
|
|
|
//m_pBtnForward->setUsesBigPixmap(true);
|
|
|
|
|
|
|
|
TQWidget* pSpacer=new TQWidget(m_pToolBar);
|
|
|
|
|
|
|
|
if(bIsStandalone)
|
|
|
|
{
|
|
|
|
TQToolButton * b = new KviStyledToolButton(m_pToolBar);
|
|
|
|
b->setIconSet(*g_pIconManager->getBigIcon(KVI_BIGICON_HELPCLOSE));
|
|
|
|
connect(b,TQT_SIGNAL(clicked()),this,TQT_SLOT(doClose()));
|
|
|
|
//b->setUsesBigPixmap(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
m_pToolBar->setStretchFactor(pSpacer,1);
|
|
|
|
connect(m_pTextBrowser,TQT_SIGNAL(backwardAvailable(bool)),m_pBtnBackward,TQT_SLOT(setEnabled(bool)));
|
|
|
|
connect(m_pTextBrowser,TQT_SIGNAL(forwardAvailable(bool)),m_pBtnForward,TQT_SLOT(setEnabled(bool)));
|
|
|
|
|
|
|
|
m_pTextBrowser->viewport()->installEventFilter(this);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
KviHelpWidget::~KviHelpWidget()
|
|
|
|
{
|
|
|
|
if(m_bIsStandalone)g_pHelpWidgetList->removeRef(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
void KviHelpWidget::showIndex()
|
|
|
|
{
|
|
|
|
#ifdef COMPILE_USE_QT4
|
|
|
|
m_pTextBrowser->setSource(TQUrl("index.html"));
|
|
|
|
#else
|
|
|
|
m_pTextBrowser->setSource("index.html");
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
void KviHelpWidget::resizeEvent(TQResizeEvent *e)
|
|
|
|
{
|
|
|
|
int hght = m_pToolBar->sizeHint().height();
|
|
|
|
if(hght < 40)hght = 40;
|
|
|
|
m_pToolBar->setGeometry(0,0,width(),hght);
|
|
|
|
m_pTextBrowser->setGeometry(0,hght,width(),height() - hght);
|
|
|
|
}
|
|
|
|
|
|
|
|
void KviHelpWidget::doClose()
|
|
|
|
{
|
|
|
|
// hack needed to workaround "TQToolBar::emulateButtonClicked()"
|
|
|
|
// that refers to the "this" pointer after this slot has been
|
|
|
|
// called (from the "too-small-toolbar-for-all-items-popup")
|
|
|
|
TQTimer::singleShot(0,this,TQT_SLOT(suicide()));
|
|
|
|
}
|
|
|
|
|
|
|
|
void KviHelpWidget::suicide()
|
|
|
|
{
|
|
|
|
// goodbye cruel wolrd
|
|
|
|
delete this;
|
|
|
|
}
|
|
|
|
|
|
|
|
TQSize KviHelpWidget::sizeHint() const
|
|
|
|
{
|
|
|
|
int wdth = m_pTextBrowser->sizeHint().width();
|
|
|
|
if(m_pToolBar->sizeHint().width() > wdth)wdth = m_pToolBar->sizeHint().width();
|
|
|
|
TQSize s(wdth,m_pTextBrowser->sizeHint().height() + m_pToolBar->sizeHint().height());
|
|
|
|
return s;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool KviHelpWidget::eventFilter(TQObject * o, TQEvent *e)
|
|
|
|
{
|
|
|
|
TQClipboard *cb = TQApplication::clipboard();
|
|
|
|
|
|
|
|
if(e->type() == TQEvent::MouseButtonRelease) {
|
|
|
|
if(m_pTextBrowser->hasSelectedText()) {
|
|
|
|
cb->setText(m_pTextBrowser->selectedText());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return TQWidget::eventFilter(o,e);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "helpwidget.moc"
|