diff options
Diffstat (limited to 'tdeui/tests/kcomboboxtest.cpp')
-rw-r--r-- | tdeui/tests/kcomboboxtest.cpp | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/tdeui/tests/kcomboboxtest.cpp b/tdeui/tests/kcomboboxtest.cpp new file mode 100644 index 000000000..e8fd35f7e --- /dev/null +++ b/tdeui/tests/kcomboboxtest.cpp @@ -0,0 +1,227 @@ +#define protected public // for delegate() +#include <kcombobox.h> +#undef protected + +#include "kcomboboxtest.h" + +#include <assert.h> + +#include <kapplication.h> +#include <kdebug.h> +#include <kdialog.h> +#include <klocale.h> +#include <kiconloader.h> +#include <ksimpleconfig.h> + +#include <tqpushbutton.h> +#include <tqlayout.h> +#include <tqpixmap.h> +#include <tqlabel.h> +#include <tqhbox.h> +#include <tqtimer.h> + + +KComboBoxTest::KComboBoxTest(TQWidget* widget, const char* name ) + :TQWidget(widget, name) +{ + TQVBoxLayout *vbox = new TQVBoxLayout (this, KDialog::marginHint(), KDialog::spacingHint()); + + // Test for KCombo's KLineEdit destruction + KComboBox *testCombo = new KComboBox( true, this ); // rw, with KLineEdit + testCombo->setEditable( false ); // destroys our KLineEdit + assert( testCombo->delegate() == 0L ); + delete testCombo; // not needed anymore + + // Qt combobox + TQHBox* hbox = new TQHBox(this); + hbox->setSpacing (KDialog::spacingHint()); + TQLabel* lbl = new TQLabel("&QCombobox:", hbox); + lbl->tqsetSizePolicy (TQSizePolicy::Maximum, TQSizePolicy::Preferred); + + m_qc = new TQComboBox(hbox, "QtReadOnlyCombo" ); + lbl->setBuddy (m_qc); + TQObject::connect (m_qc, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int))); + TQObject::connect (m_qc, TQT_SIGNAL(activated(const TQString&)), TQT_SLOT (slotActivated(const TQString&))); + vbox->addWidget (hbox); + + // Read-only combobox + hbox = new TQHBox(this); + hbox->setSpacing (KDialog::spacingHint()); + lbl = new TQLabel("&Read-Only Combo:", hbox); + lbl->tqsetSizePolicy (TQSizePolicy::Maximum, TQSizePolicy::Preferred); + + m_ro = new KComboBox(hbox, "ReadOnlyCombo" ); + lbl->setBuddy (m_ro); + m_ro->setCompletionMode( KGlobalSettings::CompletionAuto ); + TQObject::connect (m_ro, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int))); + TQObject::connect (m_ro, TQT_SIGNAL(activated(const TQString&)), TQT_SLOT (slotActivated(const TQString&))); + vbox->addWidget (hbox); + + // Read-write combobox + hbox = new TQHBox(this); + hbox->setSpacing (KDialog::spacingHint()); + lbl = new TQLabel("&Editable Combo:", hbox); + lbl->tqsetSizePolicy (TQSizePolicy::Maximum, TQSizePolicy::Preferred); + + m_rw = new KComboBox( true, hbox, "ReadWriteCombo" ); + lbl->setBuddy (m_rw); + m_rw->setDuplicatesEnabled( true ); + m_rw->setInsertionPolicy( TQComboBox::NoInsertion ); + m_rw->setTrapReturnKey( true ); + TQObject::connect (m_rw, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int))); + TQObject::connect (m_rw, TQT_SIGNAL(activated(const TQString&)), TQT_SLOT(slotActivated(const TQString&))); + TQObject::connect (m_rw, TQT_SIGNAL(returnPressed()), TQT_SLOT(slotReturnPressed())); + TQObject::connect (m_rw, TQT_SIGNAL(returnPressed(const TQString&)), TQT_SLOT(slotReturnPressed(const TQString&))); + vbox->addWidget (hbox); + + // History combobox... + hbox = new TQHBox(this); + hbox->setSpacing (KDialog::spacingHint()); + lbl = new TQLabel("&History Combo:", hbox); + lbl->tqsetSizePolicy (TQSizePolicy::Maximum, TQSizePolicy::Preferred); + + m_hc = new KHistoryCombo( true, hbox, "HistoryCombo" ); + lbl->setBuddy (m_hc); + m_hc->setDuplicatesEnabled( true ); + m_hc->setInsertionPolicy( TQComboBox::NoInsertion ); + TQObject::connect (m_hc, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int))); + TQObject::connect (m_hc, TQT_SIGNAL(activated(const TQString&)), TQT_SLOT(slotActivated(const TQString&))); + TQObject::connect (m_hc, TQT_SIGNAL(returnPressed()), TQT_SLOT(slotReturnPressed())); + vbox->addWidget (hbox); + m_hc->setTrapReturnKey(true); + + // Read-write combobox that is a replica of code in konqueror... + hbox = new TQHBox(this); + hbox->setSpacing (KDialog::spacingHint()); + lbl = new TQLabel( "&Konq's Combo:", hbox); + lbl->tqsetSizePolicy (TQSizePolicy::Maximum, TQSizePolicy::Preferred); + + m_konqc = new KComboBox( true, hbox, "KonqyCombo" ); + lbl->setBuddy (m_konqc); + m_konqc->setMaxCount( 10 ); + TQObject::connect (m_konqc, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int))); + TQObject::connect (m_konqc, TQT_SIGNAL(activated(const TQString&)), TQT_SLOT (slotActivated(const TQString&))); + TQObject::connect (m_konqc, TQT_SIGNAL(returnPressed()), TQT_SLOT(slotReturnPressed())); + vbox->addWidget (hbox); + + // Create an exit button + hbox = new TQHBox (this); + m_btnExit = new TQPushButton( "E&xit", hbox ); + TQObject::connect( m_btnExit, TQT_SIGNAL(clicked()), TQT_SLOT(quitApp()) ); + + // Create a disable button... + m_btnEnable = new TQPushButton( "Disa&ble", hbox ); + TQObject::connect (m_btnEnable, TQT_SIGNAL(clicked()), TQT_SLOT(slotDisable())); + + vbox->addWidget (hbox); + + // Popuplate the select-only list box + TQStringList list; + list << "Stone" << "Tree" << "Peables" << "Ocean" << "Sand" << "Chips" + << "Computer" << "Mankind"; + list.sort(); + + // Setup the qcombobox + m_qc->insertStringList (list); + + // Setup read-only combo + m_ro->insertStringList( list ); + m_ro->completionObject()->setItems( list ); + + // Setup read-write combo + m_rw->insertStringList( list ); + m_rw->completionObject()->setItems( list ); + + // Setup read-write combo + m_hc->insertStringList( list ); + m_hc->completionObject()->setItems( list ); + + // Setup konq's combobox + KSimpleConfig historyConfig( "konq_history" ); + historyConfig.setGroup( "Location Bar" ); + KCompletion * s_pCompletion = new KCompletion; + s_pCompletion->setOrder( KCompletion::Weighted ); + s_pCompletion->setItems( historyConfig.readListEntry( "ComboContents" ) ); + s_pCompletion->setCompletionMode( KGlobalSettings::completionMode() ); + m_konqc->setCompletionObject( s_pCompletion ); + + TQPixmap pix = SmallIcon("www"); + m_konqc->insertItem( pix, "http://www.kde.org" ); + m_konqc->setCurrentItem( m_konqc->count()-1 ); + + m_timer = new TQTimer (this); + connect (m_timer, TQT_SIGNAL (timeout()), TQT_SLOT (slotTimeout())); +} + +KComboBoxTest::~KComboBoxTest() +{ + if (m_timer) + { + delete m_timer; + m_timer = 0; + } +} + +void KComboBoxTest::slotDisable () +{ + if (m_timer->isActive()) + return; + + m_btnEnable->setEnabled (!m_btnEnable->isEnabled()); + + m_timer->start (5000, true); +} + +void KComboBoxTest::slotTimeout () +{ + bool enabled = m_ro->isEnabled(); + + if (enabled) + m_btnEnable->setText ("Ena&ble"); + else + m_btnEnable->setText ("Disa&ble"); + + m_qc->setEnabled (!enabled); + m_ro->setEnabled (!enabled); + m_rw->setEnabled (!enabled); + m_hc->setEnabled (!enabled); + m_konqc->setEnabled (!enabled); + + m_btnEnable->setEnabled (!m_btnEnable->isEnabled()); +} + +void KComboBoxTest::slotActivated( int index ) +{ + kdDebug() << "Activated Combo: " << sender()->name() << ", index:" << index << endl; +} + +void KComboBoxTest::slotActivated (const TQString& item) +{ + kdDebug() << "Activated Combo: " << sender()->name() << ", item: " << item << endl; +} + +void KComboBoxTest::slotReturnPressed () +{ + kdDebug() << "Return Pressed: " << sender()->name() << endl; +} + +void KComboBoxTest::slotReturnPressed(const TQString& item) +{ + kdDebug() << "Return Pressed, value = " << item << endl; +} + +void KComboBoxTest::quitApp() +{ + kapp->closeAllWindows(); +} + +int main ( int argc, char **argv) +{ + KApplication a(argc, argv, "kcomboboxtest"); + KComboBoxTest* t= new KComboBoxTest; + a.setMainWidget (t); + t->show (); + return a.exec(); +} + +#include "kcomboboxtest.moc" |