* clarify several points in the api documentation. time to do a techbase tutorial!
* pass the exact match action into exec(). this allows runners the opportunity to store otherwise expensive information in the action and get it back easily svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=689642
This commit is contained in:
parent
2c29040193
commit
abd156ece2
@ -32,6 +32,8 @@ class AbstractRunner::Private
|
|||||||
exactMatch( 0 ),
|
exactMatch( 0 ),
|
||||||
actions( new KActionCollection( runner ) )
|
actions( new KActionCollection( runner ) )
|
||||||
{
|
{
|
||||||
|
delete exactMatch;
|
||||||
|
actions->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
QAction* exactMatch;
|
QAction* exactMatch;
|
||||||
@ -100,7 +102,11 @@ void AbstractRunner::fillMatches( KActionCollection* matches,
|
|||||||
|
|
||||||
void AbstractRunner::runExactMatch()
|
void AbstractRunner::runExactMatch()
|
||||||
{
|
{
|
||||||
exec( d->term );
|
if (!d->exactMatch) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
exec(d->exactMatch, d->term);
|
||||||
}
|
}
|
||||||
|
|
||||||
AbstractRunner::List AbstractRunner::loadRunners( QWidget* parent )
|
AbstractRunner::List AbstractRunner::loadRunners( QWidget* parent )
|
||||||
|
@ -56,13 +56,19 @@ class PLASMA_EXPORT AbstractRunner : public QObject
|
|||||||
* The action will be activated if the user selects it.
|
* The action will be activated if the user selects it.
|
||||||
* If the action is informational only and should not be executed,
|
* If the action is informational only and should not be executed,
|
||||||
* disable the action with setEnabled( false ).
|
* disable the action with setEnabled( false ).
|
||||||
|
*
|
||||||
|
* If this runner's exact match is selected, the action will not
|
||||||
|
* be triggered, but it will be passed into the exec method.
|
||||||
|
* @see exec
|
||||||
|
*
|
||||||
|
* Ownership of the action passes to the AbstractRunner class.
|
||||||
*/
|
*/
|
||||||
QAction* exactMatch( const QString& command );
|
QAction* exactMatch(const QString& command);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the last action generated by exactMatch( const QString& )
|
* @return the last action generated by exactMatch( const QString& )
|
||||||
*/
|
*/
|
||||||
QAction* exactMatch( );
|
QAction* exactMatch();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Requests the runner to find possible matches for the search term.
|
* Requests the runner to find possible matches for the search term.
|
||||||
@ -87,7 +93,7 @@ class PLASMA_EXPORT AbstractRunner : public QObject
|
|||||||
* If the hasOptions() returns true, this method will be called to get
|
* If the hasOptions() returns true, this method will be called to get
|
||||||
* the widget displaying the options the user can interact with.
|
* the widget displaying the options the user can interact with.
|
||||||
*/
|
*/
|
||||||
virtual QWidget* options( );
|
virtual QWidget* options();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static method is called to load and get a list available of Runners.
|
* Static method is called to load and get a list available of Runners.
|
||||||
@ -110,6 +116,12 @@ class PLASMA_EXPORT AbstractRunner : public QObject
|
|||||||
* to a maximium of max matches starting at offset in the data set
|
* to a maximium of max matches starting at offset in the data set
|
||||||
* If the action is informational only and should not be executed,
|
* If the action is informational only and should not be executed,
|
||||||
* disable the action with setEnabled( false ).
|
* disable the action with setEnabled( false ).
|
||||||
|
*
|
||||||
|
* @param matches the action collection to add matches to
|
||||||
|
* @param term the current search term
|
||||||
|
* @param max the maximum number of results to return
|
||||||
|
* @param offset the number of initial results to skip,
|
||||||
|
* used in conjunction with max
|
||||||
*/
|
*/
|
||||||
virtual void fillMatches( KActionCollection* matches,
|
virtual void fillMatches( KActionCollection* matches,
|
||||||
const QString& term,
|
const QString& term,
|
||||||
@ -121,18 +133,24 @@ class PLASMA_EXPORT AbstractRunner : public QObject
|
|||||||
* default runner. Other runner's actions will be suggested in the
|
* default runner. Other runner's actions will be suggested in the
|
||||||
* interface. Non-exact matches should be offered via findMatches.
|
* interface. Non-exact matches should be offered via findMatches.
|
||||||
* The action will be activated if the user selects it.
|
* The action will be activated if the user selects it.
|
||||||
|
*
|
||||||
|
* @param term the current search term
|
||||||
*/
|
*/
|
||||||
virtual QAction* accepts( const QString& term ) = 0;
|
virtual QAction* accepts(const QString& term) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Take action on the command. What this means is dependant on the
|
* Take action on the command. What this means is dependant on the
|
||||||
* particular runner implementation, e.g. some runners may treat
|
* particular runner implementation, e.g. some runners may treat
|
||||||
* command as a shell command, while others may treat it as an
|
* command as a shell command, while others may treat it as an
|
||||||
* equation or a user name or ...
|
* equation or a user name or ...
|
||||||
* This will be called automatically when the exact match
|
*
|
||||||
* QAction is triggered
|
* This will be called automatically when the exact match is
|
||||||
|
* selected.
|
||||||
|
*
|
||||||
|
* @param action the QAction provided via exactMatch
|
||||||
|
* @param command the full command string
|
||||||
*/
|
*/
|
||||||
virtual bool exec( const QString& command ) = 0;
|
virtual bool exec(QAction* action, const QString& command) = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class Private;
|
class Private;
|
||||||
|
Loading…
Reference in New Issue
Block a user