DocumentationText::DocumentationText(QWidget *parent) : QTextEdit(parent) { setReadOnly(true); setAcceptRichText(true); }
void WTextEdit::propagateSetEnabled(bool enabled) { WTextArea::propagateSetEnabled(enabled); setReadOnly(!enabled); }
void Palette::setSystemPalette(bool val) { _systemPalette = val; if (val) setReadOnly(true); }
void *MsgViewBase::processEvent(Event *e) { if (e->type() == EventRewriteMessage){ Message *msg = (Message*)(e->param()); if (msg->contact() != m_id) return NULL; unsigned i; for (i = 0; i < (unsigned)paragraphs(); i++){ QString s = text(i); int n = s.find(MSG_ANCHOR); if (n < 0) continue; s = s.mid(n + strlen(MSG_ANCHOR)); n = s.find("\""); if (n < 0) continue; string client; if ((messageId(s.left(n), client) == msg->id()) && (client == msg->client())) break; } if (i >= (unsigned)paragraphs()) return NULL; reload(); return NULL; } if (e->type() == EventCutHistory){ CutHistory *ch = (CutHistory*)(e->param()); if (ch->contact != m_id) return NULL; bool bDelete = false; vector<unsigned> start_pos; vector<unsigned> end_pos; for (unsigned i = 0; i < (unsigned)paragraphs(); i++){ QString s = text(i); int n = s.find(MSG_ANCHOR); if (n < 0) continue; s = s.mid(n + strlen(MSG_ANCHOR)); n = s.find("\""); if (n < 0) continue; string client; unsigned id = messageId(s.left(n), client); log(L_DEBUG, "> %u %u %s - %u %u %u", i, id, client.c_str(), ch->from, ch->size, ch->from + ch->size); if ((client == ch->client) && (id >= ch->from) && (id < ch->from + ch->size)){ log(L_DEBUG, "Delete!"); if (!bDelete){ bDelete = true; start_pos.push_back(i); } }else{ if (bDelete){ bDelete = false; end_pos.push_back(i); } } } if (bDelete) end_pos.push_back(paragraphs()); if (start_pos.size()){ int paraFrom, indexFrom; int paraTo, indexTo; getSelection(¶From, &indexFrom, ¶To, &indexTo); QPoint p = QPoint(0, 0); p = mapToGlobal(p); p = viewport()->mapFromGlobal(p); int x, y; viewportToContents(p.x(), p.y(), x, y); int para; int pos = charAt(QPoint(x, y), ¶); setReadOnly(false); for (unsigned i = 0; i < start_pos.size(); i++){ setSelection(start_pos[i], 0, end_pos[i], 0); removeSelectedText(); if ((unsigned)pos >= start_pos[i]) pos = end_pos[i] - start_pos[i]; } if ((paraFrom == -1) && (paraTo == -1)){ if (pos == -1){ scrollToBottom(); }else{ setCursorPosition(para, pos); ensureCursorVisible(); } }else{ setSelection(paraFrom, indexFrom, paraTo, indexTo); } setReadOnly(true); repaint(); } m_cut.push_back(*ch); return NULL; } if (e->type() == EventMessageDeleted){ Message *msg = (Message*)(e->param()); if (msg->contact() != m_id) return NULL; for (unsigned i = 0; i < (unsigned)paragraphs(); i++){ QString s = text(i); int n = s.find(MSG_ANCHOR); if (n < 0) continue; s = s.mid(n + strlen(MSG_ANCHOR)); n = s.find("\""); if (n < 0) continue; string client; if ((messageId(s.left(n), client) != msg->id()) || (client != msg->client())) continue; unsigned j; for (j = i + 1; j < (unsigned)paragraphs(); j++){ QString s = text(j); if (s.find(MSG_ANCHOR) >= 0) break; } int paraFrom, indexFrom; int paraTo, indexTo; getSelection(¶From, &indexFrom, ¶To, &indexTo); setSelection(i, 0, j - 1, 0xFFFF); setReadOnly(false); removeSelectedText(); setReadOnly(true); if ((paraFrom == -1) && (paraTo == -1)){ scrollToBottom(); }else{ setSelection(paraFrom, indexFrom, paraTo, indexTo); } break; } return NULL; } if (e->type() == EventMessageRead){ Message *msg = (Message*)(e->param()); if (msg->contact() != m_id) return NULL; for (unsigned i = 0; i < (unsigned)paragraphs(); i++){ QString s = text(i); int n = s.find(MSG_ANCHOR); if (n < 0) continue; s = s.mid(n + strlen(MSG_ANCHOR)); n = s.find("\""); if (n < 0) continue; string client; if ((messageId(s.left(n), client) != msg->id()) || (client != msg->client())) continue; int paraFrom, indexFrom; int paraTo, indexTo; getSelection(¶From, &indexFrom, ¶To, &indexTo); setSelection(i, 0, i, 0xFFFF); setBold(false); if ((paraFrom == -1) && (paraTo == -1)){ removeSelection(); scrollToBottom(); }else{ setSelection(paraFrom, indexFrom, paraTo, indexTo); } break; } return NULL; } if (e->type() == EventHistoryConfig){ unsigned id = (unsigned)(e->param()); if (id && (id != m_id)) return NULL; reload(); } if (e->type() == EventHistoryColors) setColors(); if (e->type() == EventCheckState){ CommandDef *cmd = (CommandDef*)(e->param()); if ((cmd->param != this) || (cmd->menu_id != MenuMsgView)) return NULL; Message *msg; switch (cmd->id){ case CmdCopy: cmd->flags &= ~(COMMAND_DISABLED | COMMAND_CHECKED); if (!hasSelectedText()) cmd->flags |= COMMAND_DISABLED; return e->param(); case CmdMsgOpen: msg = currentMessage(); if (msg){ unsigned type = msg->baseType(); delete msg; CommandDef *def = CorePlugin::m_plugin->messageTypes.find(type); if (def == NULL) return NULL; cmd->icon = def->icon; cmd->flags &= ~COMMAND_CHECKED; return e->param(); } return NULL; case CmdMsgSpecial: msg = currentMessage(); if (msg){ Event eMenu(EventGetMenuDef, (void*)MenuMsgCommand); CommandsDef *cmdsMsg = (CommandsDef*)(eMenu.process()); unsigned n = 0; MessageDef *mdef = NULL; unsigned type = msg->baseType(); const CommandDef *cmdsSpecial = NULL; CommandDef *msgCmd = CorePlugin::m_plugin->messageTypes.find(type); if (msgCmd) mdef = (MessageDef*)(msgCmd->param); if (mdef){ if (msg->getFlags() & MESSAGE_RECEIVED){ cmdsSpecial = mdef->cmdReceived; }else{ cmdsSpecial = mdef->cmdSent; } if (cmdsSpecial) for (const CommandDef *d = cmdsSpecial; d->text; d++) n++; } { CommandsList it(*cmdsMsg, true); while (++it) n++; } if (n == 0) return NULL; n++; CommandDef *cmds = new CommandDef[n]; memset(cmds, 0, sizeof(CommandDef) * n); n = 0; if (cmdsSpecial){ for (const CommandDef *d = cmdsSpecial; d->text; d++){ cmds[n] = *d; cmds[n].id = CmdMsgSpecial + n; n++; } } CommandDef *c; CommandsList it(*cmdsMsg, true); while ((c = ++it) != NULL){ CommandDef cmd = *c; cmd.menu_id = MenuMsgCommand; cmd.param = msg; Event e(EventCheckState, &cmd); if (!e.process()) continue; cmd.flags &= ~COMMAND_CHECK_STATE; cmds[n++] = cmd; } cmd->param = cmds; cmd->flags |= COMMAND_RECURSIVE; delete msg; return e->param(); } return NULL; } } if (e->type() == EventCommandExec){ CommandDef *cmd = (CommandDef*)(e->param()); if ((cmd->param != this) || (cmd->menu_id != MenuMsgView)) return NULL; Message *msg; switch (cmd->id){ case CmdCutHistory: msg = currentMessage(); if (msg){ History::cut(msg, 0, 0); delete msg; return e->param(); } return NULL; case CmdDeleteMessage: msg = currentMessage(); if (msg){ History::del(msg); delete msg; return e->param(); } return NULL; case CmdCopy: copy(); return e->param(); case CmdMsgOpen: msg = currentMessage(); if (msg){ msg->setFlags(msg->getFlags() | MESSAGE_OPEN); Event eOpen(EventOpenMessage, msg); eOpen.process(); delete msg; return e->param(); } return NULL; default: msg = currentMessage(); if (msg){ if (cmd->id >= CmdMsgSpecial){ MessageDef *mdef = NULL; unsigned type = msg->baseType(); CommandDef *msgCmd = CorePlugin::m_plugin->messageTypes.find(type); if (msgCmd) mdef = (MessageDef*)(msgCmd->param); const CommandDef *cmds = NULL; if (mdef){ if (msg->getFlags() & MESSAGE_RECEIVED){ cmds = mdef->cmdReceived; }else{ cmds = mdef->cmdSent; } } if (cmds){ unsigned n = cmd->id - CmdMsgSpecial; for (const CommandDef *d = cmds; d->text; d++){ if (n-- == 0){ CommandDef cmd = *d; cmd.param = msg; Event eCmd(EventCommandExec, &cmd); eCmd.process(); return e->param(); } } } } Command c; c->id = cmd->id; c->menu_id = MenuMsgCommand; c->param = msg; Event e(EventCommandExec, c); void *res = e.process(); delete msg; return res; } return NULL; } } return NULL; }
QErrorMessageTextView(QWidget *parent) : QTextEdit(parent) { setReadOnly(true); }
OutputView::OutputView(QWidget *parent) : KTextEdit(parent) { setReadOnly(true); setAcceptRichText(false); }
virtual void OnOpenWrite() { if (isReadOnly()) setReadOnly(false); }
void ItemCluster::setEnabled(const bool pEnabled) { setReadOnly(!pEnabled); }
void ItemCluster::setDisabled(bool pDisabled) { setReadOnly(pDisabled); }
KexiProjectNavigator::KexiProjectNavigator(QWidget* parent, Features features) : QWidget(parent) , d(new Private(features)) { d->actions = new KActionCollection(this); setObjectName("KexiProjectNavigator"); setWindowTitle(i18n("Project Navigator")); setWindowIcon(KexiMainWindowIface::global()->thisWidget()->windowIcon()); QVBoxLayout *lyr = new QVBoxLayout(this); lyr->setContentsMargins( KDialog::marginHint() / 2, KDialog::marginHint() / 2, KDialog::marginHint() / 2, KDialog::marginHint() / 2); lyr->setSpacing(KDialog::marginHint() / 2); KexiFlowLayout *buttons_flyr = new KexiFlowLayout(lyr); d->list = new KexiProjectTreeView(this); d->model = new KexiProjectModel(); d->list->setModel(d->model); KexiProjectItemDelegate *delegate = new KexiProjectItemDelegate(d->list); d->list->setItemDelegate(delegate); lyr->addWidget(d->list); connect(KGlobalSettings::self(), SIGNAL(settingsChanged(int)), SLOT(slotSettingsChanged(int))); slotSettingsChanged(0); d->list->header()->hide(); d->list->setAllColumnsShowFocus(true); d->list->setAlternatingRowColors(true); connect(d->list, SIGNAL(pressed(QModelIndex)), this,SLOT(slotSelectionChanged(QModelIndex))); KConfigGroup mainWindowGroup = KGlobal::config()->group("MainWindow"); if ((d->features & SingleClickOpensItemOptionEnabled) && mainWindowGroup.readEntry("SingleClickOpensItem", false)) { connect(d->list, SIGNAL(activate(QModelIndex)), this, SLOT(slotExecuteItem(QModelIndex))); } else { connect(d->list, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(slotExecuteItem(QModelIndex))); } // actions d->openAction = addAction("open_object", koIcon("document-open"), i18n("&Open"), i18n("Open object"), i18n("Opens object selected in the list."), SLOT(slotOpenObject())); KexiSmallToolButton *btn; if (d->features & Toolbar) { btn = new KexiSmallToolButton(d->openAction, this); buttons_flyr->addWidget(btn); } if (KexiMainWindowIface::global() && KexiMainWindowIface::global()->userMode()) { //! @todo some of these actions can be supported once we deliver ACLs... d->deleteAction = 0; d->renameAction = 0; d->designAction = 0; d->editTextAction = 0; d->newObjectAction = 0; } else { d->deleteAction = addAction("edit_delete", koIcon("edit-delete"), i18n("&Delete..."), i18n("Delete object"), i18n("Deletes the object selected in the list."), SLOT(slotRemove())); d->renameAction = addAction("edit_rename", koIcon("edit-rename"), i18n("&Rename..."), i18n("Rename object"), i18n("Renames the object selected in the list."), SLOT(slotRename())); //! @todo enable, doesn't work now: d->renameAction->setShortcut(KShortcut(Qt::Key_F2)); #ifdef KEXI_SHOW_UNIMPLEMENTED //! @todo plugSharedAction("edit_cut",SLOT(slotCut())); //! @todo plugSharedAction("edit_copy",SLOT(slotCopy())); //! @todo plugSharedAction("edit_paste",SLOT(slotPaste())); #endif d->designAction = addAction("design_object", koIcon("document-properties"), i18n("&Design"), i18n("Design object"), i18n("Starts designing of the object selected in the list."), SLOT(slotDesignObject())); if (d->features & Toolbar) { btn = new KexiSmallToolButton(d->designAction, this); buttons_flyr->addWidget(btn); } d->editTextAction = addAction("editText_object", KIcon(), i18n("Design in &Text View"), i18n("Design object in text view"), i18n("Starts designing of the object in the list in text view."), SLOT(slotEditTextObject())); d->newObjectAction = addAction("new_object", koIcon("document-new"), QString(),QString(), QString(), SLOT(slotNewObject())); if (d->features & Toolbar) { d->deleteObjectToolButton = new KexiSmallToolButton(d->deleteAction, this); buttons_flyr->addWidget(d->deleteObjectToolButton); } } d->executeAction = addAction("data_execute", koIcon("system-run"), i18n("Execute"), //! @todo tooltip, what's this QString(), QString(), SLOT(slotExecuteObject())); d->actions->addAction("export_object", d->exportActionMenu = new KActionMenu(i18n("Export"), this)); d->dataExportToClipboardAction = addAction("exportToClipboardAsDataTable", koIcon("edit-copy"), i18nc("Export->To Clipboard as Data... ", "To &Clipboard..."), i18n("Export data to clipboard"), i18n("Exports data from the currently selected table or query to clipboard."), SLOT(slotExportToClipboardAsDataTable())); d->exportActionMenu->addAction(d->dataExportToClipboardAction); d->dataExportToFileAction = addAction("exportToFileAsDataTable", koIcon("table"), i18nc("Export->To File As Data &Table... ", "To &File As Data Table..."), i18n("Export data to a file"), i18n("Exports data from the currently selected table or query to a file."), SLOT(slotExportToFileAsDataTable())); d->exportActionMenu->addAction(d->dataExportToFileAction); #ifndef KEXI_NO_QUICK_PRINTING d->printAction = addAction("print_object", koIcon("document-print"), i18n("&Print..."), i18n("Print data"), i18n("Prints data from the currently selected table or query."), SLOT(slotPrintObject())); d->pageSetupAction = addAction("pageSetupForObject", koIconWanted("not yet in Oxygen 4.3", "document-page-setup"), i18n("Page Setup..."), i18n("Page setup for data"), i18n("Shows page setup for printing the active table or query."), SLOT(slotPageSetupForObject())); #endif if (KexiMainWindowIface::global() && KexiMainWindowIface::global()->userMode()) { //! @todo some of these actions can be supported once we deliver ACLs... d->partMenu = 0; } else { d->partMenu = new KexiGroupMenu(this, d->actions); } if (d->features & ContextMenus) { d->itemMenu = new KexiItemMenu(this, d->actions); } else { d->itemMenu = 0; } if (!(d->features & Writable)) { setReadOnly(true); } slotSelectionChanged(QModelIndex()); }
TextShow::TextShow(QWidget *p, const char *name) : QTextBrowser(p, name) { setTextFormat(RichText); setReadOnly(true); }
VMdEditor::VMdEditor(VFile *p_file, VDocument *p_doc, MarkdownConverterType p_type, QWidget *p_parent) : VTextEdit(p_parent), VEditor(p_file, this), m_mdHighlighter(NULL), m_freshEdit(true), m_textToHtmlDialog(NULL), m_zoomDelta(0) { Q_ASSERT(p_file->getDocType() == DocType::Markdown); VEditor::init(); // Hook functions from VEditor. connect(this, &VTextEdit::cursorPositionChanged, this, [this]() { highlightOnCursorPositionChanged(); }); connect(this, &VTextEdit::selectionChanged, this, [this]() { highlightSelectedWord(); }); // End. setReadOnly(true); m_mdHighlighter = new HGMarkdownHighlighter(g_config->getMdHighlightingStyles(), g_config->getCodeBlockStyles(), g_config->getMarkdownHighlightInterval(), document()); connect(m_mdHighlighter, &HGMarkdownHighlighter::headersUpdated, this, &VMdEditor::updateHeaders); // After highlight, the cursor may trun into non-visible. We should make it visible // in this case. connect(m_mdHighlighter, &HGMarkdownHighlighter::highlightCompleted, this, [this]() { makeBlockVisible(textCursor().block()); if (m_freshEdit) { m_freshEdit = false; emit m_object->ready(); } }); m_cbHighlighter = new VCodeBlockHighlightHelper(m_mdHighlighter, p_doc, p_type); m_previewMgr = new VPreviewManager(this, m_mdHighlighter); connect(m_mdHighlighter, &HGMarkdownHighlighter::imageLinksUpdated, m_previewMgr, &VPreviewManager::imageLinksUpdated); connect(m_previewMgr, &VPreviewManager::requestUpdateImageLinks, m_mdHighlighter, &HGMarkdownHighlighter::updateHighlight); m_editOps = new VMdEditOperations(this, m_file); connect(m_editOps, &VEditOperations::statusMessage, m_object, &VEditorObject::statusMessage); connect(m_editOps, &VEditOperations::vimStatusUpdated, m_object, &VEditorObject::vimStatusUpdated); connect(this, &VTextEdit::cursorPositionChanged, this, &VMdEditor::updateCurrentHeader); updateFontAndPalette(); updateConfig(); }
ClientLogBox::ClientLogBox(QWidget *parent) : QTextEdit(parent) { setReadOnly(true); }
TextEdit::TextEdit(QWidget *parent) : QTextEdit(parent) { setReadOnly(true); }
OutputWidget::OutputWidget( QWidget *parent ) : QTextEdit( parent ) { setWordWrapMode( QTextOption::NoWrap ); setReadOnly( true ); setAcceptRichText( true ); }
TChatMessageEdit::TChatMessageEdit() { setReadOnly(false); }