Add (and install) svg for the new krunner interface.
[kdebase/uwolfer.git] / workspace / khotkeys / kcontrol / gesture_triggers_tab.cpp
blob7e0786a4c97947253789b092b646e803e9a86ca7
1 /****************************************************************************
3 KHotKeys
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>
18 #include <QLineEdit>
20 #include <triggers.h>
21 #include <actions.h>
22 #include <action_data.h>
24 #include "kcmkhotkeys.h"
25 #include "gesturedrawer.h"
26 #include "gesturerecordpage.h"
28 namespace KHotKeys
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);
35 clear_data();
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 )
64 clear_data();
65 return;
67 Gesture_trigger* trig = NULL;
68 Trigger_list::Iterator it( *triggers_P );
69 if( it )
71 assert( dynamic_cast< Gesture_trigger* >( *it ));
72 trig = static_cast< Gesture_trigger* >( *it );
74 else
75 trig = NULL;
76 gesture1 = trig ? trig->gesturecode() : QString();
77 gesture_lineedit1->setText( gesture1 );
78 gesture_drawer1->setData( gesture1 );
79 ++it;
80 if( it )
82 assert( dynamic_cast< Gesture_trigger* >( *it ));
83 trig = static_cast< Gesture_trigger* >( *it );
85 else
86 trig = NULL;
87 gesture2 = trig ? trig->gesturecode() : QString();
88 gesture_lineedit2->setText( gesture2 );
89 gesture_drawer2->setData( gesture2 );
90 ++it;
91 if( it )
93 assert( dynamic_cast< Gesture_trigger* >( *it ));
94 trig = static_cast< Gesture_trigger* >( *it );
96 else
97 trig = NULL;
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 ));
112 return ret;
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 )
145 setModal( true );
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()
158 if( exec())
159 return _page->getGesture();
160 else
161 return _gesture;
164 } // namespace KHotKeys
166 #include "gesture_triggers_tab.moc"