Added custom font size, increase max len of text limit, added memonics for configure dialog

This commit is contained in:
zJes 2016-02-29 14:12:03 +01:00
parent eedf255f4d
commit 6e5171dcfb
5 changed files with 87 additions and 11 deletions

View File

@ -14,13 +14,24 @@ Config::Config(QWidget *parent) :
m_ui->maxLengthEdt->setValue(set.maxTextWidth());
m_ui->filterDskChk->setChecked(set.filterCurrentDesktop());
m_ui->filterScrChk->setChecked(set.filterCurrentScreen());
m_ui->fontSize->setValue(qApp->font().pointSize());
if (set.customFontSize() > 0){
m_ui->fontSizeEnabled->setChecked(set.customFontSize() > 0);
m_ui->fontSize->setValue(set.customFontSize());
m_ui->fontSize->setEnabled(true);
}
connect(m_ui->iconSizeEdt, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [this](int){ save(); });
connect(m_ui->maxItemsEdt, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [this](int){ save(); });
connect(m_ui->maxLengthEdt, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [this](int){ save(); });
connect(m_ui->fontSize, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [this](int){ save(); });
connect(m_ui->filterDskChk, &QCheckBox::stateChanged, this, &Config::save);
connect(m_ui->filterScrChk, &QCheckBox::stateChanged, this, &Config::save);
connect(m_ui->fontSizeEnabled, &QCheckBox::stateChanged, [this](int state){
m_ui->fontSize->setEnabled(state);
save();
});
}
Config::~Config()
@ -37,6 +48,7 @@ void Config::save()
set.setMaxTextWidth(m_ui->maxLengthEdt->value());
set.setFilterCurrentDesktop(m_ui->filterDskChk->isChecked());
set.setFilterCurrentScreen(m_ui->filterScrChk->isChecked());
set.setCustomFontSize(m_ui->fontSizeEnabled->isChecked() ? m_ui->fontSize->value() : 0);
set.sync();
}

View File

@ -23,32 +23,76 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Icons size</string>
<string>Icons &amp;size</string>
</property>
<property name="buddy">
<cstring>iconSizeEdt</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="iconSizeEdt"/>
<widget class="QSpinBox" name="iconSizeEdt">
<property name="suffix">
<string> px</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Max items to show</string>
<string>Max &amp;items to show</string>
</property>
<property name="buddy">
<cstring>maxItemsEdt</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="maxItemsEdt"/>
<widget class="QSpinBox" name="maxItemsEdt">
<property name="minimum">
<number>5</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Max text length</string>
<string>Max text &amp;length</string>
</property>
<property name="buddy">
<cstring>maxLengthEdt</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="maxLengthEdt"/>
<widget class="QSpinBox" name="maxLengthEdt">
<property name="maximum">
<number>999</number>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="fontSizeEnabled">
<property name="text">
<string>Custom &amp;font size</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="fontSize">
<property name="enabled">
<bool>false</bool>
</property>
<property name="suffix">
<string> pt</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="value">
<number>11</number>
</property>
</widget>
</item>
</layout>
</widget>
@ -62,14 +106,14 @@
<item>
<widget class="QCheckBox" name="filterDskChk">
<property name="text">
<string>Filter by desktop</string>
<string>Filter by &amp;desktop</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="filterScrChk">
<property name="text">
<string>Filter by screen</string>
<string>Filter by s&amp;creen</string>
</property>
</widget>
</item>

View File

@ -30,6 +30,8 @@ void AppItemDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opt
text = text.left(m_maxTextWidth)+"...";
}
painter->setFont(option.font);
painter->drawText(
QRectF(option.rect.left()+m_iconSize+5, option.rect.top()+2, option.rect.width()-m_iconSize-5, m_iconSize),
Qt::AlignLeft | Qt::AlignVCenter | Qt::TextSingleLine,
@ -37,9 +39,9 @@ void AppItemDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opt
);
}
QSize AppItemDelegate::sizeHint(const QStyleOptionViewItem &/*option*/, const QModelIndex &index) const
QSize AppItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QFontMetrics m(qApp->font());
QFontMetrics m(option.font);
QString text = index.model()->data(index, AppRole::Display).toString();
if (text.length() > m_maxTextWidth){

View File

@ -55,12 +55,24 @@ void AppSwitcher::showSwitcher(bool forward)
if (!model()->rowCount())
return;
QStyleOptionViewItem option;
int fontSize = Settings::instance().customFontSize();
QFont fnt = font();
if (fontSize > 0){
fnt.setPointSize(fontSize);
option.font.setPointSize(fontSize);
} else {
fnt.setPointSize(qApp->font().pointSize());
option.font.setPointSize(qApp->font().pointSize());
}
setFont(fnt);
int w = 0;
int h = 0;
int maxApp = Settings::instance().maxDisplayApps();
for(int i = 0; i < model()->rowCount(); ++i){
QSize siz = itemDelegate()->sizeHint(QStyleOptionViewItem(), model()->index(i, 0));
QSize siz = itemDelegate()->sizeHint(option, model()->index(i, 0));
w = qMax(w, siz.width());
h += siz.height();
if (i > maxApp)

View File

@ -46,6 +46,12 @@ public:
void setFilterCurrentScreen(bool filter)
{ m_sets.setValue("filter/current-screen", filter); }
int customFontSize() const
{ return m_sets.value("appearance/font-size", 0).toInt();}
void setCustomFontSize(int size)
{ m_sets.setValue("appearance/font-size", size);}
void sync()
{ m_sets.sync(); }
private: