Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

OSX: adds 'Window' menu with 'Minimize'/'Zoom' actions

  • Loading branch information...
commit e76ca1fdef5fee31d31b2932ac217b4a799c869d 1 parent aca94b1
@tiegz authored
View
51 src/tomahawkwindow.cpp
@@ -21,6 +21,8 @@
#include <QAction>
#include <QCloseEvent>
+#include <QShowEvent>
+#include <QHideEvent>
#include <QInputDialog>
#include <QPixmap>
#include <QPropertyAnimation>
@@ -263,6 +265,13 @@ TomahawkWindow::setupSignals()
connect( ui->actionCreate_New_Station, SIGNAL( triggered() ), SLOT( createStation() ));
connect( ui->actionAboutTomahawk, SIGNAL( triggered() ), SLOT( showAboutTomahawk() ) );
connect( ui->actionExit, SIGNAL( triggered() ), APP, SLOT( quit() ) );
+#if defined( Q_OS_DARWIN )
+ connect( ui->actionMinimize, SIGNAL( triggered() ), SLOT( minimize() ) );
+ connect( ui->actionZoom, SIGNAL( triggered() ), SLOT( maximize() ) );
+#else
+ ui->menuWindow->clear();
+ ui->menuWindow->menuAction()->setVisible( false );
+#endif
// <SipHandler>
connect( APP->sipHandler(), SIGNAL( connected() ), SLOT( onSipConnected() ) );
@@ -290,7 +299,6 @@ TomahawkWindow::changeEvent( QEvent* e )
}
}
-
void
TomahawkWindow::closeEvent( QCloseEvent* e )
{
@@ -306,6 +314,27 @@ TomahawkWindow::closeEvent( QCloseEvent* e )
e->accept();
}
+void
+TomahawkWindow::showEvent( QShowEvent* e )
+{
+ QMainWindow::showEvent( e );
+
+#if defined( Q_OS_DARWIN )
+ ui->actionMinimize->setDisabled( false );
+ ui->actionZoom->setDisabled( false );
+#endif
+}
+
+void
+TomahawkWindow::hideEvent( QHideEvent* e )
+{
+ QMainWindow::hideEvent( e );
+
+#if defined( Q_OS_DARWIN )
+ ui->actionMinimize->setDisabled( true );
+ ui->actionZoom->setDisabled( true );
+#endif
+}
void
TomahawkWindow::showSettingsDialog()
@@ -513,3 +542,23 @@ TomahawkWindow::checkForUpdates()
Tomahawk::checkForUpdates();
#endif
}
+
+void
+TomahawkWindow::minimize()
+{
+ if (isMinimized()) {
+ showNormal();
+ } else {
+ showMinimized();
+ }
+}
+
+void
+TomahawkWindow::maximize()
+{
+ if (isMaximized()) {
+ showNormal();
+ } else {
+ showMaximized();
+ }
+}
View
5 src/tomahawkwindow.h
@@ -54,6 +54,8 @@ Q_OBJECT
protected:
void changeEvent( QEvent* e );
void closeEvent( QCloseEvent* e );
+ void showEvent( QShowEvent* e );
+ void hideEvent( QHideEvent* e );
public slots:
void createAutomaticPlaylist();
@@ -79,6 +81,9 @@ private slots:
void showAboutTomahawk();
void checkForUpdates();
+ void minimize();
+ void maximize();
+
private:
void loadSettings();
void saveSettings();
View
24 src/tomahawkwindow.ui
@@ -72,6 +72,13 @@
<addaction name="actionToggleConnect"/>
<addaction name="separator"/>
</widget>
+ <widget class="QMenu" name="menuWindow">
+ <property name="title">
+ <string>&amp;Window</string>
+ </property>
+ <addaction name="actionMinimize"/>
+ <addaction name="actionZoom"/>
+ </widget>
<widget class="QMenu" name="menu_Help">
<property name="title">
<string>&amp;Help</string>
@@ -82,6 +89,7 @@
<addaction name="menuPlaylist"/>
<addaction name="menuNetwork"/>
<addaction name="menuSettings"/>
+ <addaction name="menuWindow"/>
<addaction name="menu_Help"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
@@ -157,6 +165,22 @@
<string>Hide Offline Sources</string>
</property>
</action>
+ <action name="actionMinimize">
+ <property name="text">
+ <string>Minimize</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+M</string>
+ </property>
+ </action>
+ <action name="actionZoom">
+ <property name="text">
+ <string>Zoom</string>
+ </property>
+ <property name="shortcut">
+ <string>Meta+Ctrl+Z</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>

1 comment on commit e76ca1f

@lfranchi

I'll take a look when I can see it on osx, but thanks for the request!

Please sign in to comment.
Something went wrong with that request. Please try again.