File: qgotolinedialog.cpp

package info (click to toggle)
texstudio 2.11.2%2Bdebian-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 41,292 kB
  • ctags: 12,405
  • sloc: cpp: 93,072; xml: 10,217; ansic: 4,153; sh: 145; makefile: 56
file content (76 lines) | stat: -rw-r--r-- 1,693 bytes parent folder | download | duplicates (7)
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
/****************************************************************************
**
** Copyright (C) 2006-2009 fullmetalcoder <fullmetalcoder@hotmail.fr>
**
** This file is part of the Edyuk project <http://edyuk.org>
** 
** This file may be used under the terms of the GNU General Public License
** version 3 as published by the Free Software Foundation and appearing in the
** file GPL.txt included in the packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/

#include "qgotolinedialog.h"

/*!
	\file qgotolinedialog.cpp
	\brief Implementation of the QGotoDialog class.
	
	\see QGotoDialog
*/

#include "qeditor.h"

#include "qdocument.h"
#include "qdocumentline.h"
#include "qdocumentcursor.h"

/*!
	\ingroup dialogs
	@{
	
	\class QGotoLineDialog
	\brief A Kate-like generic goto line dialog.
	
*/

QGotoLineDialog::QGotoLineDialog(QWidget *w)
 : QDialog(w)
{
	setupUi(this);
}

void QGotoLineDialog::exec(QEditor *e)
{
	if ( !e )
		return;
	
	int ln = e->cursor().lineNumber() + 1,
		max = e->document()->lines();
	
	spinLine->setValue(ln);
	spinLine->setMaximum(max);
	
	slideLine->setValue(ln);
	slideLine->setMaximum(max);
	
	spinLine->selectAll();
	
	if ( QDialog::exec() != QDialog::Accepted )
		return;
	
	QDocumentCursor c(e->document(), spinLine->value() - 1);
	
	if ( c.isNull() )
		return;
	
	//qDebug("going to line : %i [%i]", c.lineNumber(), spinLine->value());
	
	e->setCursor(c);
}

/*! @} */