diff --git a/src/dialog/vinsertlinkdialog.cpp b/src/dialog/vinsertlinkdialog.cpp index 866300d5..e2ee9cb2 100644 --- a/src/dialog/vinsertlinkdialog.cpp +++ b/src/dialog/vinsertlinkdialog.cpp @@ -130,3 +130,12 @@ QString VInsertLinkDialog::getLinkUrl() const { return m_linkUrlEdit->text(); } + +void VInsertLinkDialog::showEvent(QShowEvent *p_event) +{ + QDialog::showEvent(p_event); + + if (!m_linkTextEdit->text().isEmpty() && m_linkUrlEdit->text().isEmpty()) { + m_linkUrlEdit->setFocus(); + } +} diff --git a/src/dialog/vinsertlinkdialog.h b/src/dialog/vinsertlinkdialog.h index d31d8982..8c2fe588 100644 --- a/src/dialog/vinsertlinkdialog.h +++ b/src/dialog/vinsertlinkdialog.h @@ -7,6 +7,7 @@ class VLineEdit; class QLineEdit; class QDialogButtonBox; +class QShowEvent; class VInsertLinkDialog : public QDialog { @@ -23,6 +24,9 @@ public: QString getLinkUrl() const; +protected: + void showEvent(QShowEvent *p_event) Q_DECL_OVERRIDE; + private slots: void handleInputChanged(); diff --git a/src/vmdtab.cpp b/src/vmdtab.cpp index dfdaf1cd..ed9e3f24 100644 --- a/src/vmdtab.cpp +++ b/src/vmdtab.cpp @@ -782,6 +782,8 @@ void VMdTab::applySnippet(const VSnippet *p_snippet) m_editor->setVimMode(VimMode::Insert); g_mainWin->showStatusMessage(tr("Snippet applied")); + + focusTab(); } } else { g_mainWin->showStatusMessage(tr("Snippet %1 is not applicable").arg(p_snippet->getName())); diff --git a/src/vsnippet.cpp b/src/vsnippet.cpp index 1c987107..3c700d5d 100644 --- a/src/vsnippet.cpp +++ b/src/vsnippet.cpp @@ -189,9 +189,10 @@ bool VSnippet::apply(QTextCursor &p_cursor) const if (!m_selectionMark.isEmpty() && !secondPart.isEmpty()) { secondPart.replace(m_selectionMark, selection); - content += secondPart; } + content += secondPart; + // Insert it. switch (m_type) { case Type::Html: