/*! @file @id $Id$ */ // 1 2 3 4 5 6 7 8 // 45678901234567890123456789012345678901234567890123456789012345678901234567890 #ifndef __EDITBOOKMARKS_HXX__ #define __EDITBOOKMARKS_HXX__ #include #include #include #include #include namespace qbrowserlib { class EditBookmarks: public QDialog, protected Ui::EditBookmarks { Q_OBJECT; Q_SIGNALS: void startEdit(bool=true); void endEdit(bool=true); public: EditBookmarks(QComboBox* url, QWidget* p=0): QDialog(p), _url(url) { setupUi(this); reject(); } virtual void accept() { QStringList urls; for (int i(0); i<_bookmarks->count(); ++i) urls<<_bookmarks->item(i)->text(); QString current(_url->currentText()); _url->clear(); _url->addItems(urls); _url->setEditText(current); QDialog::accept(); } virtual void reject() { reset(); QDialog::reject(); } protected Q_SLOTS: void on__remove_clicked(bool) { QList items(_bookmarks->selectedItems()); qDebug()<<"Delete "<::iterator it(items.begin()); it!=items.end(); ++it) { qDebug()<<"Delete Item: "<<(*it)->text(); delete _bookmarks->takeItem(_bookmarks->row(*it)); } } void on__add_clicked(bool) { if (_url->currentText().isEmpty()) return; _bookmarks->addItem(_url->currentText()); } protected: virtual void hideEvent(QHideEvent *event) { QDialog::hideEvent(event); endEdit(); } virtual void showEvent(QShowEvent *event) { startEdit(); reset(); QDialog::showEvent(event); } void reset() { QStringList urls; for (int i(0); i<_url->count(); ++i) urls<<_url->itemText(i); _bookmarks->clear(); _bookmarks->addItems(urls); } private: QComboBox* _url; }; } #endif