summaryrefslogtreecommitdiffstats
path: root/kcontrol/randr
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/randr')
-rw-r--r--kcontrol/randr/Makefile.am3
-rw-r--r--kcontrol/randr/krandrtray.cpp19
-rw-r--r--kcontrol/randr/krandrtray.h4
3 files changed, 25 insertions, 1 deletions
diff --git a/kcontrol/randr/Makefile.am b/kcontrol/randr/Makefile.am
index df085c858..cfb533eb7 100644
--- a/kcontrol/randr/Makefile.am
+++ b/kcontrol/randr/Makefile.am
@@ -17,6 +17,9 @@ xdg_apps_DATA = krandrtray.desktop
krandr_data_DATA = randr.desktop
krandr_datadir = $(kde_appsdir)/.hidden
+# Autostart
+autostartdir = $(prefix)/share/autostart
+autostart_DATA = krandrtray-autostart.desktop
#install-data-local: uninstall.desktop
# $(mkinstalldirs) $(DESTDIR)$(kde_appsdir)/Settings/Desktop
diff --git a/kcontrol/randr/krandrtray.cpp b/kcontrol/randr/krandrtray.cpp
index 8b230ba74..bee4a5e10 100644
--- a/kcontrol/randr/krandrtray.cpp
+++ b/kcontrol/randr/krandrtray.cpp
@@ -53,7 +53,7 @@ KRandRSystemTray::KRandRSystemTray(QWidget* parent, const char *name)
{
setPixmap(KSystemTray::loadSizedIcon("randr", width()));
setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
- connect(this, SIGNAL(quitSelected()), kapp, SLOT(quit()));
+ connect(this, SIGNAL(quitSelected()), this, SLOT(_quit()));
QToolTip::add(this, i18n("Screen resize & rotate"));
my_parent = parent;
@@ -88,6 +88,23 @@ KRandRSystemTray::KRandRSystemTray(QWidget* parent, const char *name)
}
}
+/*!
+ * \b SLOT which called if krandrtray is exited by the user. In this case the user
+ * is asked through a yes/no box if "KRandRTray should start automatically on log in" and the
+ * result is written to the KDE configfile.
+ */
+void KRandRSystemTray::_quit (){
+ r_config = new KSimpleConfig("krandrtrayrc");
+
+ QString tmp1 = i18n ("Start KRandRTray automatically when you log in?");
+ int tmp2 = KMessageBox::questionYesNo ( 0, tmp1, i18n("Question"), i18n("Start Automatically"), i18n("Do Not Start"));
+ r_config->setGroup("General");
+ r_config->writeEntry ("Autostart", tmp2 == KMessageBox::Yes);
+ r_config->sync ();
+
+ exit(0);
+}
+
void KRandRSystemTray::resizeEvent ( QResizeEvent * )
{
// Honor Free Desktop specifications that allow for arbitrary system tray icon sizes
diff --git a/kcontrol/randr/krandrtray.h b/kcontrol/randr/krandrtray.h
index 145fb89b0..640a38697 100644
--- a/kcontrol/randr/krandrtray.h
+++ b/kcontrol/randr/krandrtray.h
@@ -80,7 +80,11 @@ private:
int last_known_y;
KPopupMenu* m_menu;
+ KSimpleConfig *r_config;
KSimpleConfig *t_config;
+
+private slots:
+ void _quit();
};
#endif