00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
#include <qlistbox.h>
00020
#include <kurlrequester.h>
00021
00022
#include "subclassesdlg.h"
00023
#include "subclassesdlg.moc"
00024 SubclassesDlg::SubclassesDlg(
QString form,
DomUtil::PairList &config,
QString projectDir,
QWidget* parent,
const char* name,
bool modal, WFlags fl)
00025 :
SubclassesDlgBase(parent,name, modal,fl), m_form(form), m_config(config), m_projectDir(projectDir)
00026 {
00027 subclass_url->setEnabled(
false);
00028
00029 DomUtil::PairList::iterator it;
00030
for ( it = config.begin(); it != config.end(); ++it )
00031 {
00032
if ((*it).second == form)
00033 subclasses_box->insertItem(projectDir + (*it).first);
00034 }
00035 }
00036
00037 SubclassesDlg::~SubclassesDlg()
00038 {
00039 }
00040
00041
00042 void SubclassesDlg::accept()
00043 {
00044
QPtrList<DomUtil::Pair> pairsToRemove;
00045
00046 DomUtil::PairList::iterator it;
00047
for ( it =
m_config.begin(); it !=
m_config.end(); ++it )
00048 {
00049
if ((*it).second ==
m_form)
00050 {
00051 pairsToRemove.append(&(*it));
00052 }
00053 }
00054
00055
DomUtil::Pair *pair;
00056
for ( pair = pairsToRemove.first(); pair; pair = pairsToRemove.next() )
00057 {
00058
m_config.remove(*pair);
00059 }
00060
00061
for (
int i = 0; i < (
int)subclasses_box->count(); ++i)
00062 {
00063
m_config <<
DomUtil::Pair(subclasses_box->text(i).remove(0,
m_projectDir.length()),
m_form);
00064 }
00065
00066 SubclassesDlgBase::accept();
00067 }
00068
00069
00070 void SubclassesDlg::newRelation()
00071 {
00072 subclasses_box->setFocus();
00073 subclasses_box->insertItem(
"");
00074 subclasses_box->setCurrentItem(subclasses_box->count()-1);
00075 subclass_url->setEnabled(
true);
00076 subclass_url->
setURL(
"");
00077 subclass_url->setFocus();
00078 }
00079
00080 void SubclassesDlg::removeRelation()
00081 {
00082
if (subclasses_box->currentItem() > -1)
00083 {
00084
QListBoxItem *item = subclasses_box->item(subclasses_box->currentItem());
00085
int itemIdx = subclasses_box->currentItem();
00086
00087
if (item->prev())
00088 {
00089 subclasses_box->setCurrentItem(item->prev());
00090 subclass_url->
setURL(item->prev()->text());
00091 }
00092
else if (item->next())
00093 {
00094 subclasses_box->setCurrentItem(item->next());
00095 subclass_url->
setURL(item->next()->text());
00096 }
00097
else
00098 {
00099 subclass_url->setEnabled(
false);
00100 subclass_url->
setURL(
"");
00101 }
00102 subclasses_box->removeItem(itemIdx);
00103 }
00104 }
00105
00106 void SubclassesDlg::changeCurrentURL(
const QString &str)
00107 {
00108
if ( subclasses_box->currentItem() > -1 )
00109 {
00110 subclasses_box->changeItem(str, subclasses_box->currentItem());
00111 }
00112 }
00113
00114 void SubclassesDlg::currentRelationChanged(
QListBoxItem * item )
00115 {
00116
if (item)
00117 {
00118 subclass_url->setEnabled(
true);
00119 subclass_url->
setURL(item->text());
00120 }
00121 }
00122