summaryrefslogtreecommitdiffstats
path: root/khotkeys/kcontrol/gesture_triggers_tab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'khotkeys/kcontrol/gesture_triggers_tab.cpp')
-rw-r--r--khotkeys/kcontrol/gesture_triggers_tab.cpp161
1 files changed, 161 insertions, 0 deletions
diff --git a/khotkeys/kcontrol/gesture_triggers_tab.cpp b/khotkeys/kcontrol/gesture_triggers_tab.cpp
new file mode 100644
index 000000000..bfcad0295
--- /dev/null
+++ b/khotkeys/kcontrol/gesture_triggers_tab.cpp
@@ -0,0 +1,161 @@
+/****************************************************************************
+
+ KHotKeys
+
+ Copyright (C) 1999-2002 Lubos Lunak <l.lunak@kde.org>
+
+ Distributed under the terms of the GNU General Public License version 2.
+
+****************************************************************************/
+
+#define _GESTURE_TRIGGERS_TAB_CPP_
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "gesture_triggers_tab.h"
+
+#include <qpushbutton.h>
+#include <qlineedit.h>
+
+#include <triggers.h>
+#include <actions.h>
+#include <action_data.h>
+
+#include "kcmkhotkeys.h"
+#include "gesturedrawer.h"
+#include "gesturerecordpage.h"
+
+namespace KHotKeys
+{
+
+Gesture_triggers_tab::Gesture_triggers_tab( QWidget* parent_P, const char* name_P )
+ : Gesture_triggers_tab_ui( parent_P, name_P )
+ {
+ clear_data();
+ // KHotKeys::Module::changed()
+ connect( gesture_edit_button1, SIGNAL( clicked()),
+ module, SLOT( changed()));
+ connect( gesture_edit_button2, SIGNAL( clicked()),
+ module, SLOT( changed()));
+ connect( gesture_edit_button3, SIGNAL( clicked()),
+ module, SLOT( changed()));
+ }
+
+void Gesture_triggers_tab::clear_data()
+ {
+ gesture1 = gesture2 = gesture3 = QString::null;
+ gesture_lineedit1->clear();
+ gesture_lineedit2->clear();
+ gesture_lineedit3->clear();
+ gesture_drawer1->setData( QString::null );
+ gesture_drawer2->setData( QString::null );
+ gesture_drawer3->setData( QString::null );
+ }
+
+void Gesture_triggers_tab::set_data( const Trigger_list* triggers_P )
+ {
+ if( triggers_P == NULL )
+ {
+ clear_data();
+ return;
+ }
+ Gesture_trigger* trig = NULL;
+ Trigger_list::Iterator it( *triggers_P );
+ if( it )
+ {
+ assert( dynamic_cast< Gesture_trigger* >( *it ));
+ trig = static_cast< Gesture_trigger* >( *it );
+ }
+ else
+ trig = NULL;
+ gesture1 = trig ? trig->gesturecode() : QString::null;
+ gesture_lineedit1->setText( gesture1 );
+ gesture_drawer1->setData( gesture1 );
+ ++it;
+ if( it )
+ {
+ assert( dynamic_cast< Gesture_trigger* >( *it ));
+ trig = static_cast< Gesture_trigger* >( *it );
+ }
+ else
+ trig = NULL;
+ gesture2 = trig ? trig->gesturecode() : QString::null;
+ gesture_lineedit2->setText( gesture2 );
+ gesture_drawer2->setData( gesture2 );
+ ++it;
+ if( it )
+ {
+ assert( dynamic_cast< Gesture_trigger* >( *it ));
+ trig = static_cast< Gesture_trigger* >( *it );
+ }
+ else
+ trig = NULL;
+ gesture3 = trig ? trig->gesturecode() : QString::null;
+ gesture_lineedit3->setText( gesture3 );
+ gesture_drawer3->setData( gesture3 );
+ }
+
+Trigger_list* Gesture_triggers_tab::get_data( Action_data* data_P ) const
+ {
+ Trigger_list* ret = new Trigger_list( "Gesture_triggers" );
+ if( !gesture1.isEmpty())
+ ret->append( new Gesture_trigger( data_P, gesture1 ));
+ if( !gesture2.isEmpty())
+ ret->append( new Gesture_trigger( data_P, gesture2 ));
+ if( !gesture3.isEmpty())
+ ret->append( new Gesture_trigger( data_P, gesture3 ));
+ return ret;
+ }
+
+void Gesture_triggers_tab::edit_gesture_pressed1()
+ {
+ Gesture_edit_dialog dlg( gesture1 );
+ gesture1 = dlg.edit_gesture();
+ gesture_lineedit1->setText( gesture1 );
+ gesture_drawer1->setData( gesture1 );
+ }
+
+void Gesture_triggers_tab::edit_gesture_pressed2()
+ {
+ Gesture_edit_dialog dlg( gesture2 );
+ gesture2 = dlg.edit_gesture();
+ gesture_lineedit2->setText( gesture2 );
+ gesture_drawer2->setData( gesture2 );
+ }
+
+void Gesture_triggers_tab::edit_gesture_pressed3()
+ {
+ Gesture_edit_dialog dlg( gesture3 );
+ gesture3 = dlg.edit_gesture();
+ gesture_lineedit3->setText( gesture3 );
+ gesture_drawer3->setData( gesture3 );
+ }
+
+// Gesture_edit_dialog
+
+Gesture_edit_dialog::Gesture_edit_dialog( const QString& gesture_P )
+ : KDialogBase( NULL, NULL, true, "", Ok | Cancel ), // CHECKME caption
+ _gesture( gesture_P ), _page( NULL )
+ {
+ _page = new GestureRecordPage( _gesture,
+ this, "GestureRecordPage");
+
+// connect(_page, SIGNAL(gestureRecorded(bool)), // allow clearing the gesture
+// this, SLOT(enableButtonOK(bool)));
+
+ setMainWidget( _page );
+ }
+
+QString Gesture_edit_dialog::edit_gesture()
+ {
+ if( exec())
+ return _page->getGesture();
+ else
+ return _gesture;
+ }
+
+} // namespace KHotKeys
+
+#include "gesture_triggers_tab.moc"