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.
krusader/krusader/UserMenu/usermenu.cpp

86 lines
3.0 KiB

/***************************************************************************
_expressionsu.cpp - description
-------------------
begin : Sat Dec 6 2003
copyright : (C) 2003 by Shie Erlich & Rafi Yanai
email :
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include <kdebug.h>
#include <tdelocale.h>
#include "../krusader.h"
#include "../Konfigurator/konfigurator.h"
#include "../UserAction/kraction.h"
#include "../UserAction/useraction.h"
#include "usermenu.h"
void UserMenu::exec() {
_popup->run();
}
UserMenu::UserMenu( TQWidget * parent, const char * name ) : TQWidget( parent, name ) {
_popup = new UserMenuGui(this);
}
void UserMenu::update() {
_popup->createMenu();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
UserMenuGui::UserMenuGui( UserMenu *, TQWidget * parent ) : TDEPopupMenu( parent ) {
createMenu();
}
void UserMenuGui::createMenu() {
// kdDebug() << "UserMenuGui::createMenu called" << endl;
clear();
insertTitle( i18n("User Menu") );
// read entries from config file.
readEntries();
// add the "add new entry" command
insertSeparator();
insertItem( i18n("Manage user actions"), 0 );
}
void UserMenuGui::readEntries() {
// Note: entries are marked 1..n, so that entry 0 is always
// available. It is used by the "add new entry" command.
int idx = 1;
//FIXME: don't plug ALL useractions into the usermenu. TODO: read the usermenu-strukture from an other file (krusaderrc ?)
UserAction::KrActionList list = krUserAction->actionList();
for ( KrAction* action = list.first(); action; action = list.next() )
action->plug( this, idx++ );
}
void UserMenuGui::run() {
//disable unwanted actions:
// disabled due to conflicts with the toolbar (a check on each file-cursor-movement would be nessesary; hit the performance)
// krApp->userAction->setAvailability();
int idx = exec();
if ( idx == -1 ) // nothing was selected
return;
if ( idx == 0 ) {
Konfigurator konfigurator( false, 7 ); // page 7 are the UserActions
return;
}
}