17#include "moc_qgscodeeditorhistorydialog.cpp" 
   19#include <QStandardItemModel> 
   33  listView->setToolTip( tr( 
"Double-click on item to execute" ) );
 
   35  mModel = 
new CodeHistoryModel( listView );
 
   36  listView->setModel( mModel );
 
   40  QShortcut *deleteShortcut = 
new QShortcut( QKeySequence( Qt::Key_Delete ), 
this );
 
   41  connect( deleteShortcut, &QShortcut::activated, 
this, &QgsCodeEditorHistoryDialog::deleteItem );
 
   42  connect( listView, &QListView::doubleClicked, 
this, &QgsCodeEditorHistoryDialog::runCommand );
 
   43  connect( mButtonReloadHistory, &QPushButton::clicked, 
this, &QgsCodeEditorHistoryDialog::reloadHistory );
 
   44  connect( mButtonSaveHistory, &QPushButton::clicked, 
this, &QgsCodeEditorHistoryDialog::saveHistory );
 
   45  connect( mButtonRunHistory, &QPushButton::clicked, 
this, &QgsCodeEditorHistoryDialog::executeSelectedHistory );
 
 
   48void QgsCodeEditorHistoryDialog::executeSelectedHistory()
 
   53  QModelIndexList selection = listView->selectionModel()->selectedIndexes();
 
   54  std::sort( selection.begin(), selection.end() );
 
   55  for ( 
const QModelIndex &index : std::as_const( selection ) )
 
   57    mEditor->runCommand( index.data( Qt::DisplayRole ).toString() );
 
   61void QgsCodeEditorHistoryDialog::runCommand( 
const QModelIndex &index )
 
   66  mEditor->runCommand( index.data( Qt::DisplayRole ).toString() );
 
   69void QgsCodeEditorHistoryDialog::saveHistory()
 
   74  mEditor->writeHistoryFile();
 
   77void QgsCodeEditorHistoryDialog::reloadHistory()
 
   81    mModel->setStringList( mEditor->history() );
 
   84  listView->scrollToBottom();
 
   85  listView->setCurrentIndex( mModel->index( mModel->rowCount() - 1, 0 ) );
 
   88void QgsCodeEditorHistoryDialog::deleteItem()
 
   90  const QModelIndexList selection = listView->selectionModel()->selectedRows();
 
   91  if ( selection.empty() )
 
   94  QList<int> selectedRows;
 
   95  selectedRows.reserve( selection.size() );
 
   96  for ( 
const QModelIndex &index : selection )
 
   97    selectedRows << index.row();
 
   98  std::sort( selectedRows.begin(), selectedRows.end(), std::greater<int>() );
 
  100  for ( 
int row : std::as_const( selectedRows ) )
 
  103      mEditor->removeHistoryCommand( row );
 
  106    mModel->removeRow( row );
 
  111CodeHistoryModel::CodeHistoryModel( QObject *parent )
 
  112  : QStringListModel( parent )
 
  117QVariant CodeHistoryModel::data( 
const QModelIndex &index, 
int role )
 const 
  119  if ( role == Qt::FontRole )
 
  124  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.