1 /****************************************************************************
5 Copyright (C) 1999-2002 Lubos Lunak <l.lunak@kde.org>
7 Distributed under the terms of the GNU General Public License version 2.
9 ****************************************************************************/
11 #define _GESTURE_TRIGGERS_TAB_CPP_
15 #include "gesture_triggers_tab.h"
17 #include <QPushButton>
22 #include <action_data.h>
24 #include "kcmkhotkeys.h"
25 #include "gesturedrawer.h"
26 #include "gesturerecordpage.h"
31 Gesture_triggers_tab::Gesture_triggers_tab( QWidget
* parent_P
, const char* name_P
)
32 : Gesture_triggers_tab_ui( parent_P
)
34 setObjectName(name_P
);
36 connect(gesture_edit_button1
,SIGNAL(clicked()),this,SLOT(edit_gesture_pressed1()));
37 connect(gesture_edit_button2
,SIGNAL(clicked()),this,SLOT(edit_gesture_pressed2()));
38 connect(gesture_edit_button3
,SIGNAL(clicked()),this,SLOT(edit_gesture_pressed3()));
40 // KHotKeys::Module::changed()
41 connect( gesture_edit_button1
, SIGNAL( clicked()),
42 module
, SLOT( changed()));
43 connect( gesture_edit_button2
, SIGNAL( clicked()),
44 module
, SLOT( changed()));
45 connect( gesture_edit_button3
, SIGNAL( clicked()),
46 module
, SLOT( changed()));
49 void Gesture_triggers_tab::clear_data()
51 gesture1
= gesture2
= gesture3
= QString();
52 gesture_lineedit1
->clear();
53 gesture_lineedit2
->clear();
54 gesture_lineedit3
->clear();
55 gesture_drawer1
->setData( QString() );
56 gesture_drawer2
->setData( QString() );
57 gesture_drawer3
->setData( QString() );
60 void Gesture_triggers_tab::set_data( const Trigger_list
* triggers_P
)
62 if( triggers_P
== NULL
)
67 Gesture_trigger
* trig
= NULL
;
68 Trigger_list::Iterator
it( *triggers_P
);
71 assert( dynamic_cast< Gesture_trigger
* >( *it
));
72 trig
= static_cast< Gesture_trigger
* >( *it
);
76 gesture1
= trig
? trig
->gesturecode() : QString();
77 gesture_lineedit1
->setText( gesture1
);
78 gesture_drawer1
->setData( gesture1
);
82 assert( dynamic_cast< Gesture_trigger
* >( *it
));
83 trig
= static_cast< Gesture_trigger
* >( *it
);
87 gesture2
= trig
? trig
->gesturecode() : QString();
88 gesture_lineedit2
->setText( gesture2
);
89 gesture_drawer2
->setData( gesture2
);
93 assert( dynamic_cast< Gesture_trigger
* >( *it
));
94 trig
= static_cast< Gesture_trigger
* >( *it
);
98 gesture3
= trig
? trig
->gesturecode() : QString();
99 gesture_lineedit3
->setText( gesture3
);
100 gesture_drawer3
->setData( gesture3
);
103 Trigger_list
* Gesture_triggers_tab::get_data( Action_data
* data_P
) const
105 Trigger_list
* ret
= new Trigger_list( "Gesture_triggers" );
106 if( !gesture1
.isEmpty())
107 ret
->append( new Gesture_trigger( data_P
, gesture1
));
108 if( !gesture2
.isEmpty())
109 ret
->append( new Gesture_trigger( data_P
, gesture2
));
110 if( !gesture3
.isEmpty())
111 ret
->append( new Gesture_trigger( data_P
, gesture3
));
115 void Gesture_triggers_tab::edit_gesture_pressed1()
117 Gesture_edit_dialog
dlg( gesture1
);
118 gesture1
= dlg
.edit_gesture();
119 gesture_lineedit1
->setText( gesture1
);
120 gesture_drawer1
->setData( gesture1
);
123 void Gesture_triggers_tab::edit_gesture_pressed2()
125 Gesture_edit_dialog
dlg( gesture2
);
126 gesture2
= dlg
.edit_gesture();
127 gesture_lineedit2
->setText( gesture2
);
128 gesture_drawer2
->setData( gesture2
);
131 void Gesture_triggers_tab::edit_gesture_pressed3()
133 Gesture_edit_dialog
dlg( gesture3
);
134 gesture3
= dlg
.edit_gesture();
135 gesture_lineedit3
->setText( gesture3
);
136 gesture_drawer3
->setData( gesture3
);
139 // Gesture_edit_dialog
141 Gesture_edit_dialog::Gesture_edit_dialog( const QString
& gesture_P
)
142 : KDialog( 0 ), // CHECKME caption
143 _gesture( gesture_P
), _page( NULL
)
146 setButtons( Ok
| Cancel
);
147 _page
= new GestureRecordPage( _gesture
,
148 this, "GestureRecordPage");
150 // connect(_page, SIGNAL(gestureRecorded(bool)), // allow clearing the gesture
151 // this, SLOT(enableButtonOk(bool)));
153 setMainWidget( _page
);
156 QString
Gesture_edit_dialog::edit_gesture()
159 return _page
->getGesture();
164 } // namespace KHotKeys
166 #include "gesture_triggers_tab.moc"