mirror of
https://github.com/parchlinux/calamares.git
synced 2025-06-23 07:28:21 -04:00
Add proper QResrouce system to libcalamaresui, finish up prepare checks
This also adds ImageRegistry, a SVG cache, a bunch of utility functions for shared pixmaps in CalamaresUtilsGui and renames several qrc files in viewmodules.
This commit is contained in:
parent
0404413b05
commit
d97bb47f09
26 changed files with 470 additions and 16 deletions
|
@ -27,7 +27,7 @@ include( MacroLogFeature )
|
||||||
|
|
||||||
set( QT_VERSION 5.3.0 )
|
set( QT_VERSION 5.3.0 )
|
||||||
|
|
||||||
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools )
|
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools Svg )
|
||||||
find_package( YamlCpp 0.5.1 REQUIRED )
|
find_package( YamlCpp 0.5.1 REQUIRED )
|
||||||
|
|
||||||
option( WITH_PYTHON "Enable Python modules support." ON )
|
option( WITH_PYTHON "Enable Python modules support." ON )
|
||||||
|
|
|
@ -4,7 +4,7 @@ function(calamares_add_library)
|
||||||
# parse arguments (name needs to be saved before passing ARGN into the macro)
|
# parse arguments (name needs to be saved before passing ARGN into the macro)
|
||||||
set(NAME ${ARGV0})
|
set(NAME ${ARGV0})
|
||||||
set(options NO_INSTALL NO_VERSION)
|
set(options NO_INSTALL NO_VERSION)
|
||||||
set(oneValueArgs NAME TYPE EXPORT_MACRO TARGET TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR)
|
set(oneValueArgs NAME TYPE EXPORT_MACRO TARGET TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR RESOURCES)
|
||||||
set(multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS QT5_MODULES)
|
set(multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS QT5_MODULES)
|
||||||
cmake_parse_arguments(LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
cmake_parse_arguments(LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
set(LIBRARY_NAME ${NAME})
|
set(LIBRARY_NAME ${NAME})
|
||||||
|
@ -30,8 +30,8 @@ function(calamares_add_library)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# add resources from current dir
|
# add resources from current dir
|
||||||
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/resources.qrc")
|
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${LIBRARY_RESOURCES}")
|
||||||
qt5_add_resources(LIBRARY_RC_SOURCES "resources.qrc")
|
qt5_add_resources(LIBRARY_RC_SOURCES "${LIBRARY_RESOURCES}")
|
||||||
list(APPEND LIBRARY_SOURCES ${LIBRARY_RC_SOURCES})
|
list(APPEND LIBRARY_SOURCES ${LIBRARY_RC_SOURCES})
|
||||||
unset(LIBRARY_RC_SOURCES)
|
unset(LIBRARY_RC_SOURCES)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -5,7 +5,7 @@ function( calamares_add_plugin )
|
||||||
# parse arguments ( name needs to be saved before passing ARGN into the macro )
|
# parse arguments ( name needs to be saved before passing ARGN into the macro )
|
||||||
set( NAME ${ARGV0} )
|
set( NAME ${ARGV0} )
|
||||||
set( options NO_INSTALL SHARED_LIB )
|
set( options NO_INSTALL SHARED_LIB )
|
||||||
set( oneValueArgs NAME TYPE EXPORT_MACRO )
|
set( oneValueArgs NAME TYPE EXPORT_MACRO RESOURCES )
|
||||||
set( multiValueArgs SOURCES UI LINK_LIBRARIES COMPILE_DEFINITIONS )
|
set( multiValueArgs SOURCES UI LINK_LIBRARIES COMPILE_DEFINITIONS )
|
||||||
cmake_parse_arguments( PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
|
cmake_parse_arguments( PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
|
||||||
set( PLUGIN_NAME ${NAME} )
|
set( PLUGIN_NAME ${NAME} )
|
||||||
|
@ -30,6 +30,9 @@ function( calamares_add_plugin )
|
||||||
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PLUGIN_CONFIG_FILE}" )
|
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PLUGIN_CONFIG_FILE}" )
|
||||||
message( " ${Green}CONFIGURATION_FILE:${ColorReset} ${PLUGIN_CONFIG_FILE} => ${PLUGIN_DATA_DESTINATION}" )
|
message( " ${Green}CONFIGURATION_FILE:${ColorReset} ${PLUGIN_CONFIG_FILE} => ${PLUGIN_DATA_DESTINATION}" )
|
||||||
endif()
|
endif()
|
||||||
|
if( PLUGIN_RESOURCES )
|
||||||
|
message( " ${Green}RESOURCES:${ColorReset} ${PLUGIN_RESOURCES}" )
|
||||||
|
endif()
|
||||||
message( "" )
|
message( "" )
|
||||||
endif()
|
endif()
|
||||||
# create target name once for convenience
|
# create target name once for convenience
|
||||||
|
@ -65,6 +68,10 @@ function( calamares_add_plugin )
|
||||||
|
|
||||||
list( APPEND calamares_add_library_args "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" )
|
list( APPEND calamares_add_library_args "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" )
|
||||||
|
|
||||||
|
if( PLUGIN_RESOURCES )
|
||||||
|
list( APPEND calamares_add_library_args "RESOURCES" "${PLUGIN_RESOURCES}" )
|
||||||
|
endif()
|
||||||
|
|
||||||
calamares_add_library( ${calamares_add_library_args} )
|
calamares_add_library( ${calamares_add_library_args} )
|
||||||
|
|
||||||
configure_file( ${PLUGIN_DESC_FILE} ${PLUGIN_DESC_FILE} COPYONLY )
|
configure_file( ${PLUGIN_DESC_FILE} ${PLUGIN_DESC_FILE} COPYONLY )
|
||||||
|
|
BIN
data/images/no.svgz
Normal file
BIN
data/images/no.svgz
Normal file
Binary file not shown.
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
BIN
data/images/yes.svgz
Normal file
BIN
data/images/yes.svgz
Normal file
Binary file not shown.
|
@ -26,6 +26,8 @@
|
||||||
|
|
||||||
#include "DllMacro.h"
|
#include "DllMacro.h"
|
||||||
|
|
||||||
|
#define RESPATH ":/data/"
|
||||||
|
|
||||||
class QDir;
|
class QDir;
|
||||||
class QObject;
|
class QObject;
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ list( APPEND ${CALAMARESUI_LIBRARY_TARGET}_SOURCES
|
||||||
modulesystem/ViewModule.cpp
|
modulesystem/ViewModule.cpp
|
||||||
|
|
||||||
utils/CalamaresUtilsGui.cpp
|
utils/CalamaresUtilsGui.cpp
|
||||||
|
utils/ImageRegistry.cpp
|
||||||
utils/YamlUtils.cpp
|
utils/YamlUtils.cpp
|
||||||
|
|
||||||
viewpages/AbstractPage.cpp
|
viewpages/AbstractPage.cpp
|
||||||
|
@ -35,6 +36,8 @@ calamares_add_library( ${CALAMARESUI_LIBRARY_TARGET}
|
||||||
EXPORT_MACRO UIDLLEXPORT_PRO
|
EXPORT_MACRO UIDLLEXPORT_PRO
|
||||||
LINK_LIBRARIES
|
LINK_LIBRARIES
|
||||||
yaml-cpp
|
yaml-cpp
|
||||||
|
Qt5::Svg
|
||||||
|
RESOURCES libcalamaresui.qrc
|
||||||
EXPORT CalamaresLibraryDepends
|
EXPORT CalamaresLibraryDepends
|
||||||
VERSION ${CALAMARES_VERSION_SHORT}
|
VERSION ${CALAMARES_VERSION_SHORT}
|
||||||
)
|
)
|
||||||
|
|
6
src/libcalamaresui/libcalamaresui.qrc
Normal file
6
src/libcalamaresui/libcalamaresui.qrc
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<RCC>
|
||||||
|
<qresource prefix="/data">
|
||||||
|
<file alias="images/yes.svgz">../../data/images/yes.svgz</file>
|
||||||
|
<file alias="images/no.svgz">../../data/images/no.svgz</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
|
@ -18,9 +18,14 @@
|
||||||
|
|
||||||
#include "CalamaresUtilsGui.h"
|
#include "CalamaresUtilsGui.h"
|
||||||
|
|
||||||
|
#include "ImageRegistry.h"
|
||||||
|
|
||||||
|
#include <QBrush>
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#include <QFontMetrics>
|
#include <QFontMetrics>
|
||||||
#include <QLayout>
|
#include <QLayout>
|
||||||
|
#include <QPainter>
|
||||||
|
#include <QPen>
|
||||||
|
|
||||||
namespace CalamaresUtils
|
namespace CalamaresUtils
|
||||||
{
|
{
|
||||||
|
@ -29,6 +34,84 @@ static int s_defaultFontSize = 0;
|
||||||
static int s_defaultFontHeight = 0;
|
static int s_defaultFontHeight = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QPixmap
|
||||||
|
defaultPixmap( ImageType type, ImageMode mode, const QSize& size )
|
||||||
|
{
|
||||||
|
QPixmap pixmap;
|
||||||
|
|
||||||
|
switch ( type )
|
||||||
|
{
|
||||||
|
case Yes:
|
||||||
|
pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/yes.svgz", size );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case No:
|
||||||
|
pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/no.svgz", size );
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( pixmap.isNull() )
|
||||||
|
{
|
||||||
|
Q_ASSERT( false );
|
||||||
|
return QPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
return pixmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QPixmap
|
||||||
|
createRoundedImage( const QPixmap& pixmap, const QSize& size, float frameWidthPct )
|
||||||
|
{
|
||||||
|
int height;
|
||||||
|
int width;
|
||||||
|
|
||||||
|
if ( !size.isEmpty() )
|
||||||
|
{
|
||||||
|
height = size.height();
|
||||||
|
width = size.width();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
height = pixmap.height();
|
||||||
|
width = pixmap.width();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !height || !width )
|
||||||
|
return QPixmap();
|
||||||
|
|
||||||
|
QPixmap scaledAvatar = pixmap.scaled( width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
|
||||||
|
if ( frameWidthPct == 0.00 )
|
||||||
|
return scaledAvatar;
|
||||||
|
|
||||||
|
QPixmap frame( width, height );
|
||||||
|
frame.fill( Qt::transparent );
|
||||||
|
|
||||||
|
QPainter painter( &frame );
|
||||||
|
painter.setRenderHint( QPainter::Antialiasing );
|
||||||
|
|
||||||
|
QRect outerRect( 0, 0, width, height );
|
||||||
|
QBrush brush( scaledAvatar );
|
||||||
|
QPen pen;
|
||||||
|
pen.setColor( Qt::transparent );
|
||||||
|
pen.setJoinStyle( Qt::RoundJoin );
|
||||||
|
|
||||||
|
painter.setBrush( brush );
|
||||||
|
painter.setPen( pen );
|
||||||
|
painter.drawRoundedRect( outerRect, frameWidthPct * 100.0, frameWidthPct * 100.0, Qt::RelativeSize );
|
||||||
|
|
||||||
|
/* painter.setBrush( Qt::transparent );
|
||||||
|
painter.setPen( Qt::white );
|
||||||
|
painter.drawRoundedRect( outerRect, frameWidthPct, frameWidthPct, Qt::RelativeSize ); */
|
||||||
|
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
unmarginLayout( QLayout* layout )
|
unmarginLayout( QLayout* layout )
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,19 +22,37 @@
|
||||||
#include "utils/CalamaresUtils.h"
|
#include "utils/CalamaresUtils.h"
|
||||||
#include "UiDllMacro.h"
|
#include "UiDllMacro.h"
|
||||||
|
|
||||||
|
#include <QPixmap>
|
||||||
#include <QSize>
|
#include <QSize>
|
||||||
|
|
||||||
class QLayout;
|
class QLayout;
|
||||||
|
|
||||||
namespace CalamaresUtils
|
namespace CalamaresUtils
|
||||||
{
|
{
|
||||||
|
enum ImageType
|
||||||
|
{
|
||||||
|
Yes,
|
||||||
|
No
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ImageMode
|
||||||
|
{
|
||||||
|
Original,
|
||||||
|
CoverInCase,
|
||||||
|
Grid,
|
||||||
|
DropShadow,
|
||||||
|
RoundedCorners
|
||||||
|
};
|
||||||
|
|
||||||
|
UIDLLEXPORT QPixmap defaultPixmap( ImageType type, ImageMode mode = CalamaresUtils::Original, const QSize& size = QSize( 0, 0 ) );
|
||||||
|
UIDLLEXPORT QPixmap createRoundedImage( const QPixmap& avatar, const QSize& size, float frameWidthPct = 0.20 );
|
||||||
|
|
||||||
UIDLLEXPORT void unmarginLayout( QLayout* layout );
|
UIDLLEXPORT void unmarginLayout( QLayout* layout );
|
||||||
|
|
||||||
DLLEXPORT void setDefaultFontSize( int points );
|
UIDLLEXPORT void setDefaultFontSize( int points );
|
||||||
DLLEXPORT int defaultFontSize();
|
UIDLLEXPORT int defaultFontSize();
|
||||||
DLLEXPORT int defaultFontHeight();
|
UIDLLEXPORT int defaultFontHeight();
|
||||||
DLLEXPORT QSize defaultIconSize();
|
UIDLLEXPORT QSize defaultIconSize();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
163
src/libcalamaresui/utils/ImageRegistry.cpp
Normal file
163
src/libcalamaresui/utils/ImageRegistry.cpp
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||||
|
*
|
||||||
|
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||||
|
*
|
||||||
|
* Originally from Tomahawk,
|
||||||
|
* Copyright 2012, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||||
|
*
|
||||||
|
* Calamares 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.
|
||||||
|
*
|
||||||
|
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ImageRegistry.h"
|
||||||
|
|
||||||
|
#include <QSvgRenderer>
|
||||||
|
#include <QPainter>
|
||||||
|
#include <QIcon>
|
||||||
|
|
||||||
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
|
static QHash< QString, QHash< int, QHash< qint64, QPixmap > > > s_cache;
|
||||||
|
ImageRegistry* ImageRegistry::s_instance = 0;
|
||||||
|
|
||||||
|
|
||||||
|
ImageRegistry*
|
||||||
|
ImageRegistry::instance()
|
||||||
|
{
|
||||||
|
return s_instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ImageRegistry::ImageRegistry()
|
||||||
|
{
|
||||||
|
s_instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QIcon
|
||||||
|
ImageRegistry::icon( const QString& image, CalamaresUtils::ImageMode mode )
|
||||||
|
{
|
||||||
|
return pixmap( image, CalamaresUtils::defaultIconSize(), mode );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
qint64
|
||||||
|
ImageRegistry::cacheKey( const QSize& size, float opacity, QColor tint )
|
||||||
|
{
|
||||||
|
return size.width() * 100 + size.height() * 10 + ( opacity * 100.0 ) + tint.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QPixmap
|
||||||
|
ImageRegistry::pixmap( const QString& image, const QSize& size, CalamaresUtils::ImageMode mode, float opacity, QColor tint )
|
||||||
|
{
|
||||||
|
QHash< qint64, QPixmap > subsubcache;
|
||||||
|
QHash< int, QHash< qint64, QPixmap > > subcache;
|
||||||
|
|
||||||
|
if ( s_cache.contains( image ) )
|
||||||
|
{
|
||||||
|
subcache = s_cache.value( image );
|
||||||
|
|
||||||
|
if ( subcache.contains( mode ) )
|
||||||
|
{
|
||||||
|
subsubcache = subcache.value( mode );
|
||||||
|
|
||||||
|
const qint64 ck = cacheKey( size, opacity, tint );
|
||||||
|
if ( subsubcache.contains( ck ) )
|
||||||
|
{
|
||||||
|
return subsubcache.value( ck );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Image not found in cache. Let's load it.
|
||||||
|
QPixmap pixmap;
|
||||||
|
if ( image.toLower().endsWith( ".svg" ) ||
|
||||||
|
image.toLower().endsWith( ".svgz" ) )
|
||||||
|
{
|
||||||
|
QSvgRenderer svgRenderer( image );
|
||||||
|
QPixmap p( size.isNull() ? svgRenderer.defaultSize() : size );
|
||||||
|
p.fill( Qt::transparent );
|
||||||
|
|
||||||
|
QPainter pixPainter( &p );
|
||||||
|
pixPainter.setOpacity( opacity );
|
||||||
|
svgRenderer.render( &pixPainter );
|
||||||
|
pixPainter.end();
|
||||||
|
|
||||||
|
if ( tint.alpha() > 0 )
|
||||||
|
{
|
||||||
|
QImage resultImage( p.size(), QImage::Format_ARGB32_Premultiplied );
|
||||||
|
QPainter painter( &resultImage );
|
||||||
|
painter.drawPixmap( 0, 0, p );
|
||||||
|
painter.setCompositionMode( QPainter::CompositionMode_Screen );
|
||||||
|
painter.fillRect( resultImage.rect(), tint );
|
||||||
|
painter.end();
|
||||||
|
|
||||||
|
resultImage.setAlphaChannel( p.toImage().alphaChannel() );
|
||||||
|
p = QPixmap::fromImage( resultImage );
|
||||||
|
}
|
||||||
|
|
||||||
|
pixmap = p;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
pixmap = QPixmap( image );
|
||||||
|
|
||||||
|
if ( !pixmap.isNull() )
|
||||||
|
{
|
||||||
|
switch ( mode )
|
||||||
|
{
|
||||||
|
case CalamaresUtils::RoundedCorners:
|
||||||
|
pixmap = CalamaresUtils::createRoundedImage( pixmap, size );
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !size.isNull() && pixmap.size() != size )
|
||||||
|
pixmap = pixmap.scaled( size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
|
||||||
|
|
||||||
|
putInCache( image, size, mode, opacity, pixmap, tint );
|
||||||
|
}
|
||||||
|
|
||||||
|
return pixmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ImageRegistry::putInCache( const QString& image, const QSize& size, CalamaresUtils::ImageMode mode, float opacity, const QPixmap& pixmap, QColor tint )
|
||||||
|
{
|
||||||
|
cDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Adding to image cache:" << image << size << mode;
|
||||||
|
|
||||||
|
QHash< qint64, QPixmap > subsubcache;
|
||||||
|
QHash< int, QHash< qint64, QPixmap > > subcache;
|
||||||
|
|
||||||
|
if ( s_cache.contains( image ) )
|
||||||
|
{
|
||||||
|
subcache = s_cache.value( image );
|
||||||
|
|
||||||
|
if ( subcache.contains( mode ) )
|
||||||
|
{
|
||||||
|
subsubcache = subcache.value( mode );
|
||||||
|
|
||||||
|
/* if ( subsubcache.contains( size.width() * size.height() ) )
|
||||||
|
{
|
||||||
|
Q_ASSERT( false );
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
subsubcache.insert( cacheKey( size, opacity, tint ), pixmap );
|
||||||
|
subcache.insert( mode, subsubcache );
|
||||||
|
s_cache.insert( image, subcache );
|
||||||
|
}
|
47
src/libcalamaresui/utils/ImageRegistry.h
Normal file
47
src/libcalamaresui/utils/ImageRegistry.h
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||||
|
*
|
||||||
|
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||||
|
*
|
||||||
|
* Originally from Tomahawk,
|
||||||
|
* Copyright 2012, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||||
|
*
|
||||||
|
* Calamares 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.
|
||||||
|
*
|
||||||
|
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef IMAGE_REGISTRY_H
|
||||||
|
#define IMAGE_REGISTRY_H
|
||||||
|
|
||||||
|
#include <QPixmap>
|
||||||
|
|
||||||
|
#include "utils/CalamaresUtilsGui.h"
|
||||||
|
#include "UiDllMacro.h"
|
||||||
|
|
||||||
|
class UIDLLEXPORT ImageRegistry
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static ImageRegistry* instance();
|
||||||
|
|
||||||
|
explicit ImageRegistry();
|
||||||
|
|
||||||
|
QIcon icon( const QString& image, CalamaresUtils::ImageMode mode = CalamaresUtils::Original );
|
||||||
|
QPixmap pixmap( const QString& image, const QSize& size, CalamaresUtils::ImageMode mode = CalamaresUtils::Original, float opacity = 1.0, QColor tint = QColor( 0, 0, 0, 0 ) );
|
||||||
|
|
||||||
|
private:
|
||||||
|
qint64 cacheKey( const QSize& size, float opacity, QColor tint );
|
||||||
|
void putInCache( const QString& image, const QSize& size, CalamaresUtils::ImageMode mode, float opacity, const QPixmap& pixmap, QColor tint );
|
||||||
|
|
||||||
|
static ImageRegistry* s_instance;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // IMAGE_REGISTRY_H
|
|
@ -10,6 +10,8 @@ calamares_add_plugin( keyboard
|
||||||
keyboardwidget/keyboardpreview.cpp
|
keyboardwidget/keyboardpreview.cpp
|
||||||
UI
|
UI
|
||||||
KeyboardPage.ui
|
KeyboardPage.ui
|
||||||
|
RESOURCES
|
||||||
|
keyboard.qrc
|
||||||
LINK_LIBRARIES
|
LINK_LIBRARIES
|
||||||
calamaresui
|
calamaresui
|
||||||
SHARED_LIB
|
SHARED_LIB
|
||||||
|
|
|
@ -10,6 +10,8 @@ calamares_add_plugin( locale
|
||||||
timezonewidget/timezonewidget.cpp
|
timezonewidget/timezonewidget.cpp
|
||||||
timezonewidget/localeglobal.cpp
|
timezonewidget/localeglobal.cpp
|
||||||
UI
|
UI
|
||||||
|
RESOURCES
|
||||||
|
locale.qrc
|
||||||
LINK_LIBRARIES
|
LINK_LIBRARIES
|
||||||
calamaresui
|
calamaresui
|
||||||
SHARED_LIB
|
SHARED_LIB
|
||||||
|
|
|
@ -9,8 +9,9 @@ calamares_add_plugin( prepare
|
||||||
TYPE viewmodule
|
TYPE viewmodule
|
||||||
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
||||||
SOURCES
|
SOURCES
|
||||||
PrepareViewStep.cpp
|
PrepareCheckWidget.cpp
|
||||||
PreparePage.cpp
|
PreparePage.cpp
|
||||||
|
PrepareViewStep.cpp
|
||||||
partman_devices.c
|
partman_devices.c
|
||||||
UI
|
UI
|
||||||
LINK_LIBRARIES
|
LINK_LIBRARIES
|
||||||
|
|
50
src/modules/prepare/PrepareCheckWidget.cpp
Normal file
50
src/modules/prepare/PrepareCheckWidget.cpp
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||||
|
*
|
||||||
|
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||||
|
*
|
||||||
|
* Calamares 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.
|
||||||
|
*
|
||||||
|
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "PrepareCheckWidget.h"
|
||||||
|
|
||||||
|
#include "utils/CalamaresUtilsGui.h"
|
||||||
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
|
#include <QBoxLayout>
|
||||||
|
|
||||||
|
PrepareCheckWidget::PrepareCheckWidget( const QString &text,
|
||||||
|
bool checked,
|
||||||
|
QWidget* parent )
|
||||||
|
: QWidget( parent )
|
||||||
|
{
|
||||||
|
QBoxLayout* mainLayout = new QHBoxLayout;
|
||||||
|
setLayout( mainLayout );
|
||||||
|
|
||||||
|
m_iconLabel = new QLabel( this );
|
||||||
|
mainLayout->addWidget( m_iconLabel );
|
||||||
|
m_textLabel = new QLabel( text, this );
|
||||||
|
mainLayout->addWidget( m_textLabel );
|
||||||
|
m_textLabel->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
|
||||||
|
|
||||||
|
if ( checked )
|
||||||
|
m_iconLabel->setPixmap( CalamaresUtils::defaultPixmap( CalamaresUtils::Yes,
|
||||||
|
CalamaresUtils::Original,
|
||||||
|
QSize( m_iconLabel->height(),
|
||||||
|
m_iconLabel->height() ) ) );
|
||||||
|
else
|
||||||
|
m_iconLabel->setPixmap( CalamaresUtils::defaultPixmap( CalamaresUtils::No,
|
||||||
|
CalamaresUtils::Original,
|
||||||
|
QSize( m_iconLabel->height(),
|
||||||
|
m_iconLabel->height() ) ) );
|
||||||
|
}
|
36
src/modules/prepare/PrepareCheckWidget.h
Normal file
36
src/modules/prepare/PrepareCheckWidget.h
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||||
|
*
|
||||||
|
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||||
|
*
|
||||||
|
* Calamares 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.
|
||||||
|
*
|
||||||
|
* Calamares 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 Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PREPARECHECKWIDGET_H
|
||||||
|
#define PREPARECHECKWIDGET_H
|
||||||
|
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
class PrepareCheckWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit PrepareCheckWidget( const QString &text,
|
||||||
|
bool checked,
|
||||||
|
QWidget* parent = nullptr );
|
||||||
|
private:
|
||||||
|
QLabel* m_textLabel;
|
||||||
|
QLabel* m_iconLabel;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // PREPARECHECKWIDGET_H
|
|
@ -18,6 +18,10 @@
|
||||||
|
|
||||||
#include "PreparePage.h"
|
#include "PreparePage.h"
|
||||||
|
|
||||||
|
#include "PrepareCheckWidget.h"
|
||||||
|
|
||||||
|
#include "utils/CalamaresUtilsGui.h"
|
||||||
|
|
||||||
#include <QBoxLayout>
|
#include <QBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
|
||||||
|
@ -30,16 +34,25 @@ PreparePage::PreparePage( QWidget* parent )
|
||||||
|
|
||||||
QLabel* text = new QLabel( tr( "For best results, please ensure that this "
|
QLabel* text = new QLabel( tr( "For best results, please ensure that this "
|
||||||
"computer:" ), this );
|
"computer:" ), this );
|
||||||
text->setAlignment( Qt::AlignCenter );
|
|
||||||
|
|
||||||
mainLayout->addStretch();
|
|
||||||
mainLayout->addWidget( text );
|
mainLayout->addWidget( text );
|
||||||
|
QHBoxLayout* spacerLayout = new QHBoxLayout;
|
||||||
|
mainLayout->addLayout( spacerLayout );
|
||||||
|
spacerLayout->addSpacing( CalamaresUtils::defaultFontHeight() * 2 );
|
||||||
|
m_entriesLayout = new QVBoxLayout;
|
||||||
|
spacerLayout->addLayout( m_entriesLayout );
|
||||||
|
CalamaresUtils::unmarginLayout( spacerLayout );
|
||||||
mainLayout->addStretch();
|
mainLayout->addStretch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PreparePage::init()
|
PreparePage::init( const QList< QPair< QString, bool > > &checkEntries )
|
||||||
{
|
{
|
||||||
|
for ( const QPair< QString, bool >& entry : checkEntries )
|
||||||
|
{
|
||||||
|
PrepareCheckWidget* pcw = new PrepareCheckWidget( entry.first, entry.second );
|
||||||
|
m_entriesLayout->addWidget( pcw );
|
||||||
|
pcw->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#ifndef PREPAREPAGE_H
|
#ifndef PREPAREPAGE_H
|
||||||
#define PREPAREPAGE_H
|
#define PREPAREPAGE_H
|
||||||
|
|
||||||
|
#include <QBoxLayout>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
class PreparePage : public QWidget
|
class PreparePage : public QWidget
|
||||||
|
@ -27,8 +28,10 @@ class PreparePage : public QWidget
|
||||||
public:
|
public:
|
||||||
explicit PreparePage( QWidget* parent = nullptr );
|
explicit PreparePage( QWidget* parent = nullptr );
|
||||||
|
|
||||||
void init();
|
void init( const QList< QPair< QString, bool > >& checkEntries );
|
||||||
|
|
||||||
|
private:
|
||||||
|
QBoxLayout* m_entriesLayout;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PREPAREPAGE_H
|
#endif // PREPAREPAGE_H
|
||||||
|
|
|
@ -97,7 +97,23 @@ PrepareViewStep::PrepareViewStep( QObject* parent )
|
||||||
cDebug() << "enoughStorage, enoughRam, hasPower, hasInternet: "
|
cDebug() << "enoughStorage, enoughRam, hasPower, hasInternet: "
|
||||||
<< enoughStorage << enoughRam << hasPower << hasInternet;
|
<< enoughStorage << enoughRam << hasPower << hasInternet;
|
||||||
|
|
||||||
m_actualWidget->init();
|
QList< QPair< QString, bool > > checkEntries;
|
||||||
|
checkEntries.append( qMakePair(
|
||||||
|
tr( "has at least %1 GB available drive space" )
|
||||||
|
.arg( m_requiredStorageGB ),
|
||||||
|
enoughStorage ) );
|
||||||
|
checkEntries.append( qMakePair(
|
||||||
|
tr( "has at least %1 GB working memory" )
|
||||||
|
.arg( m_requiredRamGB ),
|
||||||
|
enoughRam ) );
|
||||||
|
checkEntries.append( qMakePair(
|
||||||
|
tr( "is plugged in to a power source" ),
|
||||||
|
hasPower ) );
|
||||||
|
checkEntries.append( qMakePair(
|
||||||
|
tr( "is connected to the Internet" ),
|
||||||
|
hasInternet ) );
|
||||||
|
|
||||||
|
m_actualWidget->init( checkEntries );
|
||||||
m_widget->layout()->removeWidget( waitingWidget );
|
m_widget->layout()->removeWidget( waitingWidget );
|
||||||
waitingWidget->deleteLater();
|
waitingWidget->deleteLater();
|
||||||
m_widget->layout()->addWidget( m_actualWidget );
|
m_widget->layout()->addWidget( m_actualWidget );
|
||||||
|
|
|
@ -13,6 +13,8 @@ calamares_add_plugin( users
|
||||||
UsersPage.cpp
|
UsersPage.cpp
|
||||||
UI
|
UI
|
||||||
page_usersetup.ui
|
page_usersetup.ui
|
||||||
|
RESOURCES
|
||||||
|
users.qrc
|
||||||
LINK_LIBRARIES
|
LINK_LIBRARIES
|
||||||
calamaresui
|
calamaresui
|
||||||
${CRYPT_LIBRARIES}
|
${CRYPT_LIBRARIES}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue