summaryrefslogtreecommitdiff
path: root/audio/amarok/files/hide-main-menu-bar-feature.patch
diff options
context:
space:
mode:
Diffstat (limited to 'audio/amarok/files/hide-main-menu-bar-feature.patch')
-rw-r--r--audio/amarok/files/hide-main-menu-bar-feature.patch119
1 files changed, 119 insertions, 0 deletions
diff --git a/audio/amarok/files/hide-main-menu-bar-feature.patch b/audio/amarok/files/hide-main-menu-bar-feature.patch
new file mode 100644
index 000000000000..dc53b53a6d2b
--- /dev/null
+++ b/audio/amarok/files/hide-main-menu-bar-feature.patch
@@ -0,0 +1,119 @@
+diff -ruN amarok.orig/src/amarokcore/amarok.kcfg amarok/src/amarokcore/amarok.kcfg
+--- amarok.orig/src/amarokcore/amarok.kcfg Mon Jun 18 01:51:49 2007
++++ amarok/src/amarokcore/amarok.kcfg Thu Jun 21 22:42:23 2007
+@@ -216,6 +216,11 @@
+ <whatsthis>Set this to the style dir you want to use.</whatsthis>
+ <default>Default</default>
+ </entry>
++ <entry key="Show Menu Bar" type="Bool">
++ <label>Whether Menubar is shown</label>
++ <whatsthis>If set, Amarok displays a menubar on top of the application.</whatsthis>
++ <default>true</default>
++ </entry>
+ <entry key="Relative Playlist" type="Bool">
+ <label>Whether playlists store relative path</label>
+ <whatsthis>If set, Amarok's manually saved playlists will contain a relative path to each track, not an absolute path.</whatsthis>
+diff -ruN amarok.orig/src/app.cpp amarok/src/app.cpp
+--- amarok.orig/src/app.cpp Mon Jun 18 01:51:49 2007
++++ amarok/src/app.cpp Thu Jun 21 22:43:27 2007
+@@ -678,6 +674,11 @@
+ m_pPlaylistWindow->setCaption( i18n("Amarok - %1").arg( EngineController::instance()->bundle().veryNiceTitle() ) );
+ else
+ m_pPlaylistWindow->setCaption( "Amarok" );
++
++ //m_pPlaylistWindow->show(); //must be shown //we do below now
++ //ensure that at least one Menu is plugged into an accessible UI element
++ if( !AmarokConfig::showMenuBar() && !Amarok::actionCollection()->action( "amarok_menu" )->isPlugged() )
++ playlistWindow()->createGUI();
+ }
+
+ playlistWindow()->applySettings();
+diff -ruN amarok.orig/src/playlistwindow.cpp amarok/src/playlistwindow.cpp
+--- amarok.orig/src/playlistwindow.cpp Mon Jun 18 01:51:49 2007
++++ amarok/src/playlistwindow.cpp Thu Jun 21 22:48:15 2007
+@@ -139,6 +139,7 @@
+ ac->action( "stream_add" )->setIcon( Amarok::icon( "files" ) );
+ KStdAction::save( this, SLOT(savePlaylist()), ac, "playlist_save" )->setText( i18n("&Save Playlist As...") );
+ ac->action( "playlist_save" )->setIcon( Amarok::icon( "save" ) );
++ KStdAction::showMenubar( this, SLOT(slotToggleMenu()), ac );
+
+ //FIXME: after string freeze rename to "Burn Current Playlist"?
+ new KAction( i18n("Burn to CD"), Amarok::icon( "burn" ), 0, this, SLOT(slotBurnPlaylist()), ac, "playlist_burn" );
+@@ -233,6 +236,7 @@
+
+ PlaylistWindow::~PlaylistWindow()
+ {
++ Amarok::config( "PlaylistWindow" )->writeEntry( "showMenuBar", m_menubar->isShown() );
+ AmarokConfig::setPlaylistWindowPos( pos() ); //TODO de XT?
+ AmarokConfig::setPlaylistWindowSize( size() ); //TODO de XT?
+ }
+@@ -307,6 +310,7 @@
+ connect( repeatAction, SIGNAL( activated( int ) ), playlist, SLOT( slotRepeatTrackToggled( int ) ) );
+
+ m_menubar = new KMenuBar( this );
++ m_menubar->setShown( AmarokConfig::showMenuBar() );
+
+ //BEGIN Actions menu
+ KPopupMenu *actionsMenu = new KPopupMenu( m_menubar );
+@@ -381,6 +388,8 @@
+ m_settingsMenu = new KPopupMenu( m_menubar );
+ //TODO use KStdAction or KMainWindow
+ #ifndef Q_WS_MAC
++ static_cast<KToggleAction *>(actionCollection()->action(KStdAction::name(KStdAction::ShowMenubar)))->setChecked( AmarokConfig::showMenuBar() );
++ actionCollection()->action(KStdAction::name(KStdAction::ShowMenubar))->plug( m_settingsMenu );
+ m_settingsMenu->insertItem( AmarokConfig::showToolbar() ? i18n( "Hide Toolbar" ) : i18n("Show Toolbar"), ID_SHOW_TOOLBAR );
+ m_settingsMenu->insertItem( AmarokConfig::showPlayerWindow() ? i18n("Hide Player &Window") : i18n("Show Player &Window"), ID_SHOW_PLAYERWINDOW );
+ m_settingsMenu->insertSeparator();
+@@ -569,6 +578,12 @@
+ for( QStringList::ConstIterator it = list.constBegin(); it != end; ++it )
+ {
+ KToolBarButton* const button = static_cast<KToolBarButton*>( m_toolbar->child( (*it).latin1() ) );
++ if ( it == last ) {
++ //if the user has no PlayerWindow, he MUST have the menu action plugged
++ //NOTE this is not saved to the local XMLFile, which is what the user will want
++ if ( !AmarokConfig::showPlayerWindow() && !AmarokConfig::showMenuBar() && !button )
++ actionCollection()->action( "amarok_menu" )->plug( m_toolbar );
++ }
+
+ if ( button ) {
+ button->modeChange();
+@@ -1031,6 +1046,20 @@
+ Playlist::instance()->setFocus();
+ }
+
++void PlaylistWindow::slotToggleMenu() //SLOT
++{
++ if( static_cast<KToggleAction *>(actionCollection()->action(KStdAction::name(KStdAction::ShowMenubar)))->isChecked() ) {
++ AmarokConfig::setShowMenuBar( true );
++ m_menubar->setShown( true );
++ }
++ else
++ {
++ AmarokConfig::setShowMenuBar( false );
++ m_menubar->setShown( false );
++ }
++ recreateGUI();
++}
++
+ void PlaylistWindow::slotMenuActivated( int index ) //SLOT
+ {
+ switch( index )
+@@ -1042,6 +1071,7 @@
+ case ID_SHOW_TOOLBAR:
+ m_toolbar->setShown( !m_toolbar->isShown() );
+ AmarokConfig::setShowToolbar( !AmarokConfig::showToolbar() );
++ actionCollection()->action(KStdAction::name(KStdAction::ShowMenubar))->setEnabled( m_toolbar->isShown() );
+ m_settingsMenu->changeItem( index, m_toolbar->isShown() ? i18n("Hide Toolbar") : i18n("Show Toolbar") );
+ break;
+ case ID_SHOW_PLAYERWINDOW:
+diff -ruN amarok.orig/src/playlistwindow.h amarok/src/playlistwindow.h
+--- amarok.orig/src/playlistwindow.h Mon Jun 18 01:51:49 2007
++++ amarok/src/playlistwindow.h Thu Jun 21 22:48:44 2007
+@@ -91,6 +91,7 @@
+ void slotMenuActivated( int );
+ void actionsMenuAboutToShow();
+ void toolsMenuAboutToShow();
++ void slotToggleMenu();
+ void slotToggleFocus();
+ void slotEditFilter();
+ void slotSetFilter( const QString &filter );