21 import org.kde.plasma.core 0.1 as PlasmaCore
 
   22 import "private" as Private
 
   37     property alias font: textEdit.font
 
   44     property int inputMethodHints
 
   53     property bool errorHighlight
 
   59     property alias cursorPosition: textEdit.cursorPosition
 
   77     property alias horizontalAlignment: textEdit.horizontalAlignment
 
   90     property alias verticalAlignment: textEdit.verticalAlignment
 
   99     property alias readOnly: textEdit.readOnly
 
  108     property alias selectedText: textEdit.selectedText
 
  116     property alias selectionEnd: textEdit.selectionEnd
 
  124     property alias selectionStart: textEdit.selectionStart
 
  131     property alias text: textEdit.text
 
  149     property alias textFormat: textEdit.textFormat
 
  171     property alias wrapMode: textEdit.wrapMode
 
  178     property string placeholderText
 
  213     function select(start, end) {
 
  214         textEdit.select(start, end);
 
  220     function selectAll() {
 
  221         textEdit.selectAll();
 
  227     function selectWord() {
 
  228         textEdit.selectWord();
 
  246     function positionAt(pos) {
 
  247         return textEdit.positionAt(pos);
 
  259     function positionToRectangle(pos) {
 
  260         return textEdit.positionToRectangle(pos);
 
  271     property alias interactive: flickArea.interactive
 
  277     property alias contentMaxWidth: textEdit.width
 
  283     property alias contentMaxHeight: textEdit.height
 
  287     function forceActiveFocus() {
 
  288         textEdit.forceActiveFocus();
 
  292     property alias activeFocus: textEdit.activeFocus
 
  294     opacity: enabled ? 1.0 : 0.5
 
  296     Private.TextFieldFocus {
 
  298         state: textArea.activeFocus ? 
"focus" : (mouseWatcher.containsMouse ? 
"hover" : 
"hidden")
 
  308     PlasmaCore.FrameSvgItem {
 
  315         imagePath: 
"widgets/lineedit" 
  323             leftMargin: 2 * base.margins.left
 
  324             rightMargin: 2 * base.margins.right + (verticalScroll.visible ? verticalScroll.width : 0)
 
  325             topMargin: 2 * base.margins.top
 
  326             bottomMargin: 2 * base.margins.bottom + (horizontalScroll.visible ? verticalScroll.width : 0)
 
  328         interactive: !verticalScroll.interactive 
 
  330             if (textEdit.wrapMode == TextEdit.NoWrap)
 
  331                 return textEdit.paintedWidth;
 
  333             return Math.min(textEdit.paintedWidth, textEdit.width);
 
  335         contentHeight: Math.min(textEdit.paintedHeight, textEdit.height)
 
  341             width: flickArea.width
 
  342             height: flickArea.height
 
  344             wrapMode: TextEdit.Wrap
 
  345             enabled: textArea.enabled
 
  346             font.capitalization: theme.defaultFont.capitalization
 
  347             font.family: theme.defaultFont.family
 
  348             font.italic: theme.defaultFont.italic
 
  349             font.letterSpacing: theme.defaultFont.letterSpacing
 
  350             font.pointSize: theme.defaultFont.pointSize
 
  351             font.strikeout: theme.defaultFont.strikeout
 
  352             font.underline: theme.defaultFont.underline
 
  353             font.weight: theme.defaultFont.weight
 
  354             font.wordSpacing: theme.defaultFont.wordSpacing
 
  355             color: theme.buttonTextColor
 
  356             selectByMouse: verticalScroll.interactive
 
  358             onCursorPositionChanged: {
 
  359                 if (cursorRectangle.x < flickArea.contentX) {
 
  360                     flickArea.contentX = cursorRectangle.x;
 
  364                 if (cursorRectangle.x > flickArea.contentX +
 
  365                     flickArea.width - cursorRectangle.width) {
 
  366                     flickArea.contentX = cursorRectangle.x -
 
  367                         cursorRectangle.width;
 
  371                 if (cursorRectangle.y < flickArea.contentY) {
 
  372                     flickArea.contentY = cursorRectangle.y;
 
  376                 if (cursorRectangle.y > flickArea.contentY +
 
  377                     flickArea.height - cursorRectangle.height) {
 
  378                     flickArea.contentY = cursorRectangle.y -
 
  379                         cursorRectangle.height;
 
  386             Keys.onPressed: textArea.Keys.pressed(event);
 
  387             Keys.onReleased: textArea.Keys.released(event);
 
  391                 text: textArea.placeholderText
 
  392                 visible: textEdit.text == 
"" && !textArea.activeFocus
 
  393                 color: theme.buttonTextColor
 
  396             onActiveFocusChanged: {
 
  397                 if (!textEdit.activeFocus) {
 
  398                     textEdit.closeSoftwareInputPanel()
 
  407             bottom: parent.bottom
 
  409             right: flickArea.right
 
  411         enabled: parent.enabled
 
  412         flickableItem: flickArea
 
  413         orientation: Qt.Horizontal
 
  414         stepSize: textEdit.font.pixelSize
 
  422             bottom: flickArea.bottom
 
  424         enabled: parent.enabled
 
  425         flickableItem: flickArea
 
  426         orientation: Qt.Vertical
 
  427         stepSize: textEdit.font.pixelSize