[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdevplatform] e08b99c: Enable multiline (continous) selection in the
From: Mantia Andras <amantia () kde ! org>
Date: 2010-07-05 22:24:03
Message-ID: 201007052224.o65MO3o1019398 () kore ! kollide ! net
[Download RAW message or body]
commit e08b99c3de74079c9107b0881fe6b50591094a97
Author: Mantia Andras <amantia@kde.org>
Date: Tue Jul 6 01:38:21 2010 +0300
Enable multiline (continous) selection in the output views and add a Copy action, \
so you can copy from them (eg. from the Run/Debug/Build views).
diff --git a/plugins/standardoutputview/outputwidget.cpp \
b/plugins/standardoutputview/outputwidget.cpp index c18949c..c073d71 100644
--- a/plugins/standardoutputview/outputwidget.cpp
+++ b/plugins/standardoutputview/outputwidget.cpp
@@ -30,6 +30,8 @@
#include <QtGui/QScrollBar>
#include <QtGui/QVBoxLayout>
#include <QtGui/QStackedWidget>
+#include <QtGui/QApplication>
+#include <QtGui/QClipboard>
#include <kmenu.h>
#include <kaction.h>
#include <kdebug.h>
@@ -37,6 +39,7 @@
#include <klocale.h>
#include <kicon.h>
#include <ktabwidget.h>
+#include <kstandardaction.h>
#include <outputview/ioutputviewmodel.h>
#include <util/focusedtreeview.h>
@@ -74,6 +77,10 @@ OutputWidget::OutputWidget(QWidget* parent, ToolViewData* tvdata)
addAction(nextAction);
}
+ copyAction = KStandardAction::copy(this);
+ copyAction->setShortcut(KShortcut());
+ connect(copyAction, SIGNAL(triggered()), SLOT(copySelection()));
+ addAction(copyAction);
activateOnSelect = new KToggleAction( KIcon(), i18n("Select activated Item"), \
this ); addAction(activateOnSelect);
activateOnSelect->setChecked( true );
@@ -102,6 +109,7 @@ OutputWidget::OutputWidget(QWidget* parent, ToolViewData* tvdata)
void OutputWidget::addOutput( int id )
{
QTreeView* listview = createListView(id);
+ listview->setSelectionMode(QAbstractItemView::ContiguousSelection);
setCurrentWidget( listview );
connect( data->outputdata.value(id), SIGNAL(modelChanged(int)), this, \
SLOT(changeModel(int)));
connect( data->outputdata.value(id), SIGNAL(delegateChanged(int)), this, \
SLOT(changeDelegate(int))); @@ -432,4 +440,24 @@ void OutputWidget::scrollToIndex( \
const QModelIndex& idx ) view->scrollTo( idx );
}
+void OutputWidget::copySelection()
+{
+ QWidget* widget = currentWidget();
+ if( !widget )
+ return;
+ QAbstractItemView *view = dynamic_cast<QAbstractItemView*>(widget);
+ if( !view )
+ return;
+
+ QClipboard *cb = QApplication::clipboard();
+ QModelIndexList indexes = view->selectionModel()->selectedRows();
+ QString content;
+ Q_FOREACH( QModelIndex index, indexes) {
+ content += view->model()->data(index).toString() + "\n";
+ }
+ cb->setText(content);
+}
+
+
+
#include "outputwidget.moc"
diff --git a/plugins/standardoutputview/outputwidget.h \
b/plugins/standardoutputview/outputwidget.h index aa125c1..f316a08 100644
--- a/plugins/standardoutputview/outputwidget.h
+++ b/plugins/standardoutputview/outputwidget.h
@@ -60,6 +60,7 @@ private slots:
void nextOutput();
void previousOutput();
void rowsInserted(const QModelIndex&, int, int);
+ void copySelection();
private:
QTreeView* createListView(int id);
@@ -75,6 +76,7 @@ private:
QToolButton* m_closeButton;
KAction* nextAction;
KAction* previousAction;
+ KAction* copyAction;
KToggleAction* activateOnSelect;
KToggleAction* focusOnSelect;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic