Crossfire Server, Trunk
CREScriptPanel.cpp
Go to the documentation of this file.
1 #include <QtWidgets>
2 #include "CREScriptPanel.h"
3 #include "ScriptFile.h"
4 #include "ScriptFile.h"
5 #include "CREMapInformation.h"
6 #include "CREPixmap.h"
7 
8 extern "C" {
9 #include "define.h"
10 }
11 #include "assets.h"
12 #include "AssetsManager.h"
13 
14 static QHash<QString, archetype*> events;
15 
16 void static fillEvents()
17 {
18  if (!events.isEmpty())
19  {
20  return;
21  }
22 
24  {
25  if (arch->clone.type == EVENT_CONNECTOR)
26  {
27  events.insert(arch->name, arch);
28  }
29  });
30 }
31 
32 CREScriptPanel::CREScriptPanel(QWidget* parent) : CRETPanel(parent)
33 {
34  QGridLayout* layout = new QGridLayout(this);
35  myMaps = new QTreeWidget(this);
36  layout->addWidget(myMaps, 1, 1, 1, 1);
37  myMaps->setHeaderLabel("Maps using this script");
38  myMaps->setIconSize(QSize(32, 32));
39  myMaps->setRootIsDecorated(true);
40 
41  fillEvents();
42 }
43 
45 {
46  myMaps->clear();
47 
48  QHash<QString, QTreeWidgetItem*> maps;
49 
50  foreach(const HookInformation* hook, script->hooks())
51  {
52  if (!maps.contains(hook->map()->path()))
53  {
54  QTreeWidgetItem* r = new QTreeWidgetItem(myMaps, QStringList(hook->map()->path()));
55  maps[hook->map()->path()] = r;
56  myMaps->addTopLevelItem(r);
57  r->setExpanded(true);
58  }
59 
60  QTreeWidgetItem* child = new QTreeWidgetItem(QStringList(QString("%1 (%2, %3), %4, %5").arg(hook->itemName()).arg(hook->x()).arg(hook->y()).arg(hook->eventName()).arg(hook->pluginName())));
61 
62  archt* arch = events[hook->eventName().toLower()];
63  if (arch != NULL && arch->clone.face != NULL)
64  {
65  child->setIcon(0, CREPixmap::getIcon(arch->clone.face->number));
66  }
67 
68  maps[hook->map()->path()]->addChild(child);
69  }
70 }
71 
HookInformation::x
int x() const
Definition: ScriptFile.cpp:75
CRETPanel
Definition: CREPanel.h:20
layout
Definition: main.c:85
maps
static std::unordered_map< std::string, mapzone * > maps
Definition: citylife.cpp:93
EVENT_CONNECTOR
@ EVENT_CONNECTOR
Definition: object.h:227
CREScriptPanel::CREScriptPanel
CREScriptPanel(QWidget *parent)
Definition: CREScriptPanel.cpp:32
archininventory.arch
arch
DIALOGCHECK MINARGS 1 MAXARGS 1
Definition: archininventory.py:16
AssetsManager.h
CREMapInformation.h
CREScriptPanel.h
HookInformation::map
const CREMapInformation * map() const
Definition: ScriptFile.cpp:70
CREPixmap::getIcon
static QIcon getIcon(uint16_t faceNumber)
Definition: CREPixmap.cpp:55
HookInformation::itemName
QString itemName() const
Definition: ScriptFile.cpp:85
getManager
AssetsManager * getManager()
Definition: assets.cpp:329
archt
Definition: object.h:468
HookInformation::y
int y() const
Definition: ScriptFile.cpp:80
CREScriptPanel::setItem
virtual void setItem(ScriptFile *script) override
Definition: CREScriptPanel.cpp:44
ScriptFile.h
HookInformation::pluginName
QString pluginName() const
Definition: ScriptFile.cpp:90
CREScriptPanel::myMaps
QTreeWidget * myMaps
Definition: CREScriptPanel.h:17
CREMapInformation::path
QString path
Definition: CREMapInformation.h:17
AssetsCollection::each
void each(std::function< void(T *)> op)
Definition: AssetsCollection.h:135
fillEvents
static void fillEvents()
Definition: CREScriptPanel.cpp:16
AssetsManager::archetypes
Archetypes * archetypes()
Definition: AssetsManager.h:44
ScriptFile
Definition: ScriptFile.h:31
events
static QHash< QString, archetype * > events
Definition: CREScriptPanel.cpp:14
define.h
assets.h
ScriptFile::hooks
QList< HookInformation * > hooks() const
Definition: ScriptFile.cpp:31
HookInformation
Definition: ScriptFile.h:9
CREPixmap.h
ring_occidental_mages.r
r
Definition: ring_occidental_mages.py:6
HookInformation::eventName
QString eventName() const
Definition: ScriptFile.cpp:95