Added custom font size, increase max len of text limit, added memonics for configure dialog
This commit is contained in:
parent
eedf255f4d
commit
6e5171dcfb
5 changed files with 87 additions and 11 deletions
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -23,32 +23,76 @@
|
|||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Icons size</string>
|
||||
<string>Icons &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 &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 &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 &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 &desktop</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="filterScrChk">
|
||||
<property name="text">
|
||||
<string>Filter by screen</string>
|
||||
<string>Filter by s&creen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue