summaryrefslogtreecommitdiff
path: root/src/plugins/qnx/bardescriptoreditor.cpp
diff options
context:
space:
mode:
authorTobias Nätterlund <tobias.naetterlund.qnx@kdab.com>2013-11-29 14:50:53 +0100
committerTobias Nätterlund <tobias.naetterlund@kdab.com>2013-12-20 07:36:06 +0100
commit4dd2b819df36f0153bbe419e0cb9d9bc2e862dc1 (patch)
tree5e311b89911fb6a8a6b5cc4fe841bce86fa6b3e0 /src/plugins/qnx/bardescriptoreditor.cpp
parentf73cd8b6dbc73b0d482e740eddbf9df6b934e7da (diff)
downloadqt-creator-4dd2b819df36f0153bbe419e0cb9d9bc2e862dc1.tar.gz
QNX: Show line/column in the bar descriptor editor
Task-number: QTCREATORBUG-10395 Change-Id: I290c52dbcf2615513ec1a5fb0e724baff425d1cf Reviewed-by: David Kaspar <dkaspar@blackberry.com> Reviewed-by: Mehdi Fekari <mfekari@blackberry.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Diffstat (limited to 'src/plugins/qnx/bardescriptoreditor.cpp')
-rw-r--r--src/plugins/qnx/bardescriptoreditor.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/plugins/qnx/bardescriptoreditor.cpp b/src/plugins/qnx/bardescriptoreditor.cpp
index 159e074a7f..bb92fc4e99 100644
--- a/src/plugins/qnx/bardescriptoreditor.cpp
+++ b/src/plugins/qnx/bardescriptoreditor.cpp
@@ -38,11 +38,15 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/task.h>
#include <projectexplorer/taskhub.h>
-#include <utils/qtcassert.h>
#include <texteditor/texteditorconstants.h>
#include <texteditor/basetexteditor.h>
+#include <texteditor/tabsettings.h>
+#include <utils/linecolumnlabel.h>
+#include <utils/qtcassert.h>
#include <QAction>
+#include <QStyle>
+#include <QTextBlock>
#include <QToolBar>
using namespace ProjectExplorer;
@@ -83,6 +87,17 @@ BarDescriptorEditor::BarDescriptorEditor(BarDescriptorEditorWidget *editorWidget
generalAction->setChecked(true);
+ m_cursorPositionLabel = new Utils::LineColumnLabel;
+ const int spacing = editorWidget->style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing) / 2;
+ m_cursorPositionLabel->setContentsMargins(spacing, 0, spacing, 0);
+
+ QWidget *spacer = new QWidget;
+ spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+ m_toolBar->addWidget(spacer);
+
+ m_cursorPositionAction = m_toolBar->addWidget(m_cursorPositionLabel);
+ connect(editorWidget->sourceWidget(), SIGNAL(cursorPositionChanged()), this, SLOT(updateCursorPosition()));
+
setContext(Core::Context(Constants::QNX_BAR_DESCRIPTOR_EDITOR_CONTEXT,
TextEditor::Constants::C_TEXTEDITOR));
}
@@ -133,6 +148,7 @@ void BarDescriptorEditor::setActivePage(BarDescriptorEditor::EditorPage page)
if (page == Source) {
editorWidget->setXmlSource(m_file->xmlSource());
+ updateCursorPosition();
} else if (prevPage == Source) {
TaskHub::clearTasks(Constants::QNX_TASK_CATEGORY_BARDESCRIPTOR);
QString errorMsg;
@@ -150,8 +166,24 @@ void BarDescriptorEditor::setActivePage(BarDescriptorEditor::EditorPage page)
}
}
+ m_cursorPositionAction->setVisible(page == Source);
editorWidget->setCurrentIndex(page);
}
+void BarDescriptorEditor::updateCursorPosition()
+{
+ BarDescriptorEditorWidget *editorWidget = qobject_cast<BarDescriptorEditorWidget *>(widget());
+ QTC_ASSERT(editorWidget, return);
+
+ const QTextCursor cursor = editorWidget->sourceWidget()->textCursor();
+ const QTextBlock block = cursor.block();
+ const int line = block.blockNumber() + 1;
+ const int column = cursor.position() - block.position();
+ m_cursorPositionLabel->setText(tr("Line: %1, Col: %2").arg(line).arg(editorWidget->sourceWidget()->tabSettings().columnAt(block.text(), column)+1),
+ tr("Line: 9999, Col: 999"));
+ if (!block.isVisible())
+ editorWidget->sourceWidget()->ensureCursorVisible();
+}
+
} // namespace Internal
} // namespace Qnx