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

List:       kde-commits
Subject:    =?utf-8?q?=5Bgluon=5D_player=3A_KDE_Extended_Player=3A_Big_refac?=
From:       Laszlo Papp <djszapi () archlinux ! us>
Date:       2011-02-06 15:04:14
Message-ID: 20110206150414.62CA6A60BE () git ! kde ! org
[Download RAW message or body]

Git commit 5f30b92244a6fab5251d5eac43c9c02bf7940fa0 by Laszlo Papp.
Committed on 06/02/11 at 14:24.
Pushed by lpapp into branch 'master'.

KDE Extended Player: Big refactoring of the model, view, delegate.

M  +1    -0    player/kdeext/CMakeLists.txt     
M  +2    -2    player/kdeext/gamesoverlay.cpp     
M  +25   -23   player/kdeext/gamesoverlay.h     
M  +3    -3    player/kdeext/main.cpp     
M  +2    -2    player/kdeext/mainwindow.cpp     
M  +1    -1    player/kdeext/mainwindow.h     
M  +1    -1    player/kdeext/models/gameitemsmodel.cpp     
M  +13   -11   player/kdeext/views/gamesview.cpp     
M  +15   -11   player/kdeext/views/gamesview.h     
M  +26   -15   player/kdeext/views/gamesviewitem.cpp     
M  +29   -25   player/kdeext/views/gamesviewitem.h     

http://commits.kde.org/gluon/5f30b92244a6fab5251d5eac43c9c02bf7940fa0

diff --git a/player/kdeext/CMakeLists.txt b/player/kdeext/CMakeLists.txt
index 4becdc1..385287d 100644
--- a/player/kdeext/CMakeLists.txt
+++ b/player/kdeext/CMakeLists.txt
@@ -15,6 +15,7 @@ set(kdeextplayer_SRCS
     loginform.cpp
     delegates/itemsviewbasedelegate.cpp
     models/listmodel.cpp
+    models/gameitemsmodel.cpp
     views/abstractitemview.cpp
     views/achievementsview.cpp
     views/newcommentform.cpp
diff --git a/player/kdeext/gamesoverlay.cpp b/player/kdeext/gamesoverlay.cpp
index b8d7270..416e69e 100644
--- a/player/kdeext/gamesoverlay.cpp
+++ b/player/kdeext/gamesoverlay.cpp
@@ -18,8 +18,8 @@
  */
 
 #include "gamesoverlay.h"
-#include "loginform.h"
-#include "views/gamesview.h"
+
+using namespace GluonKDEPlayer;
 
 GamesOverlay::GamesOverlay( QWidget* parent, Qt::WindowFlags wFlags )
     : QWidget( parent, wFlags )
diff --git a/player/kdeext/gamesoverlay.h b/player/kdeext/gamesoverlay.h
index d044ab7..fc651cc 100644
--- a/player/kdeext/gamesoverlay.h
+++ b/player/kdeext/gamesoverlay.h
@@ -20,6 +20,9 @@
 #ifndef GAMESOVERLAY_H
 #define GAMESOVERLAY_H
 
+#include "loginform.h"
+#include "views/gamesview.h"
+
 #include "models/listmodel.h"
 
 #include <KDE/KIcon>
@@ -32,33 +35,32 @@
 #include <QtGui/QItemSelectionModel>
 #include <QtCore/QModelIndex>
 
-class GamesView;
-class LoginForm;
-
-class GamesOverlay : public QWidget
+namespace GluonKDEPlayer
 {
+    class GamesOverlay : public QWidget
+    {
         Q_OBJECT
 
-    public:
-        explicit GamesOverlay( QWidget* parent = 0, Qt::WindowFlags wFlags = 0 );
-        GamesView* gamesView();
-
-    protected slots:
-        void selectionChanged( const QModelIndex & current, const QModelIndex & \
previous ); +        public:
+            explicit GamesOverlay( QWidget* parent = 0, Qt::WindowFlags wFlags = 0 \
); +            GamesView* gamesView();
 
-    signals:
-        void gameToPlaySelected( const QModelIndex& index );
-        void gameSelected( const QModelIndex& index );
+            protected slots:
+                void selectionChanged( const QModelIndex & current, const \
QModelIndex & previous );  
-    private:
-        QListView* m_view;
-        ListModel* m_model;
-        GamesView* m_gamesView;
-        LoginForm* m_loginForm;
-        QGridLayout* m_gridLayout;
-        QStackedWidget* m_stackedWidget;
-        QLabel* m_availableView;
-        QLabel* m_communityView;
-};
+        signals:
+            void gameToPlaySelected( const QModelIndex& index );
+            void gameSelected( const QModelIndex& index );
 
+        private:
+            QListView* m_view;
+            ListModel* m_model;
+            GamesView* m_gamesView;
+            LoginForm* m_loginForm;
+            QGridLayout* m_gridLayout;
+            QStackedWidget* m_stackedWidget;
+            QLabel* m_availableView;
+            QLabel* m_communityView;
+    };
+}
 #endif // GAMESOVERLAY_H
