summaryrefslogtreecommitdiffstats
path: root/khotkeys/kcontrol/condition_list_widget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'khotkeys/kcontrol/condition_list_widget.cpp')
-rw-r--r--khotkeys/kcontrol/condition_list_widget.cpp103
1 files changed, 79 insertions, 24 deletions
diff --git a/khotkeys/kcontrol/condition_list_widget.cpp b/khotkeys/kcontrol/condition_list_widget.cpp
index ba3be5e71..f0a43cb93 100644
--- a/khotkeys/kcontrol/condition_list_widget.cpp
+++ b/khotkeys/kcontrol/condition_list_widget.cpp
@@ -49,10 +49,10 @@ Condition_list_widget::Condition_list_widget( TQWidget* parent_P, const char* na
popup->insertItem( i18n( "Not_condition", "Not" ), TYPE_NOT );
popup->insertItem( i18n( "And_condition", "And" ), TYPE_AND );
popup->insertItem( i18n( "Or_condition", "Or" ), TYPE_OR );
- connect( conditions_listview, TQT_SIGNAL( doubleClicked ( TQListViewItem *, const TQPoint &, int ) ),
- this, TQT_SLOT( modify_pressed() ) );
+ connect( conditions_listview, TQ_SIGNAL( doubleClicked ( TQListViewItem *, const TQPoint &, int ) ),
+ this, TQ_SLOT( modify_pressed() ) );
- connect( popup, TQT_SIGNAL( activated( int )), TQT_SLOT( new_selected( int )));
+ connect( popup, TQ_SIGNAL( activated( int )), TQ_SLOT( new_selected( int )));
new_button->setPopup( popup );
conditions_listview->header()->hide();
conditions_listview->addColumn( "" );
@@ -62,18 +62,18 @@ Condition_list_widget::Condition_list_widget( TQWidget* parent_P, const char* na
copy_button->setEnabled( false );
modify_button->setEnabled( false );
delete_button->setEnabled( false );
+ move_up_button->setEnabled( false );
+ move_down_button->setEnabled( false );
clear_data();
// KHotKeys::Module::changed()
- connect( new_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( copy_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( modify_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( delete_button, TQT_SIGNAL( clicked()),
- module, TQT_SLOT( changed()));
- connect( comment_lineedit, TQT_SIGNAL( textChanged( const TQString& )),
- module, TQT_SLOT( changed()));
+ connect(new_button, TQ_SIGNAL(clicked()), module, TQ_SLOT(changed()));
+ connect(copy_button, TQ_SIGNAL(clicked()), module, TQ_SLOT(changed()));
+ connect(modify_button, TQ_SIGNAL(clicked()), module, TQ_SLOT( changed()));
+ connect(delete_button, TQ_SIGNAL(clicked()), module, TQ_SLOT( changed()));
+ connect(move_up_button, TQ_SIGNAL(clicked()), module, TQ_SLOT(changed()));
+ connect(move_down_button, TQ_SIGNAL(clicked()), module, TQ_SLOT(changed()));
+ connect(comment_lineedit, TQ_SIGNAL(textChanged(const TQString&)),
+ module, TQ_SLOT(changed()));
}
Condition_list_widget::~Condition_list_widget()
@@ -213,8 +213,11 @@ void Condition_list_widget::new_selected( int type_P )
void Condition_list_widget::copy_pressed()
{
- if ( !selected_item )
- return;
+ if ( !selected_item )
+ {
+ return;
+ }
+
conditions_listview->setSelected( create_listview_item(
selected_item->condition()->copy( selected_item->condition()->parent()),
selected_item->parent() ? NULL : conditions_listview,
@@ -223,22 +226,72 @@ void Condition_list_widget::copy_pressed()
}
void Condition_list_widget::delete_pressed()
-{
- if ( selected_item )
{
- conditions.remove( selected_item->condition()); // we own it
- delete selected_item; // CHECKME snad vyvola signaly pro enable()
- selected_item = NULL;
+ if ( !selected_item )
+ {
+ return;
+ }
+ Condition_list_item *nextItem = static_cast< Condition_list_item* >(selected_item->nextSibling());
+ conditions.remove( selected_item->condition()); // we own it
+ delete selected_item;
+ selected_item = NULL;
+ if (!nextItem)
+ {
+ // If the last item of the list was deleted, get the new last item
+ nextItem = static_cast< Condition_list_item* >(conditions_listview->lastItem());
+ }
+ if (nextItem)
+ {
+ conditions_listview->setSelected(nextItem, true);
+ current_changed(nextItem);
+ }
}
-}
void Condition_list_widget::modify_pressed()
{
- if ( !selected_item )
- return;
+ if ( !selected_item )
+ {
+ return;
+ }
edit_listview_item( selected_item );
}
+void Condition_list_widget::move_up_pressed()
+ {
+ if ( !selected_item )
+ {
+ return;
+ }
+
+ Condition_list_item *prevItem = nullptr;
+ TQListViewItem *currItem = conditions_listview->firstChild();
+ while (currItem != selected_item)
+ {
+ prevItem = static_cast< Condition_list_item* >(currItem);
+ currItem = currItem->nextSibling();
+ }
+ if (prevItem)
+ {
+ prevItem->moveItem(selected_item);
+ current_changed(selected_item);
+ }
+ }
+
+void Condition_list_widget::move_down_pressed()
+ {
+ if ( !selected_item )
+ {
+ return;
+ }
+
+ Condition_list_item *nextItem = static_cast< Condition_list_item* >(selected_item->nextSibling());
+ if (nextItem)
+ {
+ selected_item->moveItem(nextItem);
+ current_changed(selected_item);
+ }
+ }
+
void Condition_list_widget::current_changed( TQListViewItem* item_P )
{
// if( item_P == selected_item )
@@ -260,6 +313,8 @@ void Condition_list_widget::current_changed( TQListViewItem* item_P )
}
else
modify_button->setEnabled( false );
+ move_up_button->setEnabled(selected_item != conditions_listview->firstChild());
+ move_down_button->setEnabled(selected_item != conditions_listview->lastChild());
}
Condition_list_item* Condition_list_widget::create_listview_item( Condition* condition_P,
@@ -268,7 +323,7 @@ Condition_list_item* Condition_list_widget::create_listview_item( Condition* con
#ifdef KHOTKEYS_DEBUG
kdDebug( 1217 ) << "Condition_list_widget::create_listview_item():" << endl;
Condition::debug_list( conditions );
- kdDebug( 1217 ) << kdBacktrace() << endl;
+ kdDebug( 1217 ) << kdBacktrace() << endl;
#endif
Condition* new_cond = copy_P ? condition_P->copy( parent2_P
? static_cast< Condition_list_base* >( parent2_P->condition()) : NULL ) : condition_P;