[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_The_next_?=
From:       Laszlo Papp <djszapi () archlinux ! us>
Date:       2011-02-06 15:04:14
Message-ID: 20110206150414.85463A60D1 () git ! kde ! org
[Download RAW message or body]

Git commit 352edcea437f2316986f083e27770050b7e005bb by Laszlo Papp.
Committed on 06/02/11 at 16:04.
Pushed by lpapp into branch 'master'.

KDE Extended Player: The next fairly bigger patch of the GamesView.

M  +1    -1    player/kdeext/CMakeLists.txt     
D  +0    -43   player/kdeext/delegates/itemsviewbasedelegate.cpp     
D  +0    -63   player/kdeext/delegates/itemsviewbasedelegate.h     
M  +5    -4    player/kdeext/gamesoverlay.cpp     
M  +13   -9    player/kdeext/gamesoverlay.h     
M  +5    -0    player/kdeext/models/gameitemsmodel.cpp     
M  +2    -0    player/kdeext/models/gameitemsmodel.h     
M  +31   -8    player/kdeext/views/gamesviewitem.cpp     
M  +13   -1    player/kdeext/views/gamesviewitem.h     

http://commits.kde.org/gluon/352edcea437f2316986f083e27770050b7e005bb

diff --git a/player/kdeext/CMakeLists.txt b/player/kdeext/CMakeLists.txt
index 385287d..d0e3f30 100644
--- a/player/kdeext/CMakeLists.txt
+++ b/player/kdeext/CMakeLists.txt
@@ -13,7 +13,7 @@ set(kdeextplayer_SRCS
     gamesoverlay.cpp
     gamedetailsoverlay.cpp
     loginform.cpp
-    delegates/itemsviewbasedelegate.cpp
+    delegates/itemsviewdelegate.cpp
     models/listmodel.cpp
     models/gameitemsmodel.cpp
     views/abstractitemview.cpp
diff --git a/player/kdeext/delegates/itemsviewbasedelegate.cpp \
b/player/kdeext/delegates/itemsviewbasedelegate.cpp deleted file mode 100644
index 4fc198d..0000000
--- a/player/kdeext/delegates/itemsviewbasedelegate.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*****************************************************************************
- * This file is part of the Gluon Development Platform
- * Copyright (c) 2011 Laszlo Papp <djszapi@archlinux.us>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *****************************************************************************/
-
-#include "itemsviewbasedelegate.h"
-
-ItemsViewBaseDelegate::ItemsViewBaseDelegate(QAbstractItemView *itemView, QObject * \
                parent)
-        : KWidgetItemDelegate(itemView, parent)
-        , m_itemView( itemView )
-        , m_preview( KIcon( "gluon_creator" ) )
-        , m_gameName( new QLabel( m_itemView) )
-        , m_gameDescription( new QLabel( m_itemView ) )
-{
-}
-
-ItemsViewBaseDelegate::~ItemsViewBaseDelegate()
-{
-}
-
-bool ItemsViewBaseDelegate::eventFilter(QObject *watched, QEvent *event)
-{
-   if (event->type() == QEvent::MouseButtonDblClick) {
-       return true;
-   }
-
-   return KWidgetItemDelegate::eventFilter(watched, event);
-}
-
diff --git a/player/kdeext/delegates/itemsviewbasedelegate.h \
b/player/kdeext/delegates/itemsviewbasedelegate.h deleted file mode 100644
index 203c29e..0000000
--- a/player/kdeext/delegates/itemsviewbasedelegate.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*****************************************************************************
- * This file is part of the Gluon Development Platform
- * Copyright (c) 2011 Laszlo Papp <djszapi@archlinux.us>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *****************************************************************************/
-
-#ifndef GLUON_ITEMSVIEWBASEDELEGATE_H
-#define GLUON_ITEMSVIEWBASEDELEGATE_H
-
-#include <KDE/KIcon>
-#include <KDE/KWidgetItemDelegate>
-
-#include <QtGui/QAbstractItemView>
-#include <QtGui/QLabel>
-#include <QtGui/QImage>
-
-#include <QtCore/QList>
-#include <QtCore/QModelIndex>
-
-class ItemsViewBaseDelegate: public KWidgetItemDelegate
-{
-    Q_OBJECT
-public:
-    explicit ItemsViewBaseDelegate(QAbstractItemView* itemView, QObject* parent = \
                0);
-    virtual ~ItemsViewBaseDelegate();
-
-    // paint the item at index with all its attributes shown
-    virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const \
                QModelIndex& index) const = 0;
-
-    // get the list of widgets
-    virtual QList<QWidget*> createItemWidgets() const = 0;
-
-    // update the widgets
-    virtual void updateItemWidgets(const QList<QWidget*> widgets,
-                                   const QStyleOptionViewItem &option,
-                                   const QPersistentModelIndex &index) const =0;
-
-    virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& \
                index) const = 0;
-
-protected slots:
-    bool eventFilter(QObject *watched, QEvent *event);
-
-protected:
-    QAbstractItemView *m_itemView;
-    KIcon m_preview;
-    QLabel m_gameName;
-    QLabel m_gameDescription;
-};
-
-#endif
diff --git a/player/kdeext/gamesoverlay.cpp b/player/kdeext/gamesoverlay.cpp
index 416e69e..cbb06bc 100644
--- a/player/kdeext/gamesoverlay.cpp
+++ b/player/kdeext/gamesoverlay.cpp
@@ -25,12 +25,13 @@ GamesOverlay::GamesOverlay( QWidget* parent, Qt::WindowFlags \
wFlags )  : QWidget( parent, wFlags )
     , m_view( new QListView( this ) )
     , m_model( new ListModel( m_view ) )
-    , m_gamesView( new GamesView( this ) )
+    , m_gamesView( new QListView( this ) )
+    , m_gamesDelegate( new ItemsViewDelegate(m_gamesView, this) )
     , m_loginForm( new LoginForm( this ) )
     , m_gridLayout( new QGridLayout( this ) )
     , m_stackedWidget( new QStackedWidget( this ) )
-    , m_availableView( new QLabel( i18n( "Coming soon!" ), this ) )
-    , m_communityView( new QLabel( i18n( "Community. Under development!" ), this ) )
+    , m_availableView( new KSqueezedTextLabel( i18n( "Coming soon!" ), this ) )
+    , m_communityView( new KSqueezedTextLabel( i18n( "Community. Under development!" \
), this ) )  {
     connect( m_gamesView, SIGNAL( gameToPlaySelected( QModelIndex ) ), SIGNAL( \
                gameToPlaySelected( QModelIndex ) ) );
     connect( m_gamesView, SIGNAL( gameSelected( QModelIndex ) ), SIGNAL( \
gameSelected( QModelIndex ) ) ); @@ -59,7 +60,7 @@ GamesOverlay::GamesOverlay( \
                QWidget* parent, Qt::WindowFlags wFlags )
            SLOT( selectionChanged( const QModelIndex &, const QModelIndex &) ) );
 }
 
-GamesView* GamesOverlay::gamesView()
+QListView* GamesOverlay::gamesView()
 {
     return m_gamesView;
 }
diff --git a/player/kdeext/gamesoverlay.h b/player/kdeext/gamesoverlay.h
index fc651cc..c129f3f 100644
--- a/player/kdeext/gamesoverlay.h
+++ b/player/kdeext/gamesoverlay.h
@@ -21,14 +21,13 @@
 #define GAMESOVERLAY_H
 
 #include "loginform.h"
-#include "views/gamesview.h"
-
 #include "models/listmodel.h"
+#include "delegates/itemsviewdelegate.h"
 
 #include <KDE/KIcon>
 #include <KDE/KLocalizedString>