diff --git a/player/kdeext/main.cpp b/player/kdeext/main.cpp
index 8dd3bf4..e14e420 100644
--- a/player/kdeext/main.cpp
+++ b/player/kdeext/main.cpp
@@ -47,11 +47,11 @@ int main( int argc, char** argv )
 
     KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
 
-    GluonKDEExtPlayer::MainWindow *window;
+    GluonKDEPlayer::MainWindow *window;
     if (args->count())
-        window = new GluonKDEExtPlayer::MainWindow(args->arg(0));
+        window = new GluonKDEPlayer::MainWindow(args->arg(0));
     else
-        window = new GluonKDEExtPlayer::MainWindow();
+        window = new GluonKDEPlayer::MainWindow();
 
     window->show();
     app.exec();
diff --git a/player/kdeext/mainwindow.cpp b/player/kdeext/mainwindow.cpp
index f02a087..20ba0db 100644
--- a/player/kdeext/mainwindow.cpp
+++ b/player/kdeext/mainwindow.cpp
@@ -45,7 +45,7 @@
 #include <QtGui/QLabel>
 #include <QtCore/QTimer>
 
-using namespace GluonKDEExtPlayer;
+using namespace GluonKDEPlayer;
 
 class MainWindow::MainWindowPrivate
 {
@@ -249,7 +249,7 @@ void MainWindow::resizeEvent( QResizeEvent* event )
 
 void MainWindow::showGames()
 {
-    m_gamesOverlay->gamesView()->setModel( m_gamesModel );
+    // m_gamesOverlay->gamesView()->setModel( m_gamesModel );
     m_gamesOverlay->setGeometry( geometry() );
     connect( m_gamesOverlay, SIGNAL( gameToPlaySelected( QModelIndex ) ), SLOT( \
                setProject( QModelIndex ) ) );
     connect( m_gamesOverlay, SIGNAL( gameSelected( QModelIndex ) ), SLOT( \
                showGameDetails( QModelIndex ) ) );
diff --git a/player/kdeext/mainwindow.h b/player/kdeext/mainwindow.h
index 2721053..83985c6 100644
--- a/player/kdeext/mainwindow.h
+++ b/player/kdeext/mainwindow.h
@@ -44,7 +44,7 @@
 
 class KRecentFilesAction;
 
-namespace GluonKDEExtPlayer {
+namespace GluonKDEPlayer {
     /**
      * The main window of the KDE Player frontend
      */
diff --git a/player/kdeext/models/gameitemsmodel.cpp \
b/player/kdeext/models/gameitemsmodel.cpp index 505c7d3..53c7a89 100644
--- a/player/kdeext/models/gameitemsmodel.cpp
+++ b/player/kdeext/models/gameitemsmodel.cpp
@@ -51,7 +51,7 @@ QVariant GameItemsModel::data( const QModelIndex& index, int role ) \
const  {
     if( role == Qt::UserRole )
     {
-
+        return QVariant::fromValue( m_gamesViewItems.at( index.row() ) );
     }
 
     return QVariant();
diff --git a/player/kdeext/views/gamesview.cpp b/player/kdeext/views/gamesview.cpp
index 5071e59..9825d18 100644
--- a/player/kdeext/views/gamesview.cpp
+++ b/player/kdeext/views/gamesview.cpp
@@ -18,7 +18,9 @@
  */
 
 #include "gamesview.h"
-#include "gamesviewitem.h"
+// #include "views/gamesviewitem.h"
+
+using namespace GluonKDEPlayer;
 
 GamesView::GamesView( QWidget* parent, Qt::WindowFlags wFlags )
     : AbstractItemView( parent, wFlags )
@@ -30,16 +32,16 @@ void GamesView::setModel( QAbstractItemModel* model )
 {
     AbstractItemView::setModel( model );
 
-    for( int i = 0; i < m_model->rowCount(); ++i )
-    {
-        GamesViewItem* item = new GamesViewItem( this );
-        item->setModelIndex( m_model->index( i, 0 ) );
-        // item->setAcceptHoverEvents( true );
-        item->installEventFilter( this );
-        connect( item, SIGNAL( gameToPlaySelected( QModelIndex ) ), SIGNAL( \
                gameToPlaySelected( QModelIndex ) ) );
-        connect( item, SIGNAL( gameSelected( QModelIndex ) ), SIGNAL( gameSelected( \
                QModelIndex ) ) );
-        m_contentLayout->addWidget( item );
-    }
+    // for( int i = 0; i < m_model->rowCount(); ++i )
+    // {
+        // GamesViewItem* item = new GamesViewItem( this );
+        // item->setModelIndex( m_model->index( i, 0 ) );
+        // // item->setAcceptHoverEvents( true );
+        // item->installEventFilter( this );
+        // connect( item, SIGNAL( gameToPlaySelected( QModelIndex ) ), SIGNAL( \
gameToPlaySelected( QModelIndex ) ) ); +        // connect( item, SIGNAL( \
gameSelected( QModelIndex ) ), SIGNAL( gameSelected( QModelIndex ) ) ); +        // \
m_contentLayout->addWidget( item ); +    // }
 }
 
 bool GamesView::eventFilter( QObject* obj, QEvent* event )
diff --git a/player/kdeext/views/gamesview.h b/player/kdeext/views/gamesview.h
index a7a78ff..efd0cdf 100644
--- a/player/kdeext/views/gamesview.h
+++ b/player/kdeext/views/gamesview.h
@@ -24,26 +24,30 @@
 
 #include <KDE/KTitleWidget>
 
+#include <QtCore/QEvent>
 #include <QtGui/QGridLayout>
 #include <QtCore/QModelIndex>
 
 class QAbstractItemModel;
 
-class GamesView : public AbstractItemView
+namespace GluonKDEPlayer
 {
+    class GamesView : public AbstractItemView
+    {
         Q_OBJECT
-    public:
-        GamesView( QWidget* parent = 0, Qt::WindowFlags wFlags = 0 );
-        virtual void setModel( QAbstractItemModel* model );
+        public:
+            GamesView( QWidget* parent = 0, Qt::WindowFlags wFlags = 0 );
+            virtual void setModel( QAbstractItemModel* model );
 
-    protected:
-        KTitleWidget* m_itemBackground;
+        protected:
+            KTitleWidget* m_itemBackground;
 
-        bool eventFilter( QObject* obj, QEvent* event );
+            bool eventFilter( QObject* obj, QEvent* event );
 
-    signals:
-        void gameToPlaySelected( const QModelIndex& index );
-        void gameSelected( const QModelIndex& index );
-};
+        signals:
+            void gameToPlaySelected( const QModelIndex& index );
+            void gameSelected( const QModelIndex& index );
+    };
+}
 
 #endif // GAMESVIEW_H
