blob: 20af7e7156ba1615968dffe1b4422e34d9553c9e (
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
|
/****************************************************************************
**
** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
**
** This file is part of an example program for Qt. This example
** program may be used, distributed and modified without limitation.
**
*****************************************************************************/
#include <qapplication.h>
#include <qdir.h>
#include <qheader.h>
#include <qtable.h>
#include "whatsthis.h"
WhatsThis::WhatsThis( QWidget *w, QWidget *watch )
: QWhatsThis( watch ? watch : w ), widget( w )
{
}
QWidget *WhatsThis::parentWidget() const
{
return widget;
}
bool WhatsThis::clicked( const QString &link )
{
if ( !link.isEmpty() )
emit linkClicked( link );
return TRUE;
}
HeaderWhatsThis::HeaderWhatsThis( QHeader *h )
: WhatsThis( h )
{
}
QString HeaderWhatsThis::text( const QPoint &p )
{
QHeader *header = (QHeader*)parentWidget();
QString orient;
int section;
if ( header->orientation() == QObject::Horizontal ) {
orient = "horizontal";
section = header->sectionAt( p.x() );
} else {
orient = "vertical";
section = header->sectionAt( p.y() );
}
if( section == -1 )
return "This is empty space.";
QString docsPath = QDir("../../doc").absPath();
return QString("This is section number %1 in the %2 <a href=%2/html/qheader.html>header</a>.").
arg(section + 1).
arg(orient).
arg(docsPath);
}
TableWhatsThis::TableWhatsThis( QTable *t )
: WhatsThis( t, t->viewport() )
{
}
QString TableWhatsThis::text( const QPoint &p )
{
QTable *table = (QTable*)parentWidget();
QPoint cp = table->viewportToContents( p );
int row = table->rowAt( cp.y() );
int col = table->columnAt( cp.x() );
if ( row == -1 || col == -1 )
return "This is empty space.";
QTableItem* i = table->item( row,col );
if ( !i )
return "This is an empty cell.";
QString docsPath = QDir("../../doc").absPath();
if ( QTableItem::RTTI == i->rtti() ) {
return QString("This is a <a href=%1/html/qtableitem.html>QTableItem</a>.").
arg(docsPath);
} else if ( QComboTableItem::RTTI == i->rtti() ) {
return QString("This is a <a href=%1/html/qcombotableitem.html>QComboTableItem</a>."
"<br>It can be used to provide multiple-choice items in a table.").
arg(docsPath);
} else if ( QCheckTableItem::RTTI == i->rtti() ) {
return QString("This is a <a href=%1/html/qchecktableitem.html>QCheckTableItem</a>."
"<br>It provide <a href=%1/html/qcheckbox.html>checkboxes</a> in tables.").
arg(docsPath).arg(docsPath);
}
return "This is a user defined table item.";
}
|