mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Enable setting preferred size in caf::IconProvider
This commit is contained in:
@@ -44,8 +44,9 @@ using namespace caf;
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
IconProvider::IconProvider()
|
||||
IconProvider::IconProvider(const QSize& preferredSize)
|
||||
: m_active(true)
|
||||
, m_preferredSize(preferredSize)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -53,9 +54,10 @@ IconProvider::IconProvider()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
IconProvider::IconProvider(const QString& iconResourceString)
|
||||
IconProvider::IconProvider(const QString& iconResourceString, const QSize& preferredSize)
|
||||
: m_active(true)
|
||||
, m_iconResourceString(iconResourceString)
|
||||
, m_preferredSize(preferredSize)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -65,6 +67,7 @@ IconProvider::IconProvider(const QString& iconResourceString)
|
||||
caf::IconProvider::IconProvider(const QPixmap& pixmap)
|
||||
: m_active(true)
|
||||
, m_pixmap(new QPixmap(pixmap))
|
||||
, m_preferredSize(pixmap.size())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -76,6 +79,7 @@ IconProvider::IconProvider(const IconProvider& rhs)
|
||||
, m_iconResourceString(rhs.m_iconResourceString)
|
||||
, m_overlayResourceString(rhs.m_overlayResourceString)
|
||||
, m_backgroundColorStrings(rhs.m_backgroundColorStrings)
|
||||
, m_preferredSize(rhs.m_preferredSize)
|
||||
{
|
||||
copyPixmap(rhs);
|
||||
}
|
||||
@@ -85,10 +89,11 @@ IconProvider::IconProvider(const IconProvider& rhs)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
IconProvider& IconProvider::operator=(const IconProvider& rhs)
|
||||
{
|
||||
m_active = rhs.m_active;
|
||||
m_iconResourceString = rhs.m_iconResourceString;
|
||||
m_overlayResourceString = rhs.m_overlayResourceString;
|
||||
m_active = rhs.m_active;
|
||||
m_iconResourceString = rhs.m_iconResourceString;
|
||||
m_overlayResourceString = rhs.m_overlayResourceString;
|
||||
m_backgroundColorStrings = rhs.m_backgroundColorStrings;
|
||||
m_preferredSize = rhs.m_preferredSize;
|
||||
copyPixmap(rhs);
|
||||
|
||||
return *this;
|
||||
@@ -105,7 +110,45 @@ void IconProvider::setActive(bool active)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::unique_ptr<QIcon> IconProvider::icon(const QSize& size /*= QSize(16, 16)*/) const
|
||||
bool caf::IconProvider::valid() const
|
||||
{
|
||||
if (isGuiApplication())
|
||||
{
|
||||
if (m_pixmap && !m_pixmap->isNull()) return true;
|
||||
|
||||
if (backgroundColorsAreValid())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!m_iconResourceString.isEmpty())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void IconProvider::setPreferredSize(const QSize& size)
|
||||
{
|
||||
m_preferredSize = size;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::unique_ptr<QIcon> IconProvider::icon() const
|
||||
{
|
||||
return this->icon(m_preferredSize);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::unique_ptr<QIcon> IconProvider::icon(const QSize& size) const
|
||||
{
|
||||
if (!isGuiApplication())
|
||||
{
|
||||
@@ -206,28 +249,6 @@ void IconProvider::setBackgroundColorGradient(const std::vector<QString>& colorN
|
||||
m_backgroundColorStrings = colorNames;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool caf::IconProvider::valid() const
|
||||
{
|
||||
if (isGuiApplication())
|
||||
{
|
||||
if (m_pixmap && !m_pixmap->isNull()) return true;
|
||||
|
||||
if (backgroundColorsAreValid())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!m_iconResourceString.isEmpty())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Use a pixmap instead of the resource strings.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -55,16 +55,18 @@ namespace caf
|
||||
class IconProvider
|
||||
{
|
||||
public:
|
||||
IconProvider();
|
||||
IconProvider(const QString& iconResourceString);
|
||||
IconProvider(const QSize& preferredSize = QSize(16, 16));
|
||||
IconProvider(const QString& iconResourceString, const QSize& preferredSize = QSize(16, 16));
|
||||
IconProvider(const QPixmap& pixmap);
|
||||
IconProvider(const IconProvider& rhs);
|
||||
IconProvider& operator=(const IconProvider& rhs);
|
||||
|
||||
void setActive(bool active);
|
||||
bool valid() const;
|
||||
void setPreferredSize(const QSize& size);
|
||||
|
||||
std::unique_ptr<QIcon> icon(const QSize& size = QSize(16, 16)) const;
|
||||
std::unique_ptr<QIcon> icon() const;
|
||||
std::unique_ptr<QIcon> icon(const QSize& size) const;
|
||||
|
||||
void setIconResourceString(const QString& iconResourceString);
|
||||
void setOverlayResourceString(const QString& overlayResourceString);
|
||||
@@ -84,7 +86,7 @@ private:
|
||||
QString m_iconResourceString;
|
||||
QString m_overlayResourceString;
|
||||
std::vector<QString> m_backgroundColorStrings;
|
||||
|
||||
QSize m_preferredSize;
|
||||
std::unique_ptr<QPixmap> m_pixmap;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user