summaryrefslogtreecommitdiffstats
path: root/examples/helpdemo/helpdemo.cpp
blob: f10174d1456967a4d8c293e05d04b7a7b41f9230 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <ntqassistantclient.h>
#include <ntqmessagebox.h>
#include <tqlineedit.h>
#include <tqaction.h>
#include <tqpopupmenu.h>
#include <tqcheckbox.h>
#include <tqprocess.h>
#include <tqpushbutton.h>
#include <tqdir.h>

#include "helpdemo.h"

HelpDemo::HelpDemo( TQWidget *parent, const char *name )
    : HelpDemoBase( parent, name )
{
    leFileName->setText( "./doc/index.html" );
    assistant = new TQAssistantClient( TQDir( "../../bin" ).absPath(), this );
    widgets.insert( (TQWidget*)openTQAButton, "./doc/manual.html#openqabutton" );
    widgets.insert( (TQWidget*)closeTQAButton, "./doc/manual.html#closeqabutton" );
    widgets.insert( (TQWidget*)checkOnlyExampleDoc, "./doc/manual.html#onlydoc" );
    widgets.insert( (TQWidget*)checkHide, "./doc/manual.html#hide" );
    widgets.insert( (TQWidget*)leFileName, "./doc/manual.html#lineedit" );
    widgets.insert( (TQWidget*)displayButton, "./doc/manual.html#displaybutton" );
    widgets.insert( (TQWidget*)closeButton, "./doc/manual.html#closebutton" );

    menu = new TQPopupMenu( this );

    TQAction *helpAction = new TQAction( "Show Help", TQKeySequence(tr("F1")), this );
    helpAction->addTo( menu );

    connect( helpAction, TQ_SIGNAL(activated()), this, TQ_SLOT(showHelp()) );
    connect( assistant, TQ_SIGNAL(assistantOpened()), this, TQ_SLOT(assistantOpened()) );
    connect( assistant, TQ_SIGNAL(assistantClosed()), this, TQ_SLOT(assistantClosed()));
    connect( assistant, TQ_SIGNAL(error(const TQString&)),
	     this, TQ_SLOT(showAssistantErrors(const TQString&)) );
    closeTQAButton->setEnabled(FALSE);
}

HelpDemo::~HelpDemo()
{
}

void HelpDemo::contextMenuEvent( TQContextMenuEvent *e )
{
    TQWidget *w = lookForWidget();
    if ( menu->exec( e->globalPos() ) != -1 )
	showHelp( w );
}

TQWidget* HelpDemo::lookForWidget()
{
    TQPtrDictIterator<char> it( widgets );
    TQWidget *w;
    while ( (w = (TQWidget*)(it.currentKey())) != 0 ) {
	++it;
	if ( w->hasMouse() )
	    return w;
    }
    return 0;
}

void HelpDemo::showHelp()
{
    showHelp( lookForWidget() );  
}

void HelpDemo::showHelp( TQWidget *w )
{
    if ( w )
	assistant->showPage( TQString( widgets[w] ) );
    else
	assistant->showPage( "./doc/index.html" );
}

void HelpDemo::setAssistantArguments()
{
    TQStringList cmdLst;
    if ( checkHide->isChecked() )
	cmdLst << "-hideSidebar";
    if ( checkOnlyExampleDoc->isChecked() )
        cmdLst << "-profile"
	       << TQString("doc") + TQDir::separator() + TQString("helpdemo.adp");
    assistant->setArguments( cmdLst );
}

void HelpDemo::openAssistant()
{
    if ( !assistant->isOpen() )
	assistant->openAssistant();
}

void HelpDemo::closeAssistant()
{
    if ( assistant->isOpen() )
	assistant->closeAssistant();
}

void HelpDemo::displayPage()
{
    assistant->showPage( leFileName->text() );
}

void HelpDemo::showAssistantErrors( const TQString &err )
{
    TQMessageBox::critical( this, "Assistant Error", err );

}

void HelpDemo::assistantOpened()
{
    closeTQAButton->setEnabled( TRUE );
    openTQAButton->setEnabled( FALSE );
}

void HelpDemo::assistantClosed()
{
    closeTQAButton->setEnabled( FALSE );
    openTQAButton->setEnabled( TRUE );
}