21#include <QStandardItemModel>
23#include "moc_qgscodeeditorhistorydialog.cpp"
36 listView->setToolTip( tr(
"Double-click on item to execute" ) );
38 mModel =
new CodeHistoryModel( listView );
39 listView->setModel( mModel );
43 QShortcut *deleteShortcut =
new QShortcut( QKeySequence( Qt::Key_Delete ),
this );
44 connect( deleteShortcut, &QShortcut::activated,
this, &QgsCodeEditorHistoryDialog::deleteItem );
45 connect( listView, &QListView::doubleClicked,
this, &QgsCodeEditorHistoryDialog::runCommand );
46 connect( mButtonReloadHistory, &QPushButton::clicked,
this, &QgsCodeEditorHistoryDialog::reloadHistory );
47 connect( mButtonSaveHistory, &QPushButton::clicked,
this, &QgsCodeEditorHistoryDialog::saveHistory );
48 connect( mButtonRunHistory, &QPushButton::clicked,
this, &QgsCodeEditorHistoryDialog::executeSelectedHistory );
51void QgsCodeEditorHistoryDialog::executeSelectedHistory()
56 QModelIndexList selection = listView->selectionModel()->selectedIndexes();
57 std::sort( selection.begin(), selection.end() );
58 for (
const QModelIndex &index : std::as_const( selection ) )
60 mEditor->runCommand( index.data( Qt::DisplayRole ).toString() );
64void QgsCodeEditorHistoryDialog::runCommand(
const QModelIndex &index )
69 mEditor->runCommand( index.data( Qt::DisplayRole ).toString() );
72void QgsCodeEditorHistoryDialog::saveHistory()
77 mEditor->writeHistoryFile();
80void QgsCodeEditorHistoryDialog::reloadHistory()
84 mModel->setStringList( mEditor->history() );
87 listView->scrollToBottom();
88 listView->setCurrentIndex( mModel->index( mModel->rowCount() - 1, 0 ) );
91void QgsCodeEditorHistoryDialog::deleteItem()
93 const QModelIndexList selection = listView->selectionModel()->selectedRows();
94 if ( selection.empty() )
97 QList<int> selectedRows;
98 selectedRows.reserve( selection.size() );
99 for (
const QModelIndex &index : selection )
100 selectedRows << index.row();
101 std::sort( selectedRows.begin(), selectedRows.end(), std::greater<int>() );
103 for (
int row : std::as_const( selectedRows ) )
106 mEditor->removeHistoryCommand( row );
109 mModel->removeRow( row );
114CodeHistoryModel::CodeHistoryModel( QObject *parent )
115 : QStringListModel( parent )
120QVariant CodeHistoryModel::data(
const QModelIndex &index,
int role )
const
122 if ( role == Qt::FontRole )
127 return QStringListModel::data( index, role );
QgsCodeEditorHistoryDialog(QgsCodeEditor *editor, QWidget *parent=nullptr)
Constructor for QgsCodeEditorHistoryDialog.
A text editor based on QScintilla2.
static QFont getMonospaceFont()
Returns the monospaced font to use for code editors.
static QString languageToString(Qgis::ScriptLanguage language)
Returns a user-friendly, translated name of the specified script language.