bool WindowsFilesystemNode::create(bool isDirectory) { bool success; if (isDirectory) { success = CreateDirectory(toUnicode(_path.c_str()), NULL) != 0; } else { success = CreateFile(toUnicode(_path.c_str()), GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) != INVALID_HANDLE_VALUE; } if (success) { //this piece is copied from constructor, it checks that file exists and detects whether it's a directory DWORD fileAttribs = GetFileAttributes(toUnicode(_path.c_str())); if (fileAttribs != INVALID_FILE_ATTRIBUTES) { _isDirectory = ((fileAttribs & FILE_ATTRIBUTE_DIRECTORY) != 0); _isValid = true; // Add a trailing slash, if necessary. if (_isDirectory && _path.lastChar() != '\\') { _path += '\\'; } if (_isDirectory != isDirectory) warning("failed to create %s: got %s", isDirectory ? "directory" : "file", _isDirectory ? "directory" : "file"); return _isDirectory == isDirectory; } warning("WindowsFilesystemNode: Create%s() was a success, but GetFileAttributes() indicates there is no such %s", isDirectory ? "Directory" : "File", isDirectory ? "directory" : "file"); return false; } return false; }
void QueryResultsNode::doRemove(INodeView *view, const QModelIndex &index, QueryResultValueItem *value) { if (m_container.transaction()) { QueryResultPropertyItem *property = static_cast<QueryResultPropertyItem*>(value->parent()); if (m_container.removeValue(static_cast<QueryResultRootItem *>(property->parent())->value(), value->value())) if (m_container.commit()) { beginRemoveRows(Model::parent(index), index.row(), index.row()); property->remove(index.row()); endRemoveRows(); } else { QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); m_container.rollback(); } else { QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); m_container.rollback(); } } else { QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); m_container.rollback(); } }
void ListEntityDialog::removeEntity(const QModelIndex &index) { if (m_container->transaction()) { if (QMessageBox::question(this, tr("Remove entity"), tr("Do you really want to remove entity \"%1\"?"). arg(toUnicode(static_cast<EntitiesTreeItem *>(index.internalPointer())->entity().name())), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) if (m_container->removeEntity(static_cast<EntitiesTreeItem *>(index.internalPointer())->entity())) if (m_container->commit()) m_model.remove(index); else { m_container->rollback(); QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); } else { m_container->rollback(); QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); } } else QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); }
void QueryResultsNode::performRemove(const BaseTask::Event *e) { typedef const PerformRemoveTask::Event *Event; QueryResultPropertyItem::size_type idx; Event event = static_cast<Event>(e); QueryResultPropertyItem *property; QModelIndex modelIdx; if (m_container.transaction()) { bool ok = true; for (Snapshot::const_iterator i = event->snapshot.begin(), end = event->snapshot.end(); i != end; ++i) if ((*i).second == NULL || (*i).second->isRemoved()) { property = static_cast<QueryResultPropertyItem *>((*i).first->parent()); if (m_container.removeValue(static_cast<QueryResultRootItem *>(property->parent())->value(), (*i).first.as<QueryResultRootPathValueItem>()->value())) { idx = property->indexOf((*i).first.data()); beginRemoveRows(index(property), idx, idx); property->remove(idx); endRemoveRows(); } else { QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); m_container.rollback(); ok = false; break; } } if (ok) if (!m_container.commit()) { QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); m_container.rollback(); } } else QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); for (Snapshot::const_iterator i = event->snapshot.begin(), end = event->snapshot.end(); i != end; ++i) if ((*i).second && !(*i).second->isRemoved()) { (*i).first.as<QueryResultValueItem>()->unlock(); modelIdx = index((*i).first.data()); emit dataChanged(modelIdx, modelIdx); } removeAllTaskLinks(event->task); }
void ListEntityDialog::createEntity() { CreateEntityDialog dialog(m_container, QString(), this); if (dialog.exec() == CreateEntityDialog::Accepted) { if (m_container->transaction()) { Entity entity(m_container->createEntity(dialog.type(), dialog.name(), dialog.title())); if (entity.isValid()) if (entity.type() == Entity::Composite) { bool ok = true; for (CreateEntityDialog::size_type i = 0, size = dialog.size(); i < size; ++i) if (!m_container->addProperty(entity, dialog.property(i), dialog.propertyName(i))) { ok = false; QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); break; } if (ok) if (m_container->commit()) m_model.add(entity); else { m_container->rollback(); QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); } } else if (m_container->commit()) m_model.add(entity); else { m_container->rollback(); QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); } else { m_container->rollback(); QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); } } else QMessageBox::critical(this, tr("Error"), toUnicode(m_container->lastError())); } }
void BrowserNode::update_stereotype(bool rec) { BasicData * data = get_data(); if (data != 0) { const char * stereotype = data->get_stereotype(); if (show_stereotypes && stereotype[0]) { QString s = toUnicode(stereotype); int index = s.find(':'); setText(0, "<<" + ((index == -1) ? s : s.mid(index + 1)) + ">> " + name); } else setText(0, (const char *) name); } if (rec) { Q3ListViewItem * child; for (child = firstChild(); child != 0; child = child->nextSibling()) ((BrowserNode *) child)->update_stereotype(TRUE); } }
QVariant CompositeValuePropertyItem::data(qint32 column, qint32 role) const { if (role == Qt::DisplayRole) return toUnicode(m_property.name); else return QVariant(); }
void TextCanvas::open() { static QSize sz; // warning : 'note' is already unicode QString s = fromUnicode(text); bool created = s.isEmpty(); MLEDialog::get(s, QCursor::pos(), sz); if (s.isEmpty()) delete_it(); else { text = toUnicode(s); if (created) { QFontMetrics fm(the_canvas()->get_font(UmlNormalFont)); QSize sz = fm.size(0, text); DiagramCanvas::resize(sz.width(), sz.height()); } // force son reaffichage hide(); show(); } canvas()->update(); package_modified(); }
int DeploymentNodeCanvas::min_width() { QFontMetrics fm(the_canvas()->get_font(UmlNormalFont)); int wi; if (horiz) wi = fm.width(iname + ":" + browser_node->get_name()); else { wi = fm.width(browser_node->get_name()); int iw = fm.width(iname + ":"); if (iw > wi) wi = iw; } const char * st = browser_node->get_data()->get_short_stereotype(); if (st[0]) { int stw = fm.width(QString("<<") + toUnicode(st) + ">>"); if (wi < stw) wi = stw; } wi += (int) ((DEPLOYMENTNODE_CANVAS_ADDED + 8) * the_canvas()->zoom()); int min_w = (int) (DEPLOYMENTNODE_CANVAS_MIN_SIZE * the_canvas()->zoom()); return (wi < min_w) ? min_w : wi; }
void XmlElement::setText(const string& text) { assert(doc != NULL && "Attempt to create text on a root node"); DOMNode* first = base->getFirstChild(); bool found = false; while(first && !found) { if (first->getNodeType() == 3) { first->setTextContent(toUnicode(text)); found = true; } first = first->getPreviousSibling(); } if (!found) { DOMText* textNode = doc->createTextNode(toUnicode(text)); base->appendChild(textNode); } }
SubjectCanvas * SubjectCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "subject_ref")) return (SubjectCanvas *) dict_get(read_id(st), "subject", canvas); else if (!strcmp(k, "subject")) { int id = read_id(st); SubjectCanvas * result = new SubjectCanvas(canvas, 0, 0, id); result->name = toUnicode(read_string(st)); k = read_keyword(st); read_color(st, "color", result->itscolor, k); if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); read_xyzwh(st, result); result->check_size(); result->width_scale100 = result->width(); result->height_scale100 = result->height(); result->set_center100(); result->show(); return result; } else return 0; }
void CsvIm::loadFile() { QString text = ""; QByteArray rawText; if (loadRawText(filename, rawText)) text = toUnicode(rawText); QStringList lines = text.split("\n", QString::SkipEmptyParts); uint i; if (hasHeader) { colIndex = 0; parseLine(lines[0], true); header += "\n"; colCount = colIndex; i = 1; ++rowNumber; } else i = 0; for (int i2 = i; i2 < lines.size(); ++i2) { colIndex = 0; parseLine(lines[i2], false); data += "\n"; ++rowNumber; if (colCount < colIndex) colCount = colIndex; } }
WindowsFilesystemNode::WindowsFilesystemNode(const Common::String &p, const bool currentDir) { if (currentDir) { char path[MAX_PATH]; GetCurrentDirectory(MAX_PATH, path); _path = path; } else { assert(p.size() > 0); _path = p; } _displayName = lastPathComponent(_path, '\\'); // Check whether it is a directory, and whether the file actually exists DWORD fileAttribs = GetFileAttributes(toUnicode(_path.c_str())); if (fileAttribs == INVALID_FILE_ATTRIBUTES) { _isDirectory = false; _isValid = false; } else { _isDirectory = ((fileAttribs & FILE_ATTRIBUTE_DIRECTORY) != 0); _isValid = true; // Add a trailing slash, if necessary. if (_isDirectory && _path.lastChar() != '\\') { _path += '\\'; } } _isPseudoRoot = false; }
string ustring::toUTF8() { WCHAR* unicodedata = toUnicode(); string retval = unicode_to_utf8(unicodedata, m_vData.size()*2); Game_SAFE_DELETE_ARRAY(unicodedata); return retval; }
void QueryResultsNode::create(const QModelIndex &index, INodeView *view) { if (static_cast<QueryResultItem *>(index.internalPointer())->isProperty()) { QueryResultPropertyItem *item = static_cast<QueryResultPropertyItem *>(index.internalPointer()); if (m_container.transaction()) { EntityValueReader reader(m_container.entityValues(item->property().entity)); SelectableValueListDialog dialog(m_container, reader, Application::mainWindow()); if (dialog.exec() == SelectableValueListDialog::Accepted) { EntityValue value = dialog.takeValue(); if (m_container.addValue(static_cast<QueryResultRootItem *>(item->parent())->value(), value)) if (m_container.commit()) // if (item->property().entity.type() == Database::Path) // { // beginInsertRows(index, item->size(), item->size()); // static_cast<QueryResultPathPropertyItem *>(item)->add(m_container.container(), value); // endInsertRows(); // } // else { beginInsertRows(index, item->size(), item->size()); item->add(value); endInsertRows(); } else { QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); m_container.rollback(); } else { QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); m_container.rollback(); } } else m_container.rollback(); } else QMessageBox::critical(Application::mainWindow(), tr("Error"), toUnicode(m_container.lastError())); } }
void UseCaseData::read(char * & st, char * & k) { if (!strcmp(k, "extension_points")) { extension_points = toUnicode(read_string(st)); k = read_keyword(st); } BasicData::read(st, k); // updates k }
QVariant QueryConstraintsModel::data(BaseConstraint *item, int column, int role) const { switch (column) { case 0: { if (role == Qt::DisplayRole) if (item->isGroup()) switch (static_cast<GroupConstraint *>(item)->type()) { case LiquidDb::GroupConstraint::And: return m_andTypeLabel; case LiquidDb::GroupConstraint::Or: return m_orTypeLabel; } else return QString::fromLatin1("%1 %2 \"%3\""). arg(toUnicode(static_cast<ValueConstraint *>(item)->property().name)). arg(toUnicode(Constraint::operatorToString(static_cast<ValueConstraint*>(item)->op()))). arg(toUnicode(static_cast<ValueConstraint *>(item)->value().value().asString())); break; } case 1: { if (item->isGroup()) switch (role) { case Qt::DisplayRole: return toUnicode(LiquidDb::GroupConstraint::operatorToString(static_cast<GroupConstraint *>(item)->type())); case Qt::TextAlignmentRole: return Qt::AlignCenter; } break; } default: break; } return QVariant(); }
String StringUtils::toUnicode(const uint8_t* utf8, int32_t length) { if (length == 0) return L""; CharArray unicode(CharArray::newInstance(length)); int32_t result = toUnicode(utf8, length, unicode); return String(unicode.get(), result); }
EntityValueDialog::EntityValueDialog(const Interface::Adaptor<IStorage> &storage, const EntityValue &value, const ValueModel::Files &files, QWidget *parent) : NestedPlainDialog(parent), m_handler(this), m_mainWidget(storage, value, files, &m_handler, this) { init(toQRect(storage->editorGeometry(m_mainWidget.entity()))); setWindowTitle(tr("Editing value of \"%1\"").arg(toUnicode(m_mainWidget.entity().name()))); }
EntityValueDialog::EntityValueDialog(const Interface::Adaptor<IStorage> &storage, const EntityValueReader &reader, QWidget *parent) : NestedPlainDialog(parent), m_handler(this), m_mainWidget(storage, reader, &m_handler, this) { init(toQRect(storage->listGeometry(m_mainWidget.entity()))); setWindowTitle(tr("Values of \"%1\"").arg(toUnicode(m_mainWidget.entity().name()))); }
static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, const embeddedDriverPrivate* p) { const char *cerr = p->mysql ? mysql_error(p->mysql) : 0; return QSqlError(QLatin1String("embedded: ") + err, p->tc ? toUnicode(p->tc, cerr) : QString::fromLatin1(cerr), type, mysql_errno(p->mysql)); }
void InfoCanvas::set(QString s) { s = toUnicode(s); if (s != note) { note = s; modified(); } }
ConstraintTable::ConstraintTable(QWidget * parent, ConstraintCanvas * c) : Q3Table(c->elements.count(), 4, parent) { setSorting(true); setSelectionMode(NoSelection); setRowMovingEnabled(FALSE); horizontalHeader()->setLabel(0, TR("visible")); horizontalHeader()->setLabel(1, " "); horizontalHeader()->setLabel(2, TR("element")); horizontalHeader()->setLabel(3, TR("constraint")); setColumnStretchable(0, FALSE); setColumnStretchable(1, FALSE); int row; bool v = c->indicate_visible; Q3ValueList<BrowserNode *> & hv = c->hidden_visible; BrowserNodeList & elts = c->elements; BrowserNode * bn; QString yes = TR(" yes"); QString empty; elts.sort(); for (bn = elts.first(), row = 0; bn != 0; bn = elts.next(), row += 1) { if ((v) ? hv.findIndex(bn) != -1 : hv.findIndex(bn) == -1) setText(row, 0, yes); setPixmap(row, 1, *(bn->pixmap(0))); TableItem * ti; ti = new TableItem(this, Q3TableItem::Never, bn->full_name(TRUE)); ti->setReplaceable(FALSE); setItem(row, 2, ti); QString s = toUnicode(bn->constraint()); int n = s.count('\n'); ti = new TableItem(this, Q3TableItem::Never, s); ti->setReplaceable(FALSE); setItem(row, 3, ti); if (n != 0) { // note : adjustRow(row) does nothing setRowHeight(row, rowHeight(row) * (n + 1)); } } adjustColumn(0); adjustColumn(1); setColumnStretchable(2, TRUE); setColumnStretchable(3, TRUE); connect(this, SIGNAL(pressed(int, int, int, const QPoint &)), this, SLOT(button_pressed(int, int, int, const QPoint &))); }
void ArtifactCanvas::compute_size() { used_color = (itscolor == UmlDefaultColor) ? the_canvas()->browser_diagram()->get_color(UmlArtifact) : itscolor; const BasicData * data = browser_node->get_data(); QFontMetrics fm(the_canvas()->get_font(UmlNormalBoldFont)); int he; int wi; const QPixmap * px = ProfiledStereotypes::diagramPixmap(data->get_stereotype(), the_canvas()->zoom()); if (px != 0) { wi = fm.width(browser_node->get_name()); if (wi < px->width()) wi = px->width(); he = px->height() + fm.height(); } else { // <<artifact>>/stereotype on 2*font_height with the icon on the right // the icon height = 2*font_height // the icon width = 3*height/4 // name on font_height+4 points const int four = (int) (4 * the_canvas()->zoom()); int stw = fm.width((data->get_stereotype()[0]) ? (QString("<<") + toUnicode(data->get_short_stereotype()) + ">>") : QString("<<artifact>>")) + 3*fm.height(); he = 3*fm.height() + four; wi = fm.width(browser_node->get_name()); if (wi < stw) wi = stw; wi += four*2; int min_w = (int) (ARTIFACT_CANVAS_MIN_SIZE * the_canvas()->zoom()); if (wi <min_w) wi = min_w; if (used_color != UmlTransparent) { const int shadow = the_canvas()->shadow(); wi += shadow; he += shadow; } } // force odd width and height for line alignment DiagramCanvas::resize(wi | 1, he | 1); }
bool FileItem::refresh(const Interface::Adaptor<IStorage> &storage) { if (!m_file.isValid()) { m_file = storage->file()->as<IDirectory>()->entry(value().value().asString()); if (m_file.isValid()) { m_name = toUnicode(m_file->as<IEntry>()->title()); m_icon.addFile(toUnicode(m_file->as<IEntry>()->type()->icon()->as<IEntry>()->location()), QSize(16, 16)); m_toolTip = toUnicode(m_file->as<IEntry>()->type()->name()); return true; } } return false; }
void ComponentDialog::init_uml_tab() { bool visit = !hasOkButton(); BrowserComponent * bn = (BrowserComponent *) data->get_browser_node(); VVBox * vbox; GridBox * grid = new GridBox(2, this); umltab = grid; grid->setMargin(5); grid->setSpacing(5); grid->addWidget(new QLabel(tr("name : "), grid)); grid->addWidget(edname = new LineEdit(bn->get_name(), grid)); edname->setReadOnly(visit); grid->addWidget(new QLabel(tr("stereotype : "), grid)); grid->addWidget(edstereotype = new QComboBox(grid)); edstereotype->setEditable(true); edstereotype->addItem(toUnicode(data->get_stereotype())); if (! visit) { edstereotype->addItems(BrowserComponent::default_stereotypes()); edstereotype->addItems(ProfiledStereotypes::defaults(UmlComponent)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentIndex(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorizontalPolicy(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); grid->addWidget(vbox = new VVBox(grid)); vbox->addWidget(new QLabel(tr("description :"), vbox)); if (! visit) { SmallPushButton* sButton; connect(sButton = new SmallPushButton(tr("Editor"), vbox), SIGNAL(clicked()), this, SLOT(edit_description())); vbox->addWidget(sButton); } grid->addWidget(comment = new MultiLineEdit(grid)); comment->setReadOnly(visit); comment->setText(bn->get_comment()); QFont font = comment->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); comment->setFont(font); addTab(grid, "Uml"); }
void SubjectCanvas::open() { BooL ok; QString s = MyInputDialog::getText(TR("Subject dialog"), TR("subject : "), fromUnicode(name), ok); if (ok) { name = toUnicode(s); modified(); } }
void KeyValuesTable::remove(const char * key) { QString ks = toUnicode(key); int index; for (index = 0; index != numRows(); index += 1) { if (text(index, 0) == ks) { delete_row(index); break; } } }
static QSqlField qToField(MYSQL_FIELD *field, QTextCodec *tc) { QSqlField f(toUnicode(tc, field->name), qDecodeMYSQLType(int(field->type), field->flags)); f.setRequired(IS_NOT_NULL(field->flags)); f.setLength(field->length); f.setPrecision(field->decimals); f.setSqlType(field->type); f.setAutoValue(field->flags & AUTO_INCREMENT_FLAG); return f; }
virtual VoidFunc findSymbol(const char *symbol) { #ifndef _WIN32_WCE FARPROC func = GetProcAddress((HMODULE)_dlHandle, symbol); #else FARPROC func = GetProcAddress((HMODULE)_dlHandle, toUnicode(symbol)); #endif if (!func) debug("Failed loading symbol '%s' from plugin '%s'", symbol, _filename.c_str()); return (void (*)())func; }