--- knetstats-1.6.1~/src/src/knetstats.cpp 2006-10-26 04:45:03 +0400 +++ knetstats-1.6.1/src/src/knetstats.cpp 2007-11-30 15:56:05 +0300 @@ -77,7 +77,7 @@ void KNetStats::setupUi() { mContextMenu->insertItem( i18n("&Help"), helpmenu->menu() ); mContextMenu->insertSeparator(); - KAction* quitAction = KStdAction::quit(kapp, SLOT(quit()), mActionCollection); + KAction* quitAction = KStdAction::quit(this, SLOT(slotQuit()), mActionCollection); quitAction->plug(mContextMenu); connect(helpmenu, SIGNAL(showAboutApplication()), this, SLOT(about())); @@ -188,4 +188,21 @@ bool KNetStats::createInterface(const QS return interface->isVisible(); } +void KNetStats::slotQuit() +{ + int autoStart = KMessageBox::questionYesNoCancel( 0L, i18n("Should KNetStats start automatically\nwhen you login?"), i18n("Automatically Start KNetStats?"), i18n("Start"), i18n("Do Not Start") ); + + KConfig *config = KGlobal::config(); + config->setGroup("General"); + if ( autoStart == KMessageBox::Yes ) { + config->writeEntry("AutoStart", true); + } else if ( autoStart == KMessageBox::No) { + config->writeEntry("AutoStart", false); + } else // cancel chosen don't quit + return; + config->sync(); + + kapp->quit(); +} + #include "knetstats.moc" --- knetstats-1.6.1~/src/src/knetstats.h 2006-10-26 04:45:03 +0400 +++ knetstats-1.6.1/src/src/knetstats.h 2007-11-30 15:52:28 +0300 @@ -73,6 +73,8 @@ public slots: * \param count_ptr Interface count, store the number of new visible interfaces found. */ void detectNewInterfaces(int* count_ptr = 0); + /// Quit application + void slotQuit(); private: KPopupMenu* mContextMenu; // help menu usado por todos os tray icons Configure* mConfigure;