mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-24 02:42:50 +00:00
kgreeter: implement option to change the cursor theme
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
abe93a9325
commit
9e174e4544
6 changed files with 75 additions and 18 deletions
|
@ -92,6 +92,20 @@ KCMGreeter::KCMGreeter(QWidget* parent, const QVariantList& args)
|
||||||
}
|
}
|
||||||
connect(colorsbox, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotColorChanged(QString)));
|
connect(colorsbox, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotColorChanged(QString)));
|
||||||
|
|
||||||
|
cursorbox->addItem(i18n("Default"), QVariant(QString::fromLatin1("default")));
|
||||||
|
const QStringList cursorthemes = KGlobal::dirs()->findAllResources("icon", "*/index.theme");
|
||||||
|
foreach (const QString &cursortheme, cursorthemes) {
|
||||||
|
const QString cursorthemename = QSettings(cursortheme, QSettings::IniFormat).value("Icon Theme/Name").toString();
|
||||||
|
QDir cursorthemedir(cursortheme);
|
||||||
|
cursorthemedir.cdUp();
|
||||||
|
if (!cursorthemedir.exists(QString::fromLatin1("cursors"))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const QString cursorthemebasename = QFileInfo(cursorthemedir.dirName()).baseName();
|
||||||
|
cursorbox->addItem(cursorthemename, QVariant(cursorthemebasename));
|
||||||
|
}
|
||||||
|
connect(cursorbox, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotCursorChanged(QString)));
|
||||||
|
|
||||||
backgroundrequester->setFilter(KImageIO::pattern(KImageIO::Reading));
|
backgroundrequester->setFilter(KImageIO::pattern(KImageIO::Reading));
|
||||||
connect(backgroundrequester, SIGNAL(textChanged(QString)), this, SLOT(slotURLChanged(QString)));
|
connect(backgroundrequester, SIGNAL(textChanged(QString)), this, SLOT(slotURLChanged(QString)));
|
||||||
connect(backgroundrequester, SIGNAL(urlSelected(KUrl)), this, SLOT(slotURLChanged(KUrl)));
|
connect(backgroundrequester, SIGNAL(urlSelected(KUrl)), this, SLOT(slotURLChanged(KUrl)));
|
||||||
|
@ -139,6 +153,17 @@ void KCMGreeter::load()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cursorbox->setCurrentIndex(0); // default
|
||||||
|
const QString kgreetercursortheme = kgreetersettings.value("greeter/cursortheme").toString();
|
||||||
|
if (!kgreetercursortheme.isEmpty()) {
|
||||||
|
for (int i = 0; i < cursorbox->count(); i++) {
|
||||||
|
if (cursorbox->itemData(i).toString().toLower() == kgreetercursortheme.toLower()) {
|
||||||
|
cursorbox->setCurrentIndex(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const QString kgreeterbackground = kgreetersettings.value("greeter/background", KGreeterDefaultBackground()).toString();
|
const QString kgreeterbackground = kgreetersettings.value("greeter/background", KGreeterDefaultBackground()).toString();
|
||||||
backgroundrequester->setUrl(KUrl(kgreeterbackground));
|
backgroundrequester->setUrl(KUrl(kgreeterbackground));
|
||||||
|
|
||||||
|
@ -156,6 +181,7 @@ void KCMGreeter::save()
|
||||||
kgreeteraction.addArgument("font", fontchooser->font().toString());
|
kgreeteraction.addArgument("font", fontchooser->font().toString());
|
||||||
kgreeteraction.addArgument("style", stylesbox->itemData(stylesbox->currentIndex()).toString());
|
kgreeteraction.addArgument("style", stylesbox->itemData(stylesbox->currentIndex()).toString());
|
||||||
kgreeteraction.addArgument("colorscheme", colorsbox->itemData(colorsbox->currentIndex()).toString());
|
kgreeteraction.addArgument("colorscheme", colorsbox->itemData(colorsbox->currentIndex()).toString());
|
||||||
|
kgreeteraction.addArgument("cursortheme", cursorbox->itemData(cursorbox->currentIndex()).toString());
|
||||||
kgreeteraction.addArgument("background", backgroundrequester->url().path());
|
kgreeteraction.addArgument("background", backgroundrequester->url().path());
|
||||||
kgreeteraction.addArgument("rectangle", rectanglerequester->url().path());
|
kgreeteraction.addArgument("rectangle", rectanglerequester->url().path());
|
||||||
KAuth::ActionReply kgreeterreply = kgreeteraction.execute();
|
KAuth::ActionReply kgreeterreply = kgreeteraction.execute();
|
||||||
|
@ -179,6 +205,7 @@ void KCMGreeter::defaults()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
colorsbox->setCurrentIndex(0);
|
colorsbox->setCurrentIndex(0);
|
||||||
|
cursorbox->setCurrentIndex(0);
|
||||||
backgroundrequester->setUrl(KUrl());
|
backgroundrequester->setUrl(KUrl());
|
||||||
rectanglerequester->setUrl(KUrl());
|
rectanglerequester->setUrl(KUrl());
|
||||||
|
|
||||||
|
@ -207,6 +234,13 @@ void KCMGreeter::slotColorChanged(const QString &color)
|
||||||
emit changed(true);
|
emit changed(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KCMGreeter::slotCursorChanged(const QString &cursor)
|
||||||
|
{
|
||||||
|
Q_UNUSED(cursor);
|
||||||
|
enableTest(false);
|
||||||
|
emit changed(true);
|
||||||
|
}
|
||||||
|
|
||||||
void KCMGreeter::slotURLChanged(const QString &url)
|
void KCMGreeter::slotURLChanged(const QString &url)
|
||||||
{
|
{
|
||||||
Q_UNUSED(url);
|
Q_UNUSED(url);
|
||||||
|
|
|
@ -47,6 +47,7 @@ private Q_SLOTS:
|
||||||
void slotFontChanged(const QFont &font);
|
void slotFontChanged(const QFont &font);
|
||||||
void slotStyleChanged(const QString &style);
|
void slotStyleChanged(const QString &style);
|
||||||
void slotColorChanged(const QString &color);
|
void slotColorChanged(const QString &color);
|
||||||
|
void slotCursorChanged(const QString &cursor);
|
||||||
void slotURLChanged(const QString &url);
|
void slotURLChanged(const QString &url);
|
||||||
void slotURLChanged(const KUrl &url);
|
void slotURLChanged(const KUrl &url);
|
||||||
|
|
||||||
|
|
|
@ -59,16 +59,6 @@
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0" colspan="3">
|
<item row="1" column="0" colspan="3">
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label_2">
|
|
||||||
<property name="text">
|
|
||||||
<string>Color scheme:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -79,10 +69,20 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Color scheme:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QComboBox" name="colorsbox"/>
|
<widget class="QComboBox" name="colorsbox"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="5" column="0">
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Background:</string>
|
<string>Background:</string>
|
||||||
|
@ -92,13 +92,16 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="KUrlRequester" name="backgroundrequester"/>
|
<widget class="KUrlRequester" name="rectanglerequester"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QComboBox" name="stylesbox"/>
|
<widget class="QComboBox" name="stylesbox"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="5" column="1">
|
||||||
|
<widget class="KUrlRequester" name="backgroundrequester"/>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
<widget class="QLabel" name="label_4">
|
<widget class="QLabel" name="label_4">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Rectangle:</string>
|
<string>Rectangle:</string>
|
||||||
|
@ -108,8 +111,15 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="KUrlRequester" name="rectanglerequester"/>
|
<widget class="QComboBox" name="cursorbox"/>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Cursor theme:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
ActionReply KGreeterHelper::save(const QVariantMap ¶meters)
|
ActionReply KGreeterHelper::save(const QVariantMap ¶meters)
|
||||||
{
|
{
|
||||||
if (!parameters.contains("font") || !parameters.contains("style")
|
if (!parameters.contains("font") || !parameters.contains("style")
|
||||||
|| !parameters.contains("colorscheme") || !parameters.contains("background")
|
|| !parameters.contains("colorscheme") || !parameters.contains("cursortheme")
|
||||||
|| !parameters.contains("rectangle")) {
|
|| !parameters.contains("background") || !parameters.contains("rectangle")) {
|
||||||
return KAuth::ActionReply::HelperErrorReply;
|
return KAuth::ActionReply::HelperErrorReply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,11 +35,16 @@ ActionReply KGreeterHelper::save(const QVariantMap ¶meters)
|
||||||
if (colorscheme == QLatin1String("default")) {
|
if (colorscheme == QLatin1String("default")) {
|
||||||
colorscheme = QString();
|
colorscheme = QString();
|
||||||
}
|
}
|
||||||
|
QString cursortheme = parameters.value("cursortheme").toString();
|
||||||
|
if (cursortheme == QLatin1String("default")) {
|
||||||
|
cursortheme = QString();
|
||||||
|
}
|
||||||
|
|
||||||
QSettings kgreetersettings(KDE_SYSCONFDIR "/lightdm/lightdm-kgreeter-greeter.conf", QSettings::IniFormat);
|
QSettings kgreetersettings(KDE_SYSCONFDIR "/lightdm/lightdm-kgreeter-greeter.conf", QSettings::IniFormat);
|
||||||
kgreetersettings.setValue("greeter/font", parameters.value("font"));
|
kgreetersettings.setValue("greeter/font", parameters.value("font"));
|
||||||
kgreetersettings.setValue("greeter/style", parameters.value("style"));
|
kgreetersettings.setValue("greeter/style", parameters.value("style"));
|
||||||
kgreetersettings.setValue("greeter/colorscheme", colorscheme);
|
kgreetersettings.setValue("greeter/colorscheme", colorscheme);
|
||||||
|
kgreetersettings.setValue("greeter/cursortheme", cursortheme);
|
||||||
kgreetersettings.setValue("greeter/background", parameters.value("background"));
|
kgreetersettings.setValue("greeter/background", parameters.value("background"));
|
||||||
kgreetersettings.setValue("greeter/rectangle", parameters.value("rectangle"));
|
kgreetersettings.setValue("greeter/rectangle", parameters.value("rectangle"));
|
||||||
if (kgreetersettings.status() != QSettings::NoError) {
|
if (kgreetersettings.status() != QSettings::NoError) {
|
||||||
|
|
|
@ -567,6 +567,12 @@ int main(int argc, char**argv)
|
||||||
app.setPalette(KGlobalSettings::createApplicationPalette());
|
app.setPalette(KGlobalSettings::createApplicationPalette());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QString kgreetercursortheme = kgreetersettings.value("greeter/cursortheme").toString();
|
||||||
|
if (!kgreetercursortheme.isEmpty()) {
|
||||||
|
const QByteArray xcursorthemebytes = kgreetercursortheme.toAscii();
|
||||||
|
::setenv("XCURSOR_THEME", xcursorthemebytes.constData(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
glibloop = g_main_loop_new(NULL, false);
|
glibloop = g_main_loop_new(NULL, false);
|
||||||
|
|
||||||
KGreeter kgreeter;
|
KGreeter kgreeter;
|
||||||
|
|
|
@ -5,5 +5,6 @@
|
||||||
#font=
|
#font=
|
||||||
#style=
|
#style=
|
||||||
#colorscheme=
|
#colorscheme=
|
||||||
|
#cursortheme=
|
||||||
#background=
|
#background=
|
||||||
#rectangle=
|
#rectangle=
|
||||||
|
|
Loading…
Add table
Reference in a new issue