summaryrefslogtreecommitdiff
diff options
authorChristopher Townsend <christopher.townsend@canonical.com>2012-12-20 21:47:14 +0000
committerTarmac <>2012-12-20 21:47:14 +0000
commit8e67682c465eb0e97ee85e81b1438e891d14be56 (patch)
tree3055ace7e8fd32200354b3500f158d2018e4847d
parentbfa0f8258bda8fbbf033c4685b58eea17e2278c7 (diff)
parenteb71dff9b7d3fa80c209d833b0db58a7469c30a4 (diff)
Refactored the derived preview classes to put the common members into the base Preview class. This should help alleviate code redundancy, code readability, and make the creation of any future new derived preview classes easier.
Approved by Brandon Schaefer. (bzr r3006)
-rw-r--r--dash/previews/ApplicationPreview.cpp8
-rw-r--r--dash/previews/ApplicationPreview.h22
-rw-r--r--dash/previews/GenericPreview.cpp8
-rw-r--r--dash/previews/GenericPreview.h25
-rw-r--r--dash/previews/MoviePreview.cpp8
-rw-r--r--dash/previews/MoviePreview.h23
-rw-r--r--dash/previews/MusicPreview.cpp10
-rw-r--r--dash/previews/MusicPreview.h23
-rw-r--r--dash/previews/Preview.cpp10
-rw-r--r--dash/previews/Preview.h22
-rw-r--r--dash/previews/SocialPreview.cpp8
-rw-r--r--dash/previews/SocialPreview.h21
12 files changed, 36 insertions, 152 deletions
diff --git a/dash/previews/ApplicationPreview.cpp b/dash/previews/ApplicationPreview.cpp
index e36579937..e6abd2787 100644
--- a/dash/previews/ApplicationPreview.cpp
+++ b/dash/previews/ApplicationPreview.cpp
@@ -24,7 +24,6 @@
#include "unity-shared/PreviewStyle.h"
#include "unity-shared/CoverArt.h"
#include "unity-shared/IconTexture.h"
-#include "unity-shared/StaticCairoText.h"
#include "unity-shared/PlacesOverlayVScrollBar.h"
#include <UnityCore/ApplicationPreview.h>
#include <NuxCore/Logger.h>
@@ -38,7 +37,6 @@
#include "ApplicationPreview.h"
#include "ActionButton.h"
-#include "PreviewInfoHintWidget.h"
#include "PreviewRatingsWidget.h"
namespace unity
@@ -64,7 +62,6 @@ NUX_IMPLEMENT_OBJECT_TYPE(ApplicationPreview);
ApplicationPreview::ApplicationPreview(dash::Preview::Ptr preview_model)
: Preview(preview_model)
-, full_data_layout_(nullptr)
{
SetupBackground();
SetupViews();
@@ -133,11 +130,6 @@ void ApplicationPreview::AddProperties(GVariantBuilder* builder)
Preview::AddProperties(builder);
}
-void ApplicationPreview::SetupBackground()
-{
- details_bg_layer_.reset(dash::previews::Style::Instance().GetBackgroundLayer());
-}
-
void ApplicationPreview::SetupViews()
{
dash::ApplicationPreview* app_preview_model = dynamic_cast<dash::ApplicationPreview*>(preview_model_.get());
diff --git a/dash/previews/ApplicationPreview.h b/dash/previews/ApplicationPreview.h
index 2c4f16b8b..2da8adba4 100644
--- a/dash/previews/ApplicationPreview.h
+++ b/dash/previews/ApplicationPreview.h
@@ -24,14 +24,6 @@
#define APPLICATIONPREVIEW_H
#include "Preview.h"
-#include <Nux/Nux.h>
-
-namespace nux
-{
-class AbstractPaintLayer;
-class VLayout;
-class StaticCairoText;
-}
namespace unity
{
@@ -41,9 +33,7 @@ namespace dash
{
namespace previews
{
-class CoverArt;
class PreviewRatingsWidget;
-class PreviewInfoHintWidget;
class ApplicationPreview : public Preview
{
@@ -63,26 +53,16 @@ protected:
virtual void DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw);
virtual void PreLayoutManagement();
- void SetupBackground();
- void SetupViews();
+ virtual void SetupViews();
protected:
- nux::VLayout* full_data_layout_;
nux::VLayout* title_subtitle_layout_;
- nux::ObjectPtr<CoverArt> image_;
nux::ObjectPtr<IconTexture> app_icon_;
nux::ObjectPtr<PreviewRatingsWidget> app_rating_;
- nux::ObjectPtr<StaticCairoText> title_;
- nux::ObjectPtr<StaticCairoText> subtitle_;
nux::ObjectPtr<StaticCairoText> license_;
nux::ObjectPtr<StaticCairoText> last_update_;
nux::ObjectPtr<StaticCairoText> copywrite_;
- nux::ObjectPtr<StaticCairoText> description_;
- nux::ObjectPtr<PreviewInfoHintWidget> preview_info_hints_;
-
- typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr;
- LayerPtr details_bg_layer_;
};
}
diff --git a/dash/previews/GenericPreview.cpp b/dash/previews/GenericPreview.cpp
index a641a5cd5..915d46d82 100644
--- a/dash/previews/GenericPreview.cpp
+++ b/dash/previews/GenericPreview.cpp
@@ -23,7 +23,6 @@
#include "unity-shared/IntrospectableWrappers.h"
#include "unity-shared/PreviewStyle.h"
#include "unity-shared/CoverArt.h"
-#include "unity-shared/StaticCairoText.h"
#include "unity-shared/PlacesOverlayVScrollBar.h"
#include <NuxCore/Logger.h>
#include <Nux/HLayout.h>
@@ -33,7 +32,6 @@
#include <Nux/AbstractButton.h>
#include "GenericPreview.h"
-#include "PreviewInfoHintWidget.h"
namespace unity
{
@@ -58,7 +56,6 @@ NUX_IMPLEMENT_OBJECT_TYPE(GenericPreview);
GenericPreview::GenericPreview(dash::Preview::Ptr preview_model)
: Preview(preview_model)
-, full_data_layout_(nullptr)
{
SetupBackground();
SetupViews();
@@ -127,11 +124,6 @@ void GenericPreview::AddProperties(GVariantBuilder* builder)
Preview::AddProperties(builder);
}
-void GenericPreview::SetupBackground()
-{
- details_bg_layer_.reset(dash::previews::Style::Instance().GetBackgroundLayer());
-}
-
void GenericPreview::SetupViews()
{
if (!preview_model_)
diff --git a/dash/previews/GenericPreview.h b/dash/previews/GenericPreview.h
index e5576bddb..1ed175785 100644
--- a/dash/previews/GenericPreview.h
+++ b/dash/previews/GenericPreview.h
@@ -24,24 +24,14 @@
#define GENERICPREVIEW_H
#include "Preview.h"
-#include <Nux/Nux.h>
#include <UnityCore/GenericPreview.h>
-namespace nux
-{
-class AbstractPaintLayer;
-class StaticCairoText;
-class VLayout;
-}
-
namespace unity
{
namespace dash
{
namespace previews
{
-class CoverArt;
-class PreviewInfoHintWidget;
class GenericPreview : public Preview
{
@@ -61,20 +51,7 @@ protected:
virtual void DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw);
virtual void PreLayoutManagement();
- void SetupBackground();
- void SetupViews();
-
-protected:
- nux::VLayout* full_data_layout_;
-
- nux::ObjectPtr<CoverArt> image_;
- nux::ObjectPtr<StaticCairoText> title_;
- nux::ObjectPtr<StaticCairoText> subtitle_;
- nux::ObjectPtr<StaticCairoText> description_;
- nux::ObjectPtr<PreviewInfoHintWidget> preview_info_hints_;
-
- typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr;
- LayerPtr details_bg_layer_;
+ virtual void SetupViews();
};
}
diff --git a/dash/previews/MoviePreview.cpp b/dash/previews/MoviePreview.cpp
index a592ab085..5b9ef6c13 100644
--- a/dash/previews/MoviePreview.cpp
+++ b/dash/previews/MoviePreview.cpp
@@ -23,7 +23,6 @@
#include "unity-shared/IntrospectableWrappers.h"
#include "unity-shared/PreviewStyle.h"
#include "unity-shared/CoverArt.h"
-#include "unity-shared/StaticCairoText.h"
#include "unity-shared/PlacesOverlayVScrollBar.h"
#include <UnityCore/MoviePreview.h>
#include <NuxCore/Logger.h>
@@ -33,7 +32,6 @@
#include <Nux/AbstractButton.h>
#include "MoviePreview.h"
-#include "PreviewInfoHintWidget.h"
#include "PreviewRatingsWidget.h"
namespace unity
@@ -59,7 +57,6 @@ NUX_IMPLEMENT_OBJECT_TYPE(MoviePreview);
MoviePreview::MoviePreview(dash::Preview::Ptr preview_model)
: Preview(preview_model)
-, full_data_layout_(nullptr)
{
SetupBackground();
SetupView();
@@ -136,11 +133,6 @@ void MoviePreview::OnNavigateOut()
{
}
-void MoviePreview::SetupBackground()
-{
- details_bg_layer_.reset(dash::previews::Style::Instance().GetBackgroundLayer());
-}
-
void MoviePreview::SetupView()
{
dash::MoviePreview* movie_preview_model = dynamic_cast<dash::MoviePreview*>(preview_model_.get());
diff --git a/dash/previews/MoviePreview.h b/dash/previews/MoviePreview.h
index bc91470e1..2e7fce5e1 100644
--- a/dash/previews/MoviePreview.h
+++ b/dash/previews/MoviePreview.h
@@ -24,14 +24,6 @@
#define MOVIEPREVIEW_H
#include "Preview.h"
-#include <Nux/Nux.h>
-
-namespace nux
-{
-class AbstractPaintLayer;
-class StaticCairoText;
-class VLayout;
-}
namespace unity
{
@@ -39,9 +31,7 @@ namespace dash
{
namespace previews
{
-class CoverArt;
class PreviewRatingsWidget;
-class PreviewInfoHintWidget;
class MoviePreview : public Preview
{
@@ -64,21 +54,10 @@ protected:
virtual void OnNavigateOut();
virtual void OnNavigateInComplete();
- void SetupBackground();
- void SetupView();
+ virtual void SetupView();
protected:
- nux::VLayout* full_data_layout_;
-
- nux::ObjectPtr<CoverArt> image_;
nux::ObjectPtr<PreviewRatingsWidget> rating_;
- nux::ObjectPtr<StaticCairoText> title_;
- nux::ObjectPtr<StaticCairoText> subtitle_;
- nux::ObjectPtr<StaticCairoText> description_;
- nux::ObjectPtr<PreviewInfoHintWidget> preview_info_hints_;
-
- typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr;
- LayerPtr details_bg_layer_;
};
}
diff --git a/dash/previews/MusicPreview.cpp b/dash/previews/MusicPreview.cpp
index 876ea0d5b..594c1f93b 100644
--- a/dash/previews/MusicPreview.cpp
+++ b/dash/previews/MusicPreview.cpp
@@ -24,7 +24,6 @@
#include "unity-shared/PreviewStyle.h"
#include "unity-shared/CoverArt.h"
#include "unity-shared/IconTexture.h"
-#include "unity-shared/StaticCairoText.h"
#include <UnityCore/MusicPreview.h>
#include <NuxCore/Logger.h>
#include <Nux/HLayout.h>
@@ -33,7 +32,6 @@
#include "MusicPreview.h"
#include "ActionButton.h"
-#include "PreviewInfoHintWidget.h"
#include "Tracks.h"
namespace unity
@@ -48,9 +46,6 @@ NUX_IMPLEMENT_OBJECT_TYPE(MusicPreview);
MusicPreview::MusicPreview(dash::Preview::Ptr preview_model)
: Preview(preview_model)
-, image_(nullptr)
-, title_(nullptr)
-, subtitle_(nullptr)
{
SetupBackground();
SetupViews();
@@ -119,11 +114,6 @@ void MusicPreview::AddProperties(GVariantBuilder* builder)
Preview::AddProperties(builder);
}
-void MusicPreview::SetupBackground()
-{
- details_bg_layer_.reset(dash::previews::Style::Instance().GetBackgroundLayer());
-}
-
void MusicPreview::SetupViews()
{
dash::MusicPreview* music_preview_model = dynamic_cast<dash::MusicPreview*>(preview_model_.get());
diff --git a/dash/previews/MusicPreview.h b/dash/previews/MusicPreview.h
index 281206c4c..2c27715c7 100644
--- a/dash/previews/MusicPreview.h
+++ b/dash/previews/MusicPreview.h
@@ -24,15 +24,6 @@
#define MUSICPREVIEW_H
#include "Preview.h"
-#include <Nux/Nux.h>
-#include <Nux/StaticText.h>
-
-namespace nux
-{
-class AbstractPaintLayer;
-class StaticCairoText;
-class VLayout;
-}
namespace unity
{
@@ -40,8 +31,6 @@ namespace dash
{
namespace previews
{
-class CoverArt;
-class PreviewInfoHintWidget;
class Tracks;
class MusicPreview : public Preview
@@ -62,23 +51,13 @@ protected:
virtual void DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw);
virtual void PreLayoutManagement();
- void SetupBackground();
- void SetupViews();
+ virtual void SetupViews();
void OnPlayTrack(std::string const& uri);
void OnPauseTrack(std::string const& uri);
protected:
- nux::VLayout* full_data_layout_;
-
- nux::ObjectPtr<CoverArt> image_;
- nux::ObjectPtr<StaticCairoText> title_;
- nux::ObjectPtr<StaticCairoText> subtitle_;
nux::ObjectPtr<Tracks> tracks_;
- nux::ObjectPtr<PreviewInfoHintWidget> preview_info_hints_;
-
- typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr;
- LayerPtr details_bg_layer_;
};
}
diff --git a/dash/previews/Preview.cpp b/dash/previews/Preview.cpp
index 6b2d7b034..6e872b282 100644
--- a/dash/previews/Preview.cpp
+++ b/dash/previews/Preview.cpp
@@ -33,6 +33,7 @@
#include "MusicPreview.h"
#include "MoviePreview.h"
#include "SocialPreview.h"
+#include "PreviewInfoHintWidget.h"
namespace unity
{
@@ -219,6 +220,10 @@ Preview::Preview(dash::Preview::Ptr preview_model)
: View(NUX_TRACKER_LOCATION)
, preview_model_(preview_model)
, tab_iterator_(new TabIterator())
+ , full_data_layout_(nullptr)
+ , image_(nullptr)
+ , title_(nullptr)
+ , subtitle_(nullptr)
{
}
@@ -363,6 +368,11 @@ void Preview::OnNavigateIn()
nux::GetWindowCompositor().SetKeyFocusArea(default_focus);
}
+void Preview::SetupBackground()
+{
+ details_bg_layer_.reset(dash::previews::Style::Instance().GetBackgroundLayer());
+}
+
}
}
}
diff --git a/dash/previews/Preview.h b/dash/previews/Preview.h
index b9431f43a..d729981e5 100644
--- a/dash/previews/Preview.h
+++ b/dash/previews/Preview.h
@@ -28,11 +28,16 @@
#include <UnityCore/Preview.h>
#include "unity-shared/Introspectable.h"
#include "unity-shared/PreviewStyle.h"
+#include "unity-shared/StaticCairoText.h"
+#include "PreviewInfoHintWidget.h"
namespace nux
{
class AbstractButton;
+class AbstractPaintLayer;
class Layout;
+class VLayout;
+class StaticCairoText;
}
namespace unity
@@ -45,6 +50,7 @@ namespace previews
{
class CoverArt;
class TabIterator;
+class PreviewInfoHintWidget;
class Preview : public nux::View, public debug::Introspectable
{
@@ -80,9 +86,12 @@ protected:
virtual bool AcceptKeyNavFocus() { return false; }
+ virtual void SetupViews() {}
+ void SetupBackground();
+
nux::Layout* BuildGridActionsLayout(dash::Preview::ActionPtrList actions, std::list<nux::AbstractButton*>& buttons);
nux::Layout* BuildVerticalActionsLayout(dash::Preview::ActionPtrList actions, std::list<nux::AbstractButton*>& buttons);
-
+
void UpdateCoverArtImage(CoverArt* cover_art);
protected:
@@ -90,6 +99,17 @@ protected:
std::list<nux::AbstractButton*> action_buttons_;
TabIterator* tab_iterator_;
+ nux::VLayout* full_data_layout_;
+
+ nux::ObjectPtr<CoverArt> image_;
+ nux::ObjectPtr<StaticCairoText> title_;
+ nux::ObjectPtr<StaticCairoText> subtitle_;
+ nux::ObjectPtr<StaticCairoText> description_;
+ PreviewInfoHintWidget::Ptr preview_info_hints_;
+
+ typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr;
+ LayerPtr details_bg_layer_;
+
friend class PreviewContent;
};
diff --git a/dash/previews/SocialPreview.cpp b/dash/previews/SocialPreview.cpp
index d439f4e5c..3fba52810 100644
--- a/dash/previews/SocialPreview.cpp
+++ b/dash/previews/SocialPreview.cpp
@@ -24,7 +24,6 @@
#include "unity-shared/PreviewStyle.h"
#include "unity-shared/CoverArt.h"
#include "unity-shared/IconTexture.h"
-#include "unity-shared/StaticCairoText.h"
#include "unity-shared/PlacesOverlayVScrollBar.h"
#include <UnityCore/SocialPreview.h>
#include <NuxCore/Logger.h>
@@ -40,7 +39,6 @@
#include "SocialPreviewContent.h"
#include "SocialPreviewComments.h"
#include "ActionButton.h"
-#include "PreviewInfoHintWidget.h"
namespace unity
{
@@ -65,7 +63,6 @@ NUX_IMPLEMENT_OBJECT_TYPE(SocialPreview);
SocialPreview::SocialPreview(dash::Preview::Ptr preview_model)
: Preview(preview_model)
-, full_data_layout_(nullptr)
{
SetupBackground();
SetupViews();
@@ -134,11 +131,6 @@ void SocialPreview::AddProperties(GVariantBuilder* builder)
Preview::AddProperties(builder);
}
-void SocialPreview::SetupBackground()
-{
- details_bg_layer_.reset(dash::previews::Style::Instance().GetBackgroundLayer());
-}
-
void SocialPreview::SetupViews()
{
dash::SocialPreview* social_preview_model = dynamic_cast<dash::SocialPreview*>(preview_model_.get());
diff --git a/dash/previews/SocialPreview.h b/dash/previews/SocialPreview.h
index e9fe5b290..54a3fbe17 100644
--- a/dash/previews/SocialPreview.h
+++ b/dash/previews/SocialPreview.h
@@ -24,14 +24,6 @@
#define SOCIALPREVIEW_H
#include "Preview.h"
-#include <Nux/Nux.h>
-
-namespace nux
-{
-class AbstractPaintLayer;
-class VLayout;
-class StaticCairoText;
-}
namespace unity
{
@@ -41,9 +33,7 @@ namespace dash
{
namespace previews
{
-class CoverArt;
class PreviewLikesWidget;
-class PreviewInfoHintWidget;
class SocialPreviewContent;
class SocialPreviewComments;
@@ -65,25 +55,16 @@ protected:
virtual void DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw);
virtual void PreLayoutManagement();
- void SetupBackground();
- void SetupViews();
+ virtual void SetupViews();
protected:
- nux::VLayout* full_data_layout_;
nux::VLayout* sender_layout_;
nux::VLayout* title_layout_;
nux::ObjectPtr<IconTexture> avatar_;
- nux::ObjectPtr<CoverArt> image_;
nux::ObjectPtr<SocialPreviewContent> content_;
nux::ObjectPtr<SocialPreviewComments> comments_;
- nux::ObjectPtr<StaticCairoText> title_;
- nux::ObjectPtr<StaticCairoText> subtitle_;
nux::ObjectPtr<StaticCairoText> comments_hint_;
- nux::ObjectPtr<PreviewInfoHintWidget> preview_info_hints_;
-
- typedef std::unique_ptr<nux::AbstractPaintLayer> LayerPtr;
- LayerPtr details_bg_layer_;
};
}