diff options
Diffstat (limited to 'buildtools/ada/service.cpp')
-rw-r--r-- | buildtools/ada/service.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/buildtools/ada/service.cpp b/buildtools/ada/service.cpp new file mode 100644 index 00000000..02081a58 --- /dev/null +++ b/buildtools/ada/service.cpp @@ -0,0 +1,75 @@ +/* Copyright (C) 2001-2002 by Bernd Gehrmann + * bernd@kdevelop.org + * Copyright (C) 2003 Oliver Kellogg + * okellogg@users.sourceforge.net + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ +#include <qcombobox.h> +#include <qvaluelist.h> + +#include <kservice.h> +#include <kdebug.h> + +#include "service.h" + + +void ServiceComboBox::insertStringList(QComboBox *combo, const QValueList<KService::Ptr> &list, + QStringList *names, QStringList *execs) +{ + QValueList<KService::Ptr>::ConstIterator it; + for (it = list.begin(); it != list.end(); ++it) { + combo->insertItem((*it)->comment()); + (*names) << (*it)->desktopEntryName(); + (*execs) << (*it)->exec(); + kdDebug() << "insertStringList item " << (*it)->name() << "," << (*it)->exec() << endl; + } +} + +QString ServiceComboBox::currentText(QComboBox *combo, const QStringList &names) +{ + if (combo->currentItem() == -1) + return QString::null; + return names[combo->currentItem()]; +} + +void ServiceComboBox::setCurrentText(QComboBox *combo, const QString &str, const QStringList &names) +{ + QStringList::ConstIterator it; + int i = 0; + for (it = names.begin(); it != names.end(); ++it) { + if (*it == str) { + combo->setCurrentItem(i); + break; + } + ++i; + } +} + +int ServiceComboBox::itemForText(const QString &str, const QStringList &names) +{ + QStringList::ConstIterator it; + int i = 0; + for (it = names.begin(); it != names.end(); ++it) { + if (*it == str) { + return i; + } + ++i; + } + return 0; +} + +QString ServiceComboBox::defaultCompiler() +{ + KTrader::OfferList offers = KTrader::self()->query("KDevelop/CompilerOptions", "[X-KDevelop-Language] == 'Ada'"); + QValueList<KService::Ptr>::ConstIterator it; + for (it = offers.begin(); it != offers.end(); ++it) { + if ((*it)->property("X-KDevelop-Default").toBool()) { + return (*it)->name();; + } + } + return ""; +} |