mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 10:22:49 +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)));
|
||||
|
||||
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));
|
||||
connect(backgroundrequester, SIGNAL(textChanged(QString)), this, SLOT(slotURLChanged(QString)));
|
||||
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();
|
||||
backgroundrequester->setUrl(KUrl(kgreeterbackground));
|
||||
|
||||
|
@ -156,6 +181,7 @@ void KCMGreeter::save()
|
|||
kgreeteraction.addArgument("font", fontchooser->font().toString());
|
||||
kgreeteraction.addArgument("style", stylesbox->itemData(stylesbox->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("rectangle", rectanglerequester->url().path());
|
||||
KAuth::ActionReply kgreeterreply = kgreeteraction.execute();
|
||||
|
@ -179,6 +205,7 @@ void KCMGreeter::defaults()
|
|||
}
|
||||
}
|
||||
colorsbox->setCurrentIndex(0);
|
||||
cursorbox->setCurrentIndex(0);
|
||||
backgroundrequester->setUrl(KUrl());
|
||||
rectanglerequester->setUrl(KUrl());
|
||||
|
||||
|
@ -207,6 +234,13 @@ void KCMGreeter::slotColorChanged(const QString &color)
|
|||
emit changed(true);
|
||||
}
|
||||
|
||||
void KCMGreeter::slotCursorChanged(const QString &cursor)
|
||||
{
|
||||
Q_UNUSED(cursor);
|
||||
enableTest(false);
|
||||
emit changed(true);
|
||||
}
|
||||
|
||||
void KCMGreeter::slotURLChanged(const QString &url)
|
||||
{
|
||||
Q_UNUSED(url);
|
||||
|
|
|
@ -47,6 +47,7 @@ private Q_SLOTS:
|
|||
void slotFontChanged(const QFont &font);
|
||||
void slotStyleChanged(const QString &style);
|
||||
void slotColorChanged(const QString &color);
|
||||
void slotCursorChanged(const QString &cursor);
|
||||
void slotURLChanged(const QString &url);
|
||||
void slotURLChanged(const KUrl &url);
|
||||
|
||||
|
|
|
@ -59,16 +59,6 @@
|
|||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<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">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
|
@ -79,10 +69,20 @@
|
|||
</property>
|
||||
</widget>
|
||||
</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">
|
||||
<widget class="QComboBox" name="colorsbox"/>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Background:</string>
|
||||
|
@ -92,13 +92,16 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="KUrlRequester" name="backgroundrequester"/>
|
||||
<item row="6" column="1">
|
||||
<widget class="KUrlRequester" name="rectanglerequester"/>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="stylesbox"/>
|
||||
</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">
|
||||
<property name="text">
|
||||
<string>Rectangle:</string>
|
||||
|
@ -108,8 +111,15 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="KUrlRequester" name="rectanglerequester"/>
|
||||
<item row="4" column="1">
|
||||
<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>
|
||||
</layout>
|
||||
</item>
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
ActionReply KGreeterHelper::save(const QVariantMap ¶meters)
|
||||
{
|
||||
if (!parameters.contains("font") || !parameters.contains("style")
|
||||
|| !parameters.contains("colorscheme") || !parameters.contains("background")
|
||||
|| !parameters.contains("rectangle")) {
|
||||
|| !parameters.contains("colorscheme") || !parameters.contains("cursortheme")
|
||||
|| !parameters.contains("background") || !parameters.contains("rectangle")) {
|
||||
return KAuth::ActionReply::HelperErrorReply;
|
||||
}
|
||||
|
||||
|
@ -35,11 +35,16 @@ ActionReply KGreeterHelper::save(const QVariantMap ¶meters)
|
|||
if (colorscheme == QLatin1String("default")) {
|
||||
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);
|
||||
kgreetersettings.setValue("greeter/font", parameters.value("font"));
|
||||
kgreetersettings.setValue("greeter/style", parameters.value("style"));
|
||||
kgreetersettings.setValue("greeter/colorscheme", colorscheme);
|
||||
kgreetersettings.setValue("greeter/cursortheme", cursortheme);
|
||||
kgreetersettings.setValue("greeter/background", parameters.value("background"));
|
||||
kgreetersettings.setValue("greeter/rectangle", parameters.value("rectangle"));
|
||||
if (kgreetersettings.status() != QSettings::NoError) {
|
||||
|
|
|
@ -567,6 +567,12 @@ int main(int argc, char**argv)
|
|||
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);
|
||||
|
||||
KGreeter kgreeter;
|
||||
|
|
|
@ -5,5 +5,6 @@
|
|||
#font=
|
||||
#style=
|
||||
#colorscheme=
|
||||
#cursortheme=
|
||||
#background=
|
||||
#rectangle=
|
||||
|
|
Loading…
Add table
Reference in a new issue