diff --git a/player/kdeext/views/gamesviewitem.cpp \
b/player/kdeext/views/gamesviewitem.cpp index a7aba77..2a210c2 100644
--- a/player/kdeext/views/gamesviewitem.cpp
+++ b/player/kdeext/views/gamesviewitem.cpp
@@ -18,7 +18,8 @@
  */
 
 #include "gamesviewitem.h"
-#include "lib/models/gamesmodel.h"
+
+using namespace GluonKDEPlayer;
 
 GamesViewItem::GamesViewItem( QWidget* parent, Qt::WindowFlags wFlags )
     : QWidget( parent, wFlags )
@@ -30,22 +31,33 @@ GamesViewItem::GamesViewItem( QWidget* parent, Qt::WindowFlags \
wFlags )  {
 }
 
-void GamesViewItem::setModelIndex( const QModelIndex& index )
+GamesViewItem::GamesViewItem( QString gameName, QString gameDescription, QWidget* \
parent, Qt::WindowFlags wFlags ) +    : QWidget( parent, wFlags )
+    , m_preview( new KSqueezedTextLabel )
+    , m_gameName( new KSqueezedTextLabel( this ) )
+    , m_gameDescription( new KSqueezedTextLabel( this ) )
+    // , m_playButton( new KPushButton( this ) )
+    , m_layout( new QGridLayout() )
 {
-    m_index = index;
-    layoutWidgets();
+    layoutWidgets(gameName, gameDescription);
 }
 
