[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdevplatform/plugins/standardoutputview
From:       Andreas Pakulat <apaku () gmx ! de>
Date:       2008-04-29 21:48:36
Message-ID: 1209505716.913665.823.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 802580 by apaku:

Add navigational actions to history view.


 M  +48 -4     outputwidget.cpp  
 M  +8 -0      outputwidget.h  


--- trunk/KDE/kdevplatform/plugins/standardoutputview/outputwidget.cpp #802579:802580
@@ -31,6 +31,7 @@
 #include <QtGui/QVBoxLayout>
 #include <QtGui/QStackedWidget>
 #include <kmenu.h>
+#include <kaction.h>
 #include <kdebug.h>
 #include <klocale.h>
 #include <kicon.h>
@@ -58,6 +59,13 @@
     {
         stackwidget = new QStackedWidget( this );
         layout->addWidget( stackwidget );
+
+        previousAction = new KAction( KIcon( "go-previous" ), i18n("Previous"), this \
); +        connect(previousAction, SIGNAL(triggered()), this, \
SLOT(previousOutput())); +        addAction(previousAction);
+        nextAction = new KAction( KIcon( "go-next" ), i18n("Next"), this );
+        connect(nextAction, SIGNAL(triggered()), this, SLOT(nextOutput()));
+        addAction(nextAction);
     }
 
     connect( data, SIGNAL( outputAdded( int ) ), 
@@ -74,6 +82,7 @@
         changeModel( id );
         changeDelegate( id );
     }
+    enableActions();
 }
 
 void OutputWidget::addOutput( int id )
@@ -82,6 +91,7 @@
     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))); +    enableActions();
 }
 
 void OutputWidget::setCurrentWidget( QListView* view )
@@ -150,6 +160,7 @@
         }
         emit outputRemoved( data->toolViewId, id );
     }
+    enableActions();
 }
 
 void OutputWidget::closeActiveView()
@@ -168,6 +179,7 @@
             }
         }
     }
+    enableActions();
 }
 
 QWidget* OutputWidget::currentWidget()
@@ -252,9 +264,9 @@
 
 QListView* OutputWidget::createListView(int id)
 {
+    QListView* listview = 0;
     if( !views.contains(id) )
     {
-        QListView* listview = 0;
         if( data->type & KDevelop::IOutputView::MultipleView || data->type & \
KDevelop::IOutputView::HistoryView )  {
             kDebug(9500) << "creating listview";
@@ -293,11 +305,12 @@
         }
         changeModel( id );
         changeDelegate( id );
-        return listview;
     } else
     {
-        return views.value(id);
+        listview = views.value(id);
     }
+    enableActions();
+    return listview;
 }
 
 void OutputWidget::raiseOutput(int id)
@@ -316,10 +329,41 @@
             int idx = stackwidget->indexOf( views.value(id) );
             if( idx >= 0 )
             {
-                tabwidget->setCurrentIndex( idx );
+                stackwidget->setCurrentIndex( idx );
             }
         }
     }
+    enableActions();
 }
 
+void OutputWidget::nextOutput()
+{
+    if( stackwidget && stackwidget->currentIndex() < stackwidget->count()-1 )
+    {
+        stackwidget->setCurrentIndex( stackwidget->currentIndex()+1 );
+    }
+    enableActions();
+}
+
+void OutputWidget::previousOutput()
+{
+    if( stackwidget && stackwidget->currentIndex() > 0 )
+    {
+        stackwidget->setCurrentIndex( stackwidget->currentIndex()-1 );
+    }
+    enableActions();
+}
+
+void OutputWidget::enableActions()
+{
+    if( data->type == KDevelop::IOutputView::HistoryView )
+    {
+        Q_ASSERT(stackwidget);
+        Q_ASSERT(nextAction);
+        Q_ASSERT(previousAction);
+        previousAction->setEnabled( ( stackwidget->currentIndex() > 0 ) );
+        nextAction->setEnabled( ( stackwidget->currentIndex() < stackwidget->count() \
- 1 ) ); +    }
+}
+
 #include "outputwidget.moc"
--- trunk/KDE/kdevplatform/plugins/standardoutputview/outputwidget.h #802579:802580
@@ -32,6 +32,7 @@
 class ToolViewData;
 class KTabWidget;
 class QModelIndex;
+class KAction;
 
 class OutputWidget : public QWidget
 {
@@ -51,16 +52,23 @@
 
 Q_SIGNALS:
     void outputRemoved( int, int );
+
+private slots:
+    void nextOutput();
+    void previousOutput();
 private:
     QListView* createListView(int id);
     void setCurrentWidget( QListView* view );
     QWidget* currentWidget();
+    void enableActions();
 
     QMap<int, QListView*> views;
     KTabWidget* tabwidget;
     QStackedWidget* stackwidget;
     ToolViewData* data;
     QToolButton* m_closeButton;
+    KAction* nextAction;
+    KAction* previousAction;
 };
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic