diff options
Diffstat (limited to 'khotkeys/kcontrol/gesture_triggers_tab.cpp')
| -rw-r--r-- | khotkeys/kcontrol/gesture_triggers_tab.cpp | 161 | 
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"  | 