+#include <KDE/KSqueezedTextLabel>
 
-#include <QtGui/QLabel>
 #include <QtGui/QGridLayout>
 #include <QtGui/QListView>
 #include <QtGui/QStackedWidget>
@@ -43,10 +42,12 @@ namespace GluonKDEPlayer
 
         public:
             explicit GamesOverlay( QWidget* parent = 0, Qt::WindowFlags wFlags = 0 \
                );
-            GamesView* gamesView();
+            virtual ~GamesOverlay() {}
+
+            QListView* gamesView();
 
-            protected slots:
-                void selectionChanged( const QModelIndex & current, const \
QModelIndex & previous ); +        protected slots:
+            void selectionChanged( const QModelIndex & current, const QModelIndex & \
previous );  
         signals:
             void gameToPlaySelected( const QModelIndex& index );
@@ -55,12 +56,15 @@ namespace GluonKDEPlayer
         private:
             QListView* m_view;
             ListModel* m_model;
-            GamesView* m_gamesView;
+
+            QListView* m_gamesView;
+            ItemsViewDelegate* m_gamesDelegate;
+
             LoginForm* m_loginForm;
             QGridLayout* m_gridLayout;
             QStackedWidget* m_stackedWidget;
-            QLabel* m_availableView;
-            QLabel* m_communityView;
+            KSqueezedTextLabel* m_availableView;
+            KSqueezedTextLabel* m_communityView;
     };
 }
 #endif // GAMESOVERLAY_H
diff --git a/player/kdeext/models/gameitemsmodel.cpp \
b/player/kdeext/models/gameitemsmodel.cpp index 53c7a89..6430060 100644
--- a/player/kdeext/models/gameitemsmodel.cpp
+++ b/player/kdeext/models/gameitemsmodel.cpp
@@ -62,6 +62,11 @@ int GameItemsModel::rowCount( const QModelIndex& /* parent */ ) \
const  return m_gamesViewItems.count();
 }
 
