You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
3.3 KiB
152 lines
3.3 KiB
//
|
|
// C++ Implementation: apppropprg
|
|
//
|
|
// Description:
|
|
//
|
|
//
|
|
// Author: KoolDock team <radix@kde.cl>, (C) 2004
|
|
//
|
|
// Copyright: See COPYING file that comes with this distribution
|
|
//
|
|
//
|
|
|
|
#include <kicondialog.h>
|
|
#include <tdefiledialog.h>
|
|
#include <tdemessagebox.h>
|
|
#include <kstandarddirs.h>
|
|
#include <tdelocale.h>
|
|
|
|
#include "apppropprg.h"
|
|
#include "appProp.h"
|
|
#include "kooldock.h"
|
|
|
|
appPropPrg::appPropPrg(TQWidget *parent,
|
|
const char* name):
|
|
appProp(parent, name)
|
|
{
|
|
}
|
|
|
|
appPropPrg::~appPropPrg()
|
|
{
|
|
}
|
|
|
|
void appPropPrg::accept()
|
|
{
|
|
TQString icon;
|
|
TQString desktop;
|
|
TQString path;
|
|
TQString 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;
|
|
}
|
|
|
|
// Modify desktop (lowercase, no spaces)
|
|
desktop.remove(" ", true);
|
|
desktop = desktop.lower();
|
|
desktop.append(".desktop");
|
|
|
|
// Handle position
|
|
TQString progPath = locateLocal("data", "kooldock");
|
|
TQDir dir(progPath + TQString("/menu/"));
|
|
TQString preffix;
|
|
TQStringList fileList = dir.entryList("*.desktop");
|
|
|
|
int pos = fileList.count();
|
|
if (pos < 10) {
|
|
preffix = TQString("0%1_").arg(pos);
|
|
}
|
|
if (pos >= 10) {
|
|
preffix = TQString("%1_").arg(pos);
|
|
}
|
|
|
|
desktop.prepend(preffix);
|
|
// End handling position
|
|
|
|
// 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(TQCloseEvent* e)
|
|
{
|
|
e->ignore();
|
|
reject();
|
|
}
|
|
|
|
void appPropPrg::cmdfile_clicked()
|
|
{
|
|
TQString fileToOpen = KFileDialog::getOpenFileName(TQDir::currentDirPath(), "*.*", this, i18n("Open File"));
|
|
if (!fileToOpen.isEmpty()) {
|
|
cmdpath->setText(fileToOpen);
|
|
// Set a default icon based on the program name
|
|
TQString 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"
|