mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Desktop: create new custom TextEdit widget for notes-field
Currently, the notes field uses a QTextEdit, which doesn't send a signal if it goes out of focus. But for undo of dive-editing we don't want to create an undo object for *every* text change. Thus, create a custom TextEdit widget that derives from QTextEdit and turns the focusOutEvent into a editingFinished signal. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
		
							parent
							
								
									0882ca64b0
								
							
						
					
					
						commit
						2bb2643ae4
					
				
					 4 changed files with 35 additions and 1 deletions
				
			
		|  | @ -126,6 +126,8 @@ set(SUBSURFACE_INTERFACE | |||
| 	tableview.h | ||||
| 	tagwidget.cpp | ||||
| 	tagwidget.h | ||||
| 	textedit.cpp | ||||
| 	textedit.h | ||||
| 	updatemanager.cpp | ||||
| 	updatemanager.h | ||||
| 	usersurvey.cpp | ||||
|  |  | |||
|  | @ -454,7 +454,7 @@ | |||
|                 <number>0</number> | ||||
|                </property> | ||||
|                <item> | ||||
|                 <widget class="QTextEdit" name="notes"> | ||||
|                 <widget class="TextEdit" name="notes"> | ||||
|                  <property name="readOnly"> | ||||
|                   <bool>false</bool> | ||||
|                  </property> | ||||
|  | @ -601,6 +601,11 @@ | |||
|    <extends>QLineEdit</extends> | ||||
|    <header>desktop-widgets/locationinformation.h</header> | ||||
|   </customwidget> | ||||
|   <customwidget> | ||||
|    <class>TextEdit</class> | ||||
|    <extends>QTextEdit</extends> | ||||
|    <header>desktop-widgets/textedit.h</header> | ||||
|   </customwidget> | ||||
|  </customwidgets> | ||||
|  <resources> | ||||
|   <include location="../../subsurface.qrc"/> | ||||
|  |  | |||
							
								
								
									
										7
									
								
								desktop-widgets/textedit.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								desktop-widgets/textedit.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,7 @@ | |||
| #include "textedit.h" | ||||
| 
 | ||||
| void TextEdit::focusOutEvent(QFocusEvent *ev) | ||||
| { | ||||
| 	QTextEdit::focusOutEvent(ev); | ||||
| 	emit editingFinished(); | ||||
| } | ||||
							
								
								
									
										20
									
								
								desktop-widgets/textedit.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								desktop-widgets/textedit.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| // SPDX-License-Identifier: GPL-2.0
 | ||||
| #ifndef TEXTEDIT_H | ||||
| #define TEXTEDIT_H | ||||
| 
 | ||||
| #include <QTextEdit> | ||||
| 
 | ||||
| // QTextEdit does not possess a signal that fires when the user finished
 | ||||
| // editing the text. This subclass therefore overrides the focusOutEvent
 | ||||
| // and sends the textEdited signal.
 | ||||
| class TextEdit : public QTextEdit { | ||||
| 	Q_OBJECT | ||||
| public: | ||||
| 	using QTextEdit::QTextEdit; // Make constructors of QTextEdit available
 | ||||
| signals: | ||||
| 	void editingFinished(); | ||||
| private: | ||||
| 	void focusOutEvent(QFocusEvent *ev) override; | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue