mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-14 10:05:32 +02:00
Added Splash widget support.
This commit is contained in:
@@ -168,5 +168,6 @@
|
||||
<file>data/www/css/font-awesome.css</file>
|
||||
<file>data/www/css/style.css</file>
|
||||
<file>data/www/js/html5shim.js</file>
|
||||
<file>data/images/splash.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@@ -222,6 +222,7 @@ Tomahawk::DatabaseImpl::updateSchema( int oldVersion )
|
||||
}
|
||||
else // update in place! run the proper upgrade script
|
||||
{
|
||||
emit schemaUpdateStarted();
|
||||
int cur = oldVersion;
|
||||
m_db.transaction();
|
||||
while ( cur < CURRENT_SCHEMA_VERSION )
|
||||
@@ -251,6 +252,7 @@ Tomahawk::DatabaseImpl::updateSchema( int oldVersion )
|
||||
}
|
||||
m_db.commit();
|
||||
tLog() << "DB Upgrade successful!";
|
||||
emit schemaUpdateDone();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -86,6 +86,8 @@ public:
|
||||
|
||||
signals:
|
||||
void indexReady();
|
||||
void schemaUpdateStarted();
|
||||
void schemaUpdateDone();
|
||||
|
||||
private:
|
||||
DatabaseImpl( const QString& dbname, bool internal );
|
||||
|
@@ -66,6 +66,7 @@ SET( tomahawkSourcesGui ${tomahawkSourcesGui}
|
||||
widgets/AccountsPopupWidget.cpp
|
||||
widgets/AccountsToolButton.cpp
|
||||
widgets/SlideSwitchButton.cpp
|
||||
widgets/SplashWidget.cpp
|
||||
widgets/UnstyledFrame.cpp
|
||||
)
|
||||
|
||||
|
@@ -69,6 +69,7 @@
|
||||
#include "utils/Logger.h"
|
||||
#include "utils/TomahawkUtilsGui.h"
|
||||
#include "utils/TomahawkCache.h"
|
||||
#include "widgets/SplashWidget.h"
|
||||
|
||||
#ifndef ENABLE_HEADLESS
|
||||
#include "resolvers/JSResolver.h"
|
||||
@@ -148,6 +149,7 @@ TomahawkApp::TomahawkApp( int& argc, char *argv[] )
|
||||
, m_mainwindow( 0 )
|
||||
#endif
|
||||
, m_headless( false )
|
||||
, m_splashWidget( 0 )
|
||||
{
|
||||
if ( arguments().contains( "--help" ) || arguments().contains( "-h" ) )
|
||||
{
|
||||
@@ -181,6 +183,9 @@ TomahawkApp::init()
|
||||
setWindowIcon( QIcon( RESPATH "icons/tomahawk-icon-128x128.png" ) );
|
||||
setQuitOnLastWindowClosed( false );
|
||||
|
||||
if ( arguments().contains( "--splash" ) )
|
||||
startSplashWidget( "Splash screen test" );
|
||||
|
||||
QFont f = font();
|
||||
#ifdef Q_OS_MAC
|
||||
f.setPointSize( f.pointSize() - 2 );
|
||||
@@ -472,6 +477,12 @@ TomahawkApp::initDatabase()
|
||||
|
||||
tDebug( LOGEXTRA ) << "Using database:" << dbpath;
|
||||
m_database = QPointer<Tomahawk::Database>( new Tomahawk::Database( dbpath, this ) );
|
||||
|
||||
connect( m_database->impl(), SIGNAL( schemaUpdateStarted() ),
|
||||
this, SLOT( startSplashWidget() ) );
|
||||
connect( m_database->impl(), SIGNAL( schemaUpdateDone() ),
|
||||
this, SLOT( killSplashWidget() ) );
|
||||
|
||||
Pipeline::instance()->databaseReady();
|
||||
}
|
||||
|
||||
@@ -682,6 +693,36 @@ TomahawkApp::onInfoSystemReady()
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
TomahawkApp::startSplashWidget( const QString& initialMessage )
|
||||
{
|
||||
tDebug() << Q_FUNC_INFO;
|
||||
m_splashWidget = new SplashWidget();
|
||||
m_splashWidget->showMessage( initialMessage );
|
||||
m_splashWidget->show();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
TomahawkApp::updateSplashWidgetMessage( const QString& message )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
TomahawkApp::killSplashWidget()
|
||||
{
|
||||
tDebug() << Q_FUNC_INFO;
|
||||
if ( m_splashWidget )
|
||||
{
|
||||
m_splashWidget->finish( mainWindow() );
|
||||
m_splashWidget->deleteLater();
|
||||
}
|
||||
m_splashWidget = 0;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
TomahawkApp::ipDetectionFailed( QNetworkReply::NetworkError error, QString errorString )
|
||||
{
|
||||
|
@@ -45,6 +45,7 @@ class Servent;
|
||||
class SipHandler;
|
||||
class TomahawkSettings;
|
||||
class AudioControls;
|
||||
class SplashWidget;
|
||||
|
||||
namespace Tomahawk
|
||||
{
|
||||
@@ -114,6 +115,10 @@ private slots:
|
||||
void spotifyApiCheckFinished();
|
||||
void onInfoSystemReady();
|
||||
|
||||
void startSplashWidget( const QString& initialMessage = QString() );
|
||||
void updateSplashWidgetMessage( const QString& message );
|
||||
void killSplashWidget();
|
||||
|
||||
void ipDetectionFailed( QNetworkReply::NetworkError error, QString errorString );
|
||||
|
||||
private:
|
||||
@@ -145,6 +150,8 @@ private:
|
||||
#endif
|
||||
QPointer<PlaydarApi> playdarApi;
|
||||
|
||||
SplashWidget* m_splashWidget;
|
||||
|
||||
bool m_headless;
|
||||
};
|
||||
|
||||
|
47
src/tomahawk/widgets/SplashWidget.cpp
Normal file
47
src/tomahawk/widgets/SplashWidget.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Tomahawk is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Tomahawk is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "SplashWidget.h"
|
||||
|
||||
#include "utils/TomahawkUtilsGui.h"
|
||||
#include "utils/ImageRegistry.h"
|
||||
#include "utils/DpiScaler.h"
|
||||
|
||||
#include <QBoxLayout>
|
||||
#include <QLabel>
|
||||
|
||||
SplashWidget::SplashWidget()
|
||||
: QSplashScreen()
|
||||
{
|
||||
setPixmap( ImageRegistry::instance()->pixmap( RESPATH "images/splash.svg",
|
||||
TomahawkUtils::DpiScaler::scaled( this, QSize( 304, 333 ) ) ) );
|
||||
|
||||
QFont font = this->font();
|
||||
|
||||
font.setPointSize( 9 );
|
||||
font.setBold( true );
|
||||
font.setFamily( "Titillium Web" );
|
||||
setFont( font );
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SplashWidget::showMessage( const QString& message )
|
||||
{
|
||||
QSplashScreen::showMessage( message + "\n\n", Qt::AlignBottom | Qt::AlignHCenter );
|
||||
}
|
34
src/tomahawk/widgets/SplashWidget.h
Normal file
34
src/tomahawk/widgets/SplashWidget.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Tomahawk is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Tomahawk is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef SPLASHWIDGET_H
|
||||
#define SPLASHWIDGET_H
|
||||
|
||||
#include <QSplashScreen>
|
||||
|
||||
class SplashWidget : public QSplashScreen
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit SplashWidget();
|
||||
|
||||
void showMessage( const QString& message );
|
||||
|
||||
};
|
||||
|
||||
#endif // SPLASHWIDGET_H
|
Reference in New Issue
Block a user