/* (c) 2005 Alexandre Oliveira (c) 2003 Frerich Raabe *************************************************************************** * * * 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. * * * ***************************************************************************/ /**************************************************************************** ** ui.h extension file, included from the uic-generated form implementation. ** ** If you wish to add, delete or rename functions or slots use ** TQt Designer which will update this file, preserving your code. Create an ** init() function in place of a constructor, and a destroy() function in ** place of a destructor. *****************************************************************************/ #include "tagguesser.h" #include #include #include #include void TagGuesserConfigDialog::init() { setCaption( i18n( "Guess By Filename Configuration" ) ); lvSchemes->setItemsRenameable( true ); lvSchemes->setSorting( -1 ); lvSchemes->setDefaultRenameAction( TQListView::Accept ); bMoveUp->setIconSet( SmallIconSet( "1uparrow" ) ); bMoveDown->setIconSet( SmallIconSet( "1downarrow" ) ); const TQStringList schemes = TagGuesser::schemeStrings(); TQStringList::ConstIterator it = schemes.begin(); TQStringList::ConstIterator end = schemes.end(); for ( ; it != end; ++it ) { KListViewItem *item = new KListViewItem( lvSchemes, *it ); item->moveItem( lvSchemes->lastItem() ); } connect( lvSchemes, TQT_SIGNAL( currentChanged( TQListViewItem * ) ), this, TQT_SLOT( slotCurrentChanged( TQListViewItem * ) ) ); connect( lvSchemes, TQT_SIGNAL( doubleClicked( TQListViewItem *, const TQPoint &, int ) ), this, TQT_SLOT( slotRenameItem( TQListViewItem *, const TQPoint &, int ) ) ); connect( bMoveUp, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotMoveUpClicked() ) ); connect( bMoveDown, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotMoveDownClicked() ) ); connect( bAdd, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotAddClicked() ) ); connect( bModify, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotModifyClicked() ) ); connect( bRemove, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotRemoveClicked() ) ); connect( bOk, TQT_SIGNAL( clicked() ), this, TQT_SLOT( accept() ) ); connect( bCancel, TQT_SIGNAL( clicked() ), this, TQT_SLOT( reject() ) ); lvSchemes->setSelected( lvSchemes->firstChild(), true ); slotCurrentChanged( lvSchemes->currentItem() ); resize( 400, 300 ); } void TagGuesserConfigDialog::slotCurrentChanged(TQListViewItem *item) { bMoveUp->setEnabled( item != 0 && item->itemAbove() != 0 ); bMoveDown->setEnabled( item != 0 && item->itemBelow() != 0 ); bModify->setEnabled( item != 0 ); bRemove->setEnabled( item != 0 ); } void TagGuesserConfigDialog::accept() { if(lvSchemes->renameLineEdit()) { TQKeyEvent returnKeyPress(TQEvent::KeyPress, Key_Return, 0, 0); KApplication::sendEvent( lvSchemes->renameLineEdit(), &returnKeyPress ); } TQStringList schemes; for ( TQListViewItem *it = lvSchemes->firstChild(); it; it = it->nextSibling() ) schemes += it->text(0); TagGuesser::setSchemeStrings( schemes ); KDialog::accept(); } void TagGuesserConfigDialog::reject() { KDialog::reject(); } void TagGuesserConfigDialog::slotRenameItem(TQListViewItem *item, const TQPoint &, int c) { lvSchemes->rename(item, c); } void TagGuesserConfigDialog::slotMoveUpClicked() { TQListViewItem *item = lvSchemes->currentItem(); if( item->itemAbove() == lvSchemes->firstChild() ) item->itemAbove()->moveItem(item); else item->moveItem(item->itemAbove()->itemAbove()); lvSchemes->ensureItemVisible(item); slotCurrentChanged(item); } void TagGuesserConfigDialog::slotMoveDownClicked() { TQListViewItem *item = lvSchemes->currentItem(); item->moveItem( item->itemBelow() ); lvSchemes->ensureItemVisible(item); slotCurrentChanged(item); } void TagGuesserConfigDialog::slotAddClicked() { KListViewItem *item = new KListViewItem( lvSchemes ); lvSchemes->rename(item, 0); } void TagGuesserConfigDialog::slotModifyClicked() { lvSchemes->rename(lvSchemes->currentItem(), 0); } void TagGuesserConfigDialog::slotRemoveClicked() { delete lvSchemes->currentItem(); }