extragear/multimedia/amarok/src

Nikolaj Hald Nielsen nhnfreespirit at gmail.com
Tue Oct 14 13:01:19 CEST 2008


I really like this idea. With a transparent overlay, we will be able
to show all kinds of interesting stuff to first time users.

I have a feature I have been pondering that would really tie in nicely
with this. I tentatively call it "bookmarks" or "places". The idea is
to allow special urls to make certain parts of Amarok active, and even
change some view settings. For instance
"amarok://services/magnatune/artist-ablum/artist='Brad Sucks' AND
album='Out of it'" would open the magnatune service, set the view mode
to artist-album and enter the query in the search field. If Amarok
were to recognize such urls, it would make it easy, to for instance,
share nice finds on irc. It could also be used to give the tutorial a
very easy way of opening up paces it wants to show, especially if the
system is expanded to also work with dialogs and collections ( open
the service config tab in the settings dialog for instance ). The
really cool part is that I have all the basics of this working in
Amarok 2 already ( and have hd for a long time ) in the form of the
"find in service" buttons that are shown in the toolbar when playing
tracks from certain services. It just needs to be generalized
somewhat.

However... My own personal (quite strong in this case) opinion is that
we should wait with this stuff until after 2.0.0. I think we have our
hands plenty full bugfixing and I would be against anything that would
delay the release of 2.0.0 more than absolutely necessary. I foresee
that getting this tutorial right will take a fairly long time and good
translations of this thing are really important.  Since Amarok 2 will
not ship per default until at least kubuntu 9.04 and in line with my
proposal that we keep A2 in beta on Windows and Mac for a bit longer
than on *nix, I dont think there will be too great a harm in pushing
the intro back a version.

Just my 2 DKK

- Nikolaj




On Tue, Oct 14, 2008 at 4:00 AM, Jeff Mitchell
<kde-dev at emailgoeshere.com> wrote:
> SVN commit 871164 by mitchell:
>
> Beginnings of a first run tutorial.  Idea below.  Yes, this will massively break string freeze.  Yes, it is worth it.
>
> What the code currently does is, if you have FirstRunTutorial=true in the General section of your amarokrc, it will upon startup fade a semi-transparent overlay on top of the main window, then after a few seconds kill itself.
>
> Here's my vision (read the comments in FirstRunTutorial.cpp too): Bottom right has next and prev buttons (like QGraphicsWidgets with QPushButtons); top right has close button.  Next and prev flip through different "pages" of the tutorial.  (Code has some ideas as to how to make this as painless and code reuse-ful as possible).  Arrows pointing to relevant parts of the window along with descriptive text fade in and out as pages transition.  Perhaps some buttons to launch a 1.4 database importer and/or collection setup as well.
>
> For each page, have a description of a feature of Amarok and an arrow pointing to the relevant place.  For instance, an arrow pointing to the left sidebar at the level of the Internet tab would then describe what's inside of that tab.  There's also no reason that pages couldn't activate various parts of Amarok as well, such as describing a tab, then on the next page activating it and describing subcomponents.
>
> Leo and Seb and I think a few more are totally into the idea and think it's way worth breaking string freeze.  I'm committing it now because my time this upcoming week to hack doesn't look great, so I'd love help, even though I'd have loved to have it a bit further so that it'd be more obvious what I was thinking (hopefully the text above will be enough instead  :-)  )
>
> CCMAIL:amarok-devel at kde.org
>
>
>
>  M  +11 -0     App.cpp
>  M  +1 -0      CMakeLists.txt
>  A             firstruntutorial (directory)
>  A             firstruntutorial/FirstRunTutorial.cpp   [License: GPL (v2+)]
>  A             firstruntutorial/FirstRunTutorial.h   [License: GPL (v2+)]
>
>
> --- trunk/extragear/multimedia/amarok/src/App.cpp #871163:871164
> @@ -23,6 +23,7 @@
>  #include "covermanager/CoverFetcher.h"
>  #include "Debug.h"
>  #include "EngineController.h"
> +#include "firstruntutorial/FirstRunTutorial.h"
>  //#include "equalizersetup.h"
>  #include "MainWindow.h"
>  //#include "mediabrowser.h"
> @@ -218,6 +219,7 @@
>
>     // do even if trayicon is not shown, it is safe
>     Amarok::config().writeEntry( "HiddenOnExit", mainWindow()->isHidden() );
> +    AmarokConfig::self()->writeConfig();
>
>     ScriptManager::destroy();
>
> @@ -590,6 +592,15 @@
>     delete m_splash;
>     m_splash = 0;
>     PERF_LOG( "App init done" )
> +    KConfigGroup config = KGlobal::config()->group( "General" );
> +    const bool firstruntut = config.readEntry( "FirstRunTutorial", false );
> +    debug() << "Checking whether to run first run tutorial..." << firstruntut;
> +    if( firstruntut )
> +    {
> +        debug() << "Starting first run tutorial";
> +        FirstRunTutorial *frt = new FirstRunTutorial( mainWindow() );
> +        QTimer::singleShot( 1000, frt, SLOT( initOverlay() ) );
> +    }
>  }
>
>  void App::engineStateChanged( Phonon::State state, Phonon::State oldState )
> --- trunk/extragear/multimedia/amarok/src/CMakeLists.txt #871163:871164
> @@ -474,6 +474,7 @@
>     browsers/filebrowser/MyDirLister.cpp
>     browsers/filebrowser/MyDirOperator.cpp
>     browsers/filebrowser/kbookmarkhandler.cpp
> +    firstruntutorial/FirstRunTutorial.cpp
>     ktrm.cpp
>     medium.cpp
>     MountPointManager.cpp
> _______________________________________________
> Amarok-devel mailing list
> Amarok-devel at kde.org
> https://mail.kde.org/mailman/listinfo/amarok-devel
>


More information about the Amarok-devel mailing list