2 (c) 2005 Alexandre Oliveira <aleprj@gmail.com>
3 (c) 2003 Frerich Raabe <raabe@kde.org>
5 ***************************************************************************
7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. *
12 ***************************************************************************/
15 /****************************************************************************
16 ** ui.h extension file, included from the uic-generated form implementation.
18 ** If you wish to add, delete or rename functions or slots use
19 ** Qt Designer which will update this file, preserving your code. Create an
20 ** init() function in place of a constructor, and a destroy() function in
21 ** place of a destructor.
22 *****************************************************************************/
24 #include "TagGuesser.h"
30 #include <kapplication.h>
31 #include <klineedit.h>
32 #include <kiconloader.h>
35 void TagGuesserConfigDialog::init()
37 setCaption( i18n( "Guess By Filename Configuration" ) );
38 lvSchemes
->setItemsRenameable( true );
39 lvSchemes
->setSorting( -1 );
40 lvSchemes
->setDefaultRenameAction( Q3ListView::Accept
);
41 bMoveUp
->setIconSet( SmallIconSet( "1uparrow" ) );
42 bMoveDown
->setIconSet( SmallIconSet( "1downarrow" ) );
44 const QStringList schemes
= TagGuesser::schemeStrings();
45 QStringList::ConstIterator it
= schemes
.begin();
46 QStringList::ConstIterator end
= schemes
.end();
47 for ( ; it
!= end
; ++it
) {
48 K3ListViewItem
*item
= new K3ListViewItem( lvSchemes
, *it
);
49 item
->moveItem( lvSchemes
->lastItem() );
52 connect( lvSchemes
, SIGNAL( currentChanged( Q3ListViewItem
* ) ),
53 this, SLOT( slotCurrentChanged( Q3ListViewItem
* ) ) );
54 connect( lvSchemes
, SIGNAL( doubleClicked( Q3ListViewItem
*, const QPoint
&, int ) ),
55 this, SLOT( slotRenameItem( Q3ListViewItem
*, const QPoint
&, int ) ) );
56 connect( bMoveUp
, SIGNAL( clicked() ), this, SLOT( slotMoveUpClicked() ) );
57 connect( bMoveDown
, SIGNAL( clicked() ), this, SLOT( slotMoveDownClicked() ) );
58 connect( bAdd
, SIGNAL( clicked() ), this, SLOT( slotAddClicked() ) );
59 connect( bModify
, SIGNAL( clicked() ), this, SLOT( slotModifyClicked() ) );
60 connect( bRemove
, SIGNAL( clicked() ), this, SLOT( slotRemoveClicked() ) );
61 connect( bOk
, SIGNAL( clicked() ), this, SLOT( accept() ) );
62 connect( bCancel
, SIGNAL( clicked() ), this, SLOT( reject() ) );
64 lvSchemes
->setSelected( lvSchemes
->firstChild(), true );
65 slotCurrentChanged( lvSchemes
->currentItem() );
69 void TagGuesserConfigDialog::slotCurrentChanged(Q3ListViewItem
*item
)
71 bMoveUp
->setEnabled( item
!= 0 && item
->itemAbove() != 0 );
72 bMoveDown
->setEnabled( item
!= 0 && item
->itemBelow() != 0 );
73 bModify
->setEnabled( item
!= 0 );
74 bRemove
->setEnabled( item
!= 0 );
77 void TagGuesserConfigDialog::accept()
79 if(lvSchemes
->renameLineEdit()) {
80 QKeyEvent
returnKeyPress(QEvent::KeyPress
, Qt::Key_Return
, 0, 0);
81 KApplication::sendEvent( lvSchemes
->renameLineEdit(), &returnKeyPress
);
85 for ( Q3ListViewItem
*it
= lvSchemes
->firstChild(); it
; it
= it
->nextSibling() )
86 schemes
+= it
->text(0);
87 TagGuesser::setSchemeStrings( schemes
);
92 void TagGuesserConfigDialog::reject()
98 void TagGuesserConfigDialog::slotRenameItem(Q3ListViewItem
*item
, const QPoint
&, int c
)
100 lvSchemes
->rename(item
, c
);
103 void TagGuesserConfigDialog::slotMoveUpClicked()
105 Q3ListViewItem
*item
= lvSchemes
->currentItem();
106 if( item
->itemAbove() == lvSchemes
->firstChild() )
107 item
->itemAbove()->moveItem(item
);
109 item
->moveItem(item
->itemAbove()->itemAbove());
110 lvSchemes
->ensureItemVisible(item
);
111 slotCurrentChanged(item
);
114 void TagGuesserConfigDialog::slotMoveDownClicked()
116 Q3ListViewItem
*item
= lvSchemes
->currentItem();
117 item
->moveItem( item
->itemBelow() );
118 lvSchemes
->ensureItemVisible(item
);
119 slotCurrentChanged(item
);
122 void TagGuesserConfigDialog::slotAddClicked()
124 K3ListViewItem
*item
= new K3ListViewItem( lvSchemes
);
125 lvSchemes
->rename(item
, 0);
128 void TagGuesserConfigDialog::slotModifyClicked()
130 lvSchemes
->rename(lvSchemes
->currentItem(), 0);
133 void TagGuesserConfigDialog::slotRemoveClicked()
135 delete lvSchemes
->currentItem();