Source Code (Use browser search to find items of interest.)
Class Index
knu'myListManager (./kdenetwork/knu/mylistmanager.h:47)
class myListManager: public QWidget
{
Q_OBJECT
public:
enum Features {
NoFeature = 0,
UpDownButtons = 0x0001, /* Up button and Down Button */
ShortLabels = 0x0002 /* Show +/- insteed of add/remove */
};
/**
* Constructor with a title in a groupBox.
*
* Some day, I will add a functionality enum that will add/remove Up
* and Down button.
*
* @param title Widget title
* @param parent Parent widget
* @param name Widget's name (internal only)
* @param f Feature list
*/
myListManager(QString title,
QWidget *parent = 0,
const char *name = 0, Features f = NoFeature);
/**
* Constructor.
*
* Some day, I will add a functionality enum that will add/remove Up
* and Down button.
*
* @param parent Parent widget
* @param name Widget's name (internal only)
* @param f Feature list
*/
myListManager(QWidget *parent = 0,
const char *name = 0, Features f = NoFeature);
/**
* Destructor
*/
~myListManager();
/**
* Add the given string list to the listbox
*
* @param list the string list to add
*/
void setStringList(const QStringList &);
/**
* Add the given string list to the listbox. The list will
* be keeped in sync with the listbox.
*
* @param list the string list to add
*/
void setStringList(QStringList *);
/**
* Returns the resulting list
*
* @return a QStringList
*/
QStringList stringList() const;
/**
* Clear all.
*/
void clear();
/**
* Returns a pointer to the list box used.
*
* @return a QListBox pointer
*/
QListBox *listBox() { return myListBox; };
/**
* Returns a pointer to the "add" button
*
* @return a QPushButton pointer
*/
QPushButton *addButton() { return myAddButton; };
/**
* Returns a pointer to the "remove" button
*
* @return a QPushButton pointer
*/
QPushButton *removeButton() { return myRemoveButton; };
/**
* Returns a pointer to the "up" button
*
* @return a QPushButton pointer
*/
QPushButton *upButton() { return myUpButton; };
/**
* Returns a pointer to the "down" button
*
* @return a QPushButton pointer
*/
QPushButton *downButton() { return myDownButton; };
public slots:
/**
* Enables widget if enable is TRUE, otherwise disables widget.
*
* @param enable enable or disable
*/
virtual void setEnabled(bool enable);
protected slots:
/**
* Add button pressed
*/
void addIt();
/**
* Remove button pressed
*/
void removeIt();
/**
* Up button pressed
*/
void moveUp();
/**
* Down button pressed
*/
void moveDown();
/**
* Called when an item is hilited
*/
void itemHilited();
/**
* Called when the lineedit is modified
*/
void textChanged(const QString &);
protected:
// Methods
void manageButtons();
void realConstructor(class QWidget *, bool, Features);
// Widgets
QGroupBox *myGroupBox;
QLineEdit *myLineEdit;
QListBox *myListBox;
QPushButton *myAddButton;
QPushButton *myRemoveButton;
QPushButton *myUpButton;
QPushButton *myDownButton;
// Data
Features features;
QStringList *myStringList;
};
knu'myListManager::myListManager() (./kdenetwork/knu/mylistmanager.cpp:38)
myListManager::myListManager(QString title,
QWidget *parent,
const char *name, Features f)
: QWidget(parent, name)
{
debug("myListManager::myListManager(\"%s\")", (const char *)title);
QBoxLayout *topLay = new QVBoxLayout(this, 0, 0, "myListManager::topLay");
myGroupBox = new QGroupBox(title, this, name);
realConstructor(myGroupBox, true, f);
topLay->addWidget(myGroupBox);
topLay->activate();
}
/*
* Constructor
*/
knu'myListManager::myListManager() (./kdenetwork/knu/mylistmanager.cpp:57)
myListManager::myListManager(QWidget *parent,
const char *name, Features f)
: QWidget(parent, name)
{
debug("myListManager::myListManager()");
realConstructor(this, false, f);
}
/*
* Real constructor
*/
void
knu'myListManager::realConstructor() (./kdenetwork/knu/mylistmanager.cpp:70)
myListManager::realConstructor(QWidget *topWidget,
bool inGroupBox, Features f)
{
QGridLayout *lay;
debug("myListManager::realConstructor(QWidget=\"%s\")",
topWidget->name());
features = f;
if (inGroupBox) {
lay = new QGridLayout(topWidget, 5, 2, WIDGET_INTERVAL, -1,
"myListManager::lay");
lay->addRowSpacing(0, WIDGET_INTERVAL/2);
} else {
lay = new QGridLayout(topWidget, 5, 2, 0, WIDGET_INTERVAL,
"myListManager::lay");
}
lay->setRowStretch(0, 0);
lay->setRowStretch(1, 0);
lay->setRowStretch(2, 10);
lay->setRowStretch(3, 0);
lay->setRowStretch(4, 0);
lay->setColStretch(0, 10);
lay->setColStretch(1, 0);
myLineEdit = new QLineEdit(topWidget, "lineedit");
myLineEdit->adjustSize();
myLineEdit->setMinimumSize(myLineEdit->size());
lay->addWidget(myLineEdit, 1, 0);
connect(myLineEdit, SIGNAL(textChanged(const QString &)),
this, SLOT(textChanged(const QString &)));
connect(myLineEdit, SIGNAL(returnPressed()), this, SLOT(addIt()));
myAddButton = new QPushButton(topWidget, "add_button");
if (features & ShortLabels) {
myAddButton->setText(i18n("+"));
} else {
myAddButton->setText(i18n("Add"));
}
myAddButton->adjustSize();
myAddButton->setFixedSize(myAddButton->sizeHint());
myAddButton->setEnabled(false);
myAddButton->setFocusPolicy(QWidget::TabFocus);
lay->addWidget(myAddButton, 1, 1);
connect(myAddButton, SIGNAL(clicked()), this, SLOT(addIt()));
myRemoveButton = new QPushButton(topWidget, "remove_button");
if (features & ShortLabels) {
myRemoveButton->setText(i18n("-"));
} else {
myRemoveButton->setText(i18n("Remove"));
}
myRemoveButton->adjustSize();
myRemoveButton->setFixedSize(myRemoveButton->sizeHint());
myRemoveButton->setEnabled(false);
myRemoveButton->setFocusPolicy(QWidget::TabFocus);
lay->addWidget(myRemoveButton, 2, 1, AlignTop);
connect(myRemoveButton, SIGNAL(clicked()), this, SLOT(removeIt()));
if (features & UpDownButtons) {
myUpButton = new QPushButton(i18n("Up"), topWidget, "up_button");
myUpButton->adjustSize();
myUpButton->setFixedSize(myUpButton->sizeHint());
myUpButton->setEnabled(false);
myUpButton->setFocusPolicy(QWidget::TabFocus);
lay->addWidget(myUpButton, 3, 1, AlignTop);
connect(myUpButton, SIGNAL(clicked()), this, SLOT(moveUp()));
myDownButton = new QPushButton(i18n("Down"), topWidget, "down_button");
myDownButton->adjustSize();
myDownButton->setFixedSize(myDownButton->sizeHint());
myDownButton->setEnabled(false);
myDownButton->setFocusPolicy(QWidget::TabFocus);
lay->addWidget(myDownButton, 4, 1, AlignTop);
connect(myDownButton, SIGNAL(clicked()), this, SLOT(moveDown()));
} else {
myUpButton = 0;
myDownButton = 0;
}
myListBox = new QListBox(topWidget);
myListBox->adjustSize();
myListBox->setMinimumSize(myListBox->size());
myListBox->setFocusPolicy(QWidget::TabFocus);
lay->addMultiCellWidget(myListBox, 2, 4, 0, 0);
//lay->addWidget(myListBox, 2, 0);
myListBox->setMultiSelection(FALSE);
myListBox->clearSelection();
connect(myListBox, SIGNAL(highlighted(int)),
this, SLOT(itemHilited()));
lay->activate();
setFocusPolicy(QWidget::StrongFocus);
setFocusProxy(myLineEdit);
myStringList = 0;
}
/*
* Destructor
*/
knu'myListManager::~myListManager() (./kdenetwork/knu/mylistmanager.cpp:178)
myListManager::~myListManager()
{
debug("myListManager::~myListManager(%s)", name());
}
/*
* setEnabled()
*/
void
knu'myListManager::setEnabled() (./kdenetwork/knu/mylistmanager.cpp:188)
myListManager::setEnabled(bool a) {
//debug("myListManager::setEnabled(%s)", (a ? "true": "false"));
if (myGroupBox) {
myGroupBox->setEnabled(a);
}
myLineEdit->setEnabled(a);
myListBox->setEnabled(a);
/* If we have to enable, we make a little more cleaning */
if (a) {
myLineEdit->setText("");
myListBox->clearSelection();
}
manageButtons();
}
/*
* setStringList
*/
void
knu'myListManager::setStringList() (./kdenetwork/knu/mylistmanager.cpp:211)
myListManager::setStringList(const QStringList &newList)
{
// debug("myListManager::setStringList(const QStringList &) [%s]", name());
myListBox->clear();
myLineEdit->setText("");
for (QStringList::ConstIterator it = newList.begin();
it != newList.end(); ++it) {
myListBox->insertItem((*it).stripWhiteSpace());
}
myStringList = 0;
}
/*
* setStringList
*/
void
knu'myListManager::setStringList() (./kdenetwork/knu/mylistmanager.cpp:229)
myListManager::setStringList(QStringList *newList)
{
debug("myListManager::setStringList(QStringList *) [%s]", name());
myListBox->clear();
myLineEdit->setText("");
for (QStringList::ConstIterator it = newList->begin();
it != newList->end(); ++it) {
myListBox->insertItem((*it).stripWhiteSpace());
}
myStringList = newList;
}
/*
* stringList
*/
QStringList
knu'myListManager::stringList() (./kdenetwork/knu/mylistmanager.cpp:247)
myListManager::stringList() const
{
QStringList sl;
uint i;
//debug("myListManager::stringList()");
if (myStringList) {
sl = *myStringList;
} else {
// Take the value in the listbox
for (i=0; i < myListBox->count(); i++) {
sl.append(myListBox->text(i));
}
}
return sl;
}
/*
* addIt() - SLOT
*/
void
knu'myListManager::addIt() (./kdenetwork/knu/mylistmanager.cpp:268)
myListManager::addIt()
{
int c = myListBox->currentItem();
QString s = myLineEdit->text();
if (! s.isEmpty()) {
myListBox->insertItem(s, c);
// myListBox->clearSelection();
myLineEdit->setText("");
}
if (myStringList) {
QStringList::Iterator it;
//debug("adding \"%s\" at position %d in myStringList [%s]", (const char *)s, c, name());
if (c>=0) {
it = myStringList->at(c);
myStringList->insert(it, s);
} else {
myStringList->append(s);
}
}
manageButtons();
}
/*
* removeIt() - SLOT
*/
void
knu'myListManager::removeIt() (./kdenetwork/knu/mylistmanager.cpp:296)
myListManager::removeIt()
{
int c = myListBox->currentItem();
if (c >= 0) {
myListBox->removeItem(c);
myListBox->clearSelection();
myListBox->setCurrentItem(c);
if (myStringList) {
//debug("removing position %d in myStringList [%s]", c, name());
QStringList::Iterator it = myStringList->at(c);
myStringList->remove(it);
}
}
manageButtons();
}
/*
* itemHilited() - SLOT
*/
void
knu'myListManager::itemHilited() (./kdenetwork/knu/mylistmanager.cpp:317)
myListManager::itemHilited()
{
manageButtons();
}
/*
* textChanged() - SLOT
*/
void
knu'myListManager::textChanged() (./kdenetwork/knu/mylistmanager.cpp:326)
myListManager::textChanged(const QString &s)
{
if (s.isEmpty()) {
myAddButton->setEnabled(false);
} else {
myAddButton->setEnabled(true);
}
}
/*
* moveUp() - SLOT
*/
void
knu'myListManager::moveUp() (./kdenetwork/knu/mylistmanager.cpp:340)
myListManager::moveUp()
{
QString string;
int c = myListBox->currentItem();
if (c >= 1) {
string = myListBox->text(c);
myListBox->setUpdatesEnabled(false);
myListBox->removeItem(c);
myListBox->insertItem(string, c-1);
myListBox->setCurrentItem(c-1);
myListBox->setUpdatesEnabled(true);
#warning "gestion de myStringList dans moveUp"
}
}
/*
* moveDown() - SLOT
*/
void
knu'myListManager::moveDown() (./kdenetwork/knu/mylistmanager.cpp:360)
myListManager::moveDown()
{
QString string;
int c = myListBox->currentItem();
int max = myListBox->count();
if (c < max-1) {
string = myListBox->text(c);
myListBox->setUpdatesEnabled(false);
myListBox->removeItem(c);
myListBox->insertItem(string, c+1);
myListBox->setCurrentItem(c+1);
myListBox->setUpdatesEnabled(true);
#warning "gestion de myStringList dans moveDown"
}
}
/*
* manageButtons()
* Set enable for buttons if we have to
*/
void
knu'myListManager::manageButtons() (./kdenetwork/knu/mylistmanager.cpp:382)
myListManager::manageButtons()
{
int c;
c = myListBox->currentItem();
// Remove button
if (c >= 0) {
myRemoveButton->setEnabled(true);
} else {
myRemoveButton->setEnabled(false);
}
// Add button
if ((myLineEdit->text()).isEmpty()) {
myAddButton->setEnabled(false);
} else {
myAddButton->setEnabled(true);
}
if (myUpButton) {
// Up button
if (c >= 1) {
myUpButton->setEnabled(true);
} else {
myUpButton->setEnabled(false);
}
}
if (myDownButton) {
// Down button
if (c < (int)myListBox->count()-1) {
myDownButton->setEnabled(true);
} else {
myDownButton->setEnabled(false);
}
}
}