-void GamesViewItem::layoutWidgets()
+GamesViewItem::GamesViewItem( const GamesViewItem& other, QWidget* parent )
+    : QWidget( parent )
+{
+}
+
+void GamesViewItem::layoutWidgets(const QString& gameName, const QString& \
gameDescription)  {
-    m_preview->setPixmap(KIcon( "gluon-creator").pixmap(32, 32));
-    m_gameName->setText( m_index.sibling( m_index.row(), \
                GluonPlayer::GamesModel::NameColumn ).data().toString() );
-    m_gameDescription->setText( m_index.sibling( m_index.row(), \
GluonPlayer::GamesModel::DescriptionColumn ).data().toString() );  
     // m_playButton->setIcon( KIcon( "media-playback-start" ) );
     // m_playButton->setSizePolicy( QSizePolicy::Maximum, \
                QSizePolicy::MinimumExpanding );
     // connect( m_playButton, SIGNAL( activated() ), SLOT( playGameActivated() ) );
 
+    m_preview->setPixmap(KIcon( "gluon-creator").pixmap(32, 32));
+    m_gameName->setText( gameName );
+    m_gameDescription->setText( gameDescription );
+
     m_layout->addWidget( m_preview, 0, 0, 2, 1 );
     m_layout->addWidget( m_gameName, 0, 1 );
     m_layout->addWidget( m_gameDescription, 1, 1 );
@@ -53,18 +65,17 @@ void GamesViewItem::layoutWidgets()
     setLayout( m_layout );
 }
 
-QModelIndex GamesViewItem::modelIndex() const
+void GamesViewItem::setModelIndex( const QModelIndex& index )
 {
-    return m_index;
+    m_index = index;
 }
 
-void GamesViewItem::playGameActivated()
+QModelIndex GamesViewItem::modelIndex() const
 {
-    emit gameToPlaySelected( m_index );
+    return m_index;
 }
 
-void GamesViewItem::mousePressEvent( QMouseEvent* event )
+void GamesViewItem::mousePressEvent( QMouseEvent* /* event */ )
 {
-    Q_UNUSED( event )
-    emit gameSelected( m_index );
+    // emit gameSelected( m_index );
 }
diff --git a/player/kdeext/views/gamesviewitem.h \
b/player/kdeext/views/gamesviewitem.h index 7588218..04b590d 100644
--- a/player/kdeext/views/gamesviewitem.h
+++ b/player/kdeext/views/gamesviewitem.h
@@ -30,32 +30,36 @@
 #include <QtCore/QModelIndex>
 #include <QtCore/QEvent>
 
-class GamesViewItem : public QWidget
+namespace GluonKDEPlayer
 {
+    class GamesViewItem : public QWidget
+    {
         Q_OBJECT
-    public:
-        GamesViewItem( QWidget* parent = 0, Qt::WindowFlags wFlags = 0 );
-
-        virtual void setModelIndex( const QModelIndex& index );
-        QModelIndex modelIndex() const;
-
-    protected slots:
-        void playGameActivated();
-
-    signals:
-        void gameToPlaySelected( const QModelIndex& index );
-        void gameSelected( const QModelIndex& index );
-
-    protected:
-        void layoutWidgets();
-        virtual void mousePressEvent( QMouseEvent* event );
-
-        QModelIndex m_index;
-        KSqueezedTextLabel* m_preview;
-        KSqueezedTextLabel* m_gameName;
-        KSqueezedTextLabel* m_gameDescription;
-        // KPushButton* m_playButton;
-        QGridLayout* m_layout;
-};
+        public:
+            GamesViewItem( QWidget* parent = 0, Qt::WindowFlags wFlags = 0 );
+            GamesViewItem( const GamesViewItem& other, QWidget* parent = 0 );
+            GamesViewItem( QString gameName, QString gameDescription, QWidget* \
parent = 0, Qt::WindowFlags wFlags = 0 ); +            virtual ~GamesViewItem() {}
+
+            virtual void setModelIndex( const QModelIndex& index );
+            QModelIndex modelIndex() const;
+
+        signals:
+            void gameSelected( const QModelIndex& index );
+
+        protected:
+            void layoutWidgets(const QString& gameName, const QString& \
gameDescription); +            virtual void mousePressEvent( QMouseEvent* event );
+
+            QModelIndex m_index;
+            KSqueezedTextLabel* m_preview;
+            KSqueezedTextLabel* m_gameName;
+            KSqueezedTextLabel* m_gameDescription;
+            QGridLayout* m_layout;
+    };
+}
+
+Q_DECLARE_METATYPE( GluonKDEPlayer::GamesViewItem )
+Q_DECLARE_METATYPE( GluonKDEPlayer::GamesViewItem* )
 
 #endif // GAMESVIEWITEM_H


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

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