File: ActionStorage.cpp

package info (click to toggle)
subcommander 2.0.0~b5p2-5
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 15,344 kB
  • sloc: cpp: 63,594; sh: 4,050; xml: 1,992; makefile: 1,134; ansic: 786; ruby: 251; lisp: 24
file content (87 lines) | stat: -rw-r--r-- 1,634 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* ====================================================================
 * Copyright (c) 2003-2007, Martin Hauner
 *                          http://subcommander.tigris.org
 *
 * Subcommander is licensed as described in the file doc/COPYING, which
 * you should have received as part of this distribution.
 * ====================================================================
 */

// sc
#include "ActionStorage.h"

// qt
#include <QtGui/QAction>
#include <QtGui/QWidget>

// sys
#include <map>
typedef std::map<long, QAction*> Actions;


class ActionStorage::Member
{
public:
  Actions actions;
};

ActionStorage::ActionStorage()
{
  _m = new ActionStorage::Member();
}

ActionStorage::~ActionStorage()
{
  delete _m;
}

QAction* ActionStorage::getAction( long key )
{
  return _m->actions[key];
}

void ActionStorage::addAction( long key, QAction* action )
{
  _m->actions[key] = action;
}

void ActionStorage::enableAction( long key, bool b )
{
  getAction( key )->setEnabled(b);
}

void ActionStorage::enableActions( long keys[] )
{
  int i = 0;
  while( keys[i] != ActionNull )
  {
    enableAction( keys[i], true );
    i++;
  }
}

void ActionStorage::disableActions( long keys[] )
{
  int i = 0;
  while( keys[i] != ActionNull )
  {
    enableAction( keys[i], false );
    i++;
  }
}

void ActionStorage::enableActions()
{
  for( Actions::iterator it = _m->actions.begin(); it != _m->actions.end(); it++ )
  {
    ((*it).second)->setEnabled(true);
  }
}

void ActionStorage::disableActions()
{
  for( Actions::iterator it = _m->actions.begin(); it != _m->actions.end(); it++ )
  {
    ((*it).second)->setEnabled(false);
  }
}