extragear/multimedia/amarok/src

Jeff Mitchell kde-dev at emailgoeshere.com
Tue Oct 14 04:00:44 CEST 2008


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


More information about the Amarok-devel mailing list