diff options
Diffstat (limited to 'src/apppropprg.cpp')
-rw-r--r-- | src/apppropprg.cpp | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/src/apppropprg.cpp b/src/apppropprg.cpp new file mode 100644 index 0000000..b806b67 --- /dev/null +++ b/src/apppropprg.cpp @@ -0,0 +1,159 @@ +// +// C++ Implementation: apppropprg +// +// Description: +// +// +// Author: KoolDock team <[email protected]>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include <kicondialog.h> +#include <kfiledialog.h> +#include <kmessagebox.h> +#include <kstandarddirs.h> +#include <klocale.h> + +#include "apppropprg.h" +#include "appProp.h" +#include "kooldock.h" + +appPropPrg::appPropPrg(QWidget *parent, const char *name) +: appProp(parent, name) +{ + +} + + +appPropPrg::~appPropPrg() +{ +} + +void appPropPrg::accept() +{ + QString icon; + QString desktop; + QString path; + QString puser; + + icon=iconbutton->icon(); + desktop=cmdname->text(); + path=cmdpath->text(); + puser=user->text(); + + if(icon.length() == 0) + { + KMessageBox::sorry(0, i18n("You must select an icon!"), i18n("Error"), 1); + return; + } + if(desktop.length() == 0) + { + KMessageBox::sorry(0, i18n("You must enter a name!"), i18n("Error"), 1); + return; + } + if(path.length() == 0) + { + KMessageBox::sorry(0, i18n("You must enter a command or path!"), i18n("Error"), 1); + return; + } + if((cuser->isChecked()==true) && (puser.length()==0)) + { + KMessageBox::sorry(0, i18n("You must provide a username!"), i18n("Error"), 1); + return; + } + + + // Now we modify desktop (lowercase, no spaces) + desktop.remove(" ", TRUE); + desktop=desktop.lower(); + desktop.append(".desktop"); + + //To handle position + QString progPath = locateLocal("data", "kooldock"); + QDir dir(progPath + QString("/menu/")); + QString preffix; + QStringList fileList = dir.entryList("*.desktop"); + + int pos=fileList.count(); + if(pos<10) preffix=QString("0%1_").arg(pos); + if(pos>=10) preffix=QString("%1_").arg(pos); + + desktop.prepend(preffix); + //End handling position + + /* Here we add the .desktop file to the menuPath */ + KoolDock::addFile(desktop, icon, cmdpath->text(), cmdname->text(), true, terminal->isChecked(), tclose->isChecked(), cuser->isChecked(), user->text()); + user->setEnabled(false); + cuser->setChecked(false); + terminal->setChecked(false); + tclose->setChecked(false); + tclose->setEnabled(false); + this->hide(); + emit apply(); +} + +void appPropPrg::reject() +{ + user->setEnabled(false); + cuser->setChecked(false); + terminal->setChecked(false); + tclose->setChecked(false); + tclose->setEnabled(false); + this->hide(); +} + +void appPropPrg::closeEvent( QCloseEvent *e ) +{ + e->ignore(); + reject(); +} + +void appPropPrg::cmdfile_clicked() +{ + QString tmp; + + QString fileToOpen=KFileDialog::getOpenFileName(QDir::currentDirPath(), "*.*", this, i18n("Open File")); + if (!fileToOpen.isEmpty()) + { + cmdpath->setText(fileToOpen); + + //Lets set a default icon based on the program name + tmp=fileToOpen; + int pos=tmp.findRev("/", -1); + if(pos!=-1) + { + tmp.remove(1, pos); + tmp.remove("/", TRUE); + } + iconbutton->setIcon(tmp); + cmdname->setText(tmp); + } +} + +void appPropPrg::cuserchk() +{ + if(cuser->isChecked()==true) + { + user->setEnabled(true); + } + else + { + user->setEnabled(false); + } +} + +void appPropPrg::terminalchk() +{ + if(terminal->isChecked()==true) + { + tclose->setEnabled(true); + } + else + { + tclose->setChecked(false); + tclose->setEnabled(false); + } +} + +#include "apppropprg.moc" |