OpendTect  6.3
i_qtextedit.h
Go to the documentation of this file.
1 #ifndef i_qtextedit_h
2 #define i_qtextedit_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Nanne Hemstra
9  Date: September 2007
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "uitextedit.h"
15 
16 #include <QAbstractSlider>
17 #include <QTextEdit>
18 #include <QTextBrowser>
19 
20 
22 
26 QT_BEGIN_NAMESPACE
27 
28 class QString;
29 
30 class i_TextEditMessenger : public QObject
31 {
32  Q_OBJECT
33  friend class uiTextEditBody;
34 
35 protected:
36 
37 i_TextEditMessenger( QTextEdit* sndr, uiTextEditBase* receiver )
38  : sender_(sndr)
39  , receiver_(receiver)
40 {
41  connect( sndr, SIGNAL(textChanged()), this, SLOT(textChanged()) );
42  connect( sndr, SIGNAL(copyAvailable(bool)),this,SLOT(copyAvailable(bool)));
43 }
44 
45 private:
46 
48  QTextEdit* sender_;
49 
50 private slots:
51 
53 { receiver_->textChanged.trigger( *receiver_ ); }
54 
55 void copyAvailable( bool yn )
56 { receiver_->copyAvailable.trigger( yn ); }
57 
58 };
59 
60 class i_ScrollBarMessenger : public QObject
61 {
62  Q_OBJECT;
63 public:
64 
65  i_ScrollBarMessenger( QAbstractSlider* sndr, uiTextEditBase* receiver )
66  : sender_(sndr)
67  , receiver_(receiver)
68  {
69  connect( sndr, SIGNAL(sliderPressed()), this, SLOT(sliderPressed()) );
70  connect( sndr, SIGNAL(sliderReleased()), this, SLOT(sliderReleased()) );
71  }
72 
73 private:
74 
76  QAbstractSlider* sender_;
77 
78 private slots:
79 
81  {
82  receiver_->sliderPressed.trigger( *receiver_ );
83  }
84 
86  {
87  receiver_->sliderReleased.trigger( *receiver_ );
88  }
89 
90 };
91 
92 
94 
99 {
100  Q_OBJECT
101  friend class uiTextBrowserBody;
102 
103 protected:
104  i_BrowserMessenger( QTextBrowser* sndr,
105  uiTextBrowser* receiver )
106  : i_TextEditMessenger(sndr,receiver)
107  , bsender_( sndr )
108  , breceiver_( receiver )
109  {
110  connect( sndr, SIGNAL(backwardAvailable(bool)),
111  this, SLOT(backwardAvailable(bool)) );
112  connect(sndr,SIGNAL(forwardAvailable(bool)),
113  this, SLOT(forwardAvailable(bool)));
114  connect(sndr,SIGNAL(highlighted(const QString&)),
115  this, SLOT(highlighted(const QString&)));
116  connect(sndr,SIGNAL(anchorClicked(const QUrl&)),
117  this,SLOT(anchorClicked(const QUrl&)));
118  }
119 
120  virtual ~i_BrowserMessenger() {}
121 
122 private:
123 
125  QTextBrowser* bsender_;
126 
127 private slots:
128 
129  void backwardAvailable( bool yn )
130  {
131  breceiver_->cangobackw_ = yn;
132  breceiver_->goneForwardOrBack.trigger( *breceiver_ );
133  }
134 
135  void forwardAvailable( bool yn )
136  {
137  breceiver_->cangoforw_ = yn;
138  breceiver_->goneForwardOrBack.trigger( *breceiver_ );
139  }
140 
141  void highlighted( const QString& lnk )
142  {
143  breceiver_->lastlink_ = lnk.toLatin1().data();
144  breceiver_->linkHighlighted.trigger( *breceiver_ );
145  }
146 
147  void anchorClicked( const QUrl& lnk )
148  {
149  breceiver_->lastlink_ = lnk.toString().toLatin1().data();
150  breceiver_->linkClicked.trigger( *breceiver_ );
151  }
152 };
153 
154 QT_END_NAMESPACE
155 
156 #endif
Definition: i_qtextedit.h:30
Notifier< uiTextEditBase > textChanged
Definition: uitextedit.h:47
void copyAvailable(bool yn)
Definition: i_qtextedit.h:55
friend class uiTextEditBody
Definition: i_qtextedit.h:33
QAbstractSlider * sender_
Definition: i_qtextedit.h:76
Notifier< uiTextEditBase > sliderReleased
Definition: uitextedit.h:49
i_TextEditMessenger(QTextEdit *sndr, uiTextEditBase *receiver)
Definition: i_qtextedit.h:37
i_BrowserMessenger(QTextBrowser *sndr, uiTextBrowser *receiver)
Definition: i_qtextedit.h:104
Notifier< uiTextBrowser > linkHighlighted
Definition: uitextedit.h:133
uiTextEditBase * receiver_
Definition: i_qtextedit.h:75
i_ScrollBarMessenger(QAbstractSlider *sndr, uiTextEditBase *receiver)
Definition: i_qtextedit.h:65
void trigger()
Definition: notify.h:128
void trigger(PayLoad pl)
Definition: notify.h:171
bool cangobackw_
Definition: uitextedit.h:142
uiTextBrowser * breceiver_
Definition: i_qtextedit.h:124
BufferString lastlink_
Definition: uitextedit.h:140
bool cangoforw_
Definition: uitextedit.h:141
void backwardAvailable(bool yn)
Definition: i_qtextedit.h:129
virtual ~i_BrowserMessenger()
Definition: i_qtextedit.h:120
void forwardAvailable(bool yn)
Definition: i_qtextedit.h:135
Definition: uitextedit.h:23
Notifier< uiTextEditBase > sliderPressed
Definition: uitextedit.h:48
void anchorClicked(const QUrl &lnk)
Definition: i_qtextedit.h:147
QTextEdit * sender_
Definition: i_qtextedit.h:48
Definition: i_qtextedit.h:60
CNotifier< uiTextEditBase, bool > copyAvailable
Definition: uitextedit.h:50
void sliderReleased()
Definition: i_qtextedit.h:85
void sliderPressed()
Definition: i_qtextedit.h:80
Definition: uitextedit.h:99
Notifier< uiTextBrowser > linkClicked
Definition: uitextedit.h:134
Helper class for uiTextBrowser to relay Qt&#39;s messages.
Definition: i_qtextedit.h:98
void highlighted(const QString &lnk)
Definition: i_qtextedit.h:141
void textChanged()
Definition: i_qtextedit.h:52
QTextBrowser * bsender_
Definition: i_qtextedit.h:125
uiTextEditBase * receiver_
Definition: i_qtextedit.h:47
Notifier< uiTextBrowser > goneForwardOrBack
Definition: uitextedit.h:132

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017