You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebase/khotkeys/kcontrol/gesture_triggers_tab.cpp

162 lines
4.5 KiB

/****************************************************************************
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 <tqpushbutton.h>
#include <tqlineedit.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( TQWidget* parent_P, const char* name_P )
: Gesture_triggers_tab_ui( parent_P, name_P )
{
clear_data();
// KHotKeys::Module::changed()
connect( gesture_edit_button1, TQ_SIGNAL( clicked()),
module, TQ_SLOT( changed()));
connect( gesture_edit_button2, TQ_SIGNAL( clicked()),
module, TQ_SLOT( changed()));
connect( gesture_edit_button3, TQ_SIGNAL( clicked()),
module, TQ_SLOT( changed()));
}
void Gesture_triggers_tab::clear_data()
{
gesture1 = gesture2 = gesture3 = TQString::null;
gesture_lineedit1->clear();
gesture_lineedit2->clear();
gesture_lineedit3->clear();
gesture_drawer1->setData( TQString::null );
gesture_drawer2->setData( TQString::null );
gesture_drawer3->setData( TQString::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() : TQString::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() : TQString::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() : TQString::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 TQString& gesture_P )
: KDialogBase( NULL, NULL, true, "", Ok | Cancel ), // CHECKME caption
_gesture( gesture_P ), _page( NULL )
{
_page = new GestureRecordPage( _gesture,
this, "GestureRecordPage");
// connect(_page, TQ_SIGNAL(gestureRecorded(bool)), // allow clearing the gesture
// this, TQ_SLOT(enableButtonOK(bool)));
setMainWidget( _page );
}
TQString Gesture_edit_dialog::edit_gesture()
{
if( exec())
return _page->getGesture();
else
return _gesture;
}
} // namespace KHotKeys
#include "gesture_triggers_tab.moc"