+int GameItemsModel::columnCount( const QModelIndex& /* parent */ ) const
+{
+    return 1;
+}
+
 QVariant GameItemsModel::headerData( int section, Qt::Orientation orientation, int \
role ) const  {
     if( section == 0 )
diff --git a/player/kdeext/models/gameitemsmodel.h \
b/player/kdeext/models/gameitemsmodel.h index 2d48f0f..422d60b 100644
--- a/player/kdeext/models/gameitemsmodel.h
+++ b/player/kdeext/models/gameitemsmodel.h
@@ -39,6 +39,7 @@ namespace GluonKDEPlayer
      */
     class GameItemsModel : public QAbstractListModel
     {
+        Q_OBJECT
         public:
             explicit GameItemsModel( QObject* parent = 0 );
             virtual ~GameItemsModel() {}
@@ -47,6 +48,7 @@ namespace GluonKDEPlayer
             virtual QVariant headerData( int section, Qt::Orientation orientation, \
int role = Qt::DisplayRole ) const;  
             virtual int rowCount( const QModelIndex& parent = QModelIndex() ) const;
+            virtual int columnCount( const QModelIndex& parent = QModelIndex() ) \
const;  
         private:
             QList<GamesViewItem*> m_gamesViewItems;
diff --git a/player/kdeext/views/gamesviewitem.cpp \
b/player/kdeext/views/gamesviewitem.cpp index 2a210c2..0eda05b 100644
--- a/player/kdeext/views/gamesviewitem.cpp
+++ b/player/kdeext/views/gamesviewitem.cpp
@@ -26,7 +26,7 @@ GamesViewItem::GamesViewItem( QWidget* parent, Qt::WindowFlags \
wFlags )  , m_preview( new KSqueezedTextLabel )
     , m_gameName( new KSqueezedTextLabel( this ) )
     , m_gameDescription( new KSqueezedTextLabel( this ) )
-    // , m_playButton( new KPushButton( this ) )
+    , m_playButton( new KPushButton( this ) )
     , m_layout( new QGridLayout() )
 {
 }
@@ -36,7 +36,7 @@ GamesViewItem::GamesViewItem( QString gameName, QString \
gameDescription, QWidget  , m_preview( new KSqueezedTextLabel )
     , m_gameName( new KSqueezedTextLabel( this ) )
     , m_gameDescription( new KSqueezedTextLabel( this ) )
-    // , m_playButton( new KPushButton( this ) )
+    , m_playButton( new KPushButton( this ) )
     , m_layout( new QGridLayout() )
 {
     layoutWidgets(gameName, gameDescription);
@@ -49,10 +49,9 @@ GamesViewItem::GamesViewItem( const GamesViewItem& other, QWidget* \
parent )  
 void GamesViewItem::layoutWidgets(const QString& gameName, const QString& \
gameDescription)  {
-
-    // m_playButton->setIcon( KIcon( "media-playback-start" ) );
-    // m_playButton->setSizePolicy( QSizePolicy::Maximum, \
                QSizePolicy::MinimumExpanding );
-    // connect( m_playButton, SIGNAL( activated() ), SLOT( playGameActivated() ) );
+    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 );
@@ -61,7 +60,7 @@ void GamesViewItem::layoutWidgets(const QString& gameName, const \
QString& gameDe  m_layout->addWidget( m_preview, 0, 0, 2, 1 );
     m_layout->addWidget( m_gameName, 0, 1 );
     m_layout->addWidget( m_gameDescription, 1, 1 );
-    // m_layout->addWidget( m_playButton, 0, 2, 2, 1 );
+    m_layout->addWidget( m_playButton, 0, 2, 2, 1 );
     setLayout( m_layout );
 }
 
@@ -75,7 +74,31 @@ QModelIndex GamesViewItem::modelIndex() const
     return m_index;
 }
 
+void GamesViewItem::playGameActivated()
+{
+    emit gameToPlaySelected( m_index );
+}
+
 void GamesViewItem::mousePressEvent( QMouseEvent* /* event */ )
 {
-    // emit gameSelected( m_index );
+    emit gameSelected( m_index );
+}
+
+QString GamesViewItem::gameName() const
+{
+    return m_gameName->text();
+}
+void GamesViewItem::setGameName( QString newGameName )
+{
+    m_gameName->setText( newGameName );
+}
+
+QString GamesViewItem::gameDescription() const
+{
+    return m_gameDescription->text();
+}
+
+void GamesViewItem::setGameDescription( QString newGameDescription )
+{
+    m_gameDescription->setText( newGameDescription );
 }
diff --git a/player/kdeext/views/gamesviewitem.h \
b/player/kdeext/views/gamesviewitem.h index 04b590d..da4c557 100644
--- a/player/kdeext/views/gamesviewitem.h
+++ b/player/kdeext/views/gamesviewitem.h
@@ -20,7 +20,7 @@
 #ifndef GAMESVIEWITEM_H
 #define GAMESVIEWITEM_H
 
-// #include <KDE/KPushButton>
+#include <KDE/KPushButton>
 #include <KDE/KLocalizedString>
 #include <KDE/KIcon>
 #include <KDE/KSqueezedTextLabel>
@@ -44,17 +44,29 @@ namespace GluonKDEPlayer
             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(const QString& gameName, const QString& \
gameDescription);  virtual void mousePressEvent( QMouseEvent* event );
 
+        public:
+            QString gameName() const;
+            void setGameName( QString newGameName );
+
+            QString gameDescription() const;
+            void setGameDescription( QString newGameDescription );
+
             QModelIndex m_index;
             KSqueezedTextLabel* m_preview;
             KSqueezedTextLabel* m_gameName;
             KSqueezedTextLabel* m_gameDescription;
+            KPushButton* m_playButton;
             QGridLayout* m_layout;
     };
 }


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

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