File: itemgroupcluster.cpp

package info (click to toggle)
postbooks 4.10.0-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 112,660 kB
  • ctags: 22,890
  • sloc: cpp: 310,358; sh: 607; xml: 214; python: 140; awk: 104; makefile: 50
file content (139 lines) | stat: -rw-r--r-- 5,093 bytes parent folder | download
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/*
 * This file is part of the xTuple ERP: PostBooks Edition, a free and
 * open source Enterprise Resource Planning software suite,
 * Copyright (c) 1999-2016 by OpenMFG LLC, d/b/a xTuple.
 * It is licensed to you under the Common Public Attribution License
 * version 1.0, the full text of which (including xTuple-specific Exhibits)
 * is available at www.xtuple.com/CPAL.  By using this software, you agree
 * to be bound by its terms.
 */

#include "itemgroupcluster.h"

ItemGroupCluster::ItemGroupCluster(QWidget* pParent, const char* pName) :
    VirtualCluster(pParent, pName)
{
    addNumberWidget(new ItemGroupClusterLineEdit(this, pName));
    setDescriptionVisible(true);
}

ItemGroupClusterLineEdit::ItemGroupClusterLineEdit(QWidget* pParent, const char* pName) :
    VirtualClusterLineEdit(pParent, "itemgrp", "itemgrp_id", "itemgrp_name", 0, "itemgrp_descrip", 0, pName, 0)
{
    setTitles(tr("Item Group"), tr("Item Groups"));
    setUiName("itemGroup");
    setEditPriv("MaintainItemGroups");
    setNewPriv("MaintainItemGroups");
    // no ViewItemGroups priv
}

VirtualInfo *ItemGroupClusterLineEdit::infoFactory()
{
    return new ItemGroupInfo(this);
}

VirtualList *ItemGroupClusterLineEdit::listFactory()
{
    return new ItemGroupList(this);
}

VirtualSearch *ItemGroupClusterLineEdit::searchFactory()
{
    return new ItemGroupSearch(this);
}

ItemGroupInfo::ItemGroupInfo(QWidget *pParent, Qt::WindowFlags pFlags) : VirtualInfo(pParent, pFlags)
{
    _numberLit->setText(tr("Name:"));
}

ItemGroupList::ItemGroupList(QWidget *pParent, Qt::WindowFlags pFlags) : VirtualList(pParent, pFlags)
{
    QTreeWidgetItem *hitem = _listTab->headerItem();
    hitem->setText(0, tr("Name"));
}

ItemGroupSearch::ItemGroupSearch(QWidget *pParent, Qt::WindowFlags pFlags) : VirtualSearch(pParent, pFlags)
{
    _searchNumber->setText(tr("Search through Names"));
    QTreeWidgetItem *hitem = _listTab->headerItem();
    hitem->setText(0, tr("Name"));
}

// script exposure ////////////////////////////////////////////////////////////

QScriptValue ItemGroupClusterLineEdittoScriptValue(QScriptEngine *engine, ItemGroupClusterLineEdit* const &item)
{
    return engine->newQObject(item);
}

void ItemGroupClusterLineEditfromScriptValue(const QScriptValue &obj, ItemGroupClusterLineEdit* &item)
{
    item = qobject_cast<ItemGroupClusterLineEdit*>(obj.toQObject());
}

QScriptValue constructItemGroupClusterLineEdit(QScriptContext *context,
                                         QScriptEngine  *engine)
{
    ItemGroupClusterLineEdit *obj = 0;

    if (context->argumentCount() == 1 &&
        qscriptvalue_cast<QWidget*>(context->argument(0)))
      obj = new ItemGroupClusterLineEdit(qscriptvalue_cast<QWidget*>(context->argument(0)));

    else if (context->argumentCount() >= 2 &&
             qscriptvalue_cast<QWidget*>(context->argument(0)))
      obj = new ItemGroupClusterLineEdit(qscriptvalue_cast<QWidget*>(context->argument(0)),
                                       qPrintable(context->argument(1).toString()));

    else
      context->throwError(QScriptContext::UnknownError,
                          "could not find an appropriate ItemGroupClusterLineEdit constructor");

    return engine->toScriptValue(obj);
}

void setupItemGroupClusterLineEdit(QScriptEngine *engine)
{
    qScriptRegisterMetaType(engine, ItemGroupClusterLineEdittoScriptValue, ItemGroupClusterLineEditfromScriptValue);
    QScriptValue widget = engine->newFunction(constructItemGroupClusterLineEdit);
    engine->globalObject().setProperty("ItemGroupClusterLineEdit", widget, QScriptValue::ReadOnly | QScriptValue::Undeletable);
}

QScriptValue ItemGroupClustertoScriptValue(QScriptEngine *engine, ItemGroupCluster* const &item)
{
    return engine->newQObject(item);
}

void ItemGroupClusterfromScriptValue(const QScriptValue &obj, ItemGroupCluster* &item)
{
    item = qobject_cast<ItemGroupCluster*>(obj.toQObject());
}

QScriptValue constructItemGroupCluster(QScriptContext *context,
                                       QScriptEngine  *engine)
{
    ItemGroupCluster *obj = 0;

    if (context->argumentCount() == 1 &&
        qscriptvalue_cast<QWidget*>(context->argument(0)))
      obj = new ItemGroupCluster(qscriptvalue_cast<QWidget*>(context->argument(0)));

    else if (context->argumentCount() >= 2 &&
             qscriptvalue_cast<QWidget*>(context->argument(0)))
      obj = new ItemGroupCluster(qscriptvalue_cast<QWidget*>(context->argument(0)),
                                 qPrintable(context->argument(1).toString()));

    else
      context->throwError(QScriptContext::UnknownError,
                          "could not find an appropriate ItemGroupCluster constructor");

    return engine->toScriptValue(obj);
}

void setupItemGroupCluster(QScriptEngine *engine)
{
    qScriptRegisterMetaType(engine, ItemGroupClustertoScriptValue, ItemGroupClusterfromScriptValue);
    QScriptValue widget = engine->newFunction(constructItemGroupCluster);
    engine->globalObject().setProperty("ItemGroupCluster", widget, QScriptValue::ReadOnly | QScriptValue::Undeletable);
}