'Attempts to show the specified tip at the current cursor location.'

def show_tip(self, point, tip, wrapped_tiplines):

    if self.isVisible():
        if (self.tip == tip):
            return True
        else:
            self.hide()
    text_edit = self._text_edit
    cursor = text_edit.textCursor()
    search_pos = (cursor.position() - 1)
    (self._start_position, _) = self._find_parenthesis(search_pos, forward=False)
    if (self._start_position == (-1)):
        return False
    if self.hide_timer_on:
        self._hide_timer.stop()
        if (len(wrapped_tiplines) == 1):
            args = wrapped_tiplines[0].split('(')[1]
            nargs = len(args.split(','))
            if (nargs == 1):
                hide_time = 1400
            elif (nargs == 2):
                hide_time = 1600
            else:
                hide_time = 1800
        elif (len(wrapped_tiplines) == 2):
            args1 = wrapped_tiplines[1].strip()
            nargs1 = len(args1.split(','))
            if (nargs1 == 1):
                hide_time = 2500
            else:
                hide_time = 2800
        else:
            hide_time = 3500
        self._hide_timer.start(hide_time, self)
    self.tip = tip
    self.setText(tip)
    self.resize(self.sizeHint())
    padding = 3
    cursor_rect = text_edit.cursorRect(cursor)
    screen_rect = self.app.desktop().screenGeometry(text_edit)
    point.setY((point.y() + padding))
    tip_height = self.size().height()
    tip_width = self.size().width()
    vertical = 'bottom'
    horizontal = 'Right'
    if ((point.y() + tip_height) > (screen_rect.height() + screen_rect.y())):
        point_ = text_edit.mapToGlobal(cursor_rect.topRight())
        if ((point_.y() - tip_height) < padding):
            if ((2 * point.y()) < screen_rect.height()):
                vertical = 'bottom'
            else:
                vertical = 'top'
        else:
            vertical = 'top'
    if ((point.x() + tip_width) > (screen_rect.width() + screen_rect.x())):
        point_ = text_edit.mapToGlobal(cursor_rect.topRight())
        if ((point_.x() - tip_width) < padding):
            if ((2 * point.x()) < screen_rect.width()):
                horizontal = 'Right'
            else:
                horizontal = 'Left'
        else:
            horizontal = 'Left'
    pos = getattr(cursor_rect, ('%s%s' % (vertical, horizontal)))
    adjusted_point = text_edit.mapToGlobal(pos())
    if (vertical == 'top'):
        point.setY(((adjusted_point.y() - tip_height) - padding))
    if (horizontal == 'Left'):
        point.setX(((adjusted_point.x() - tip_width) - padding))
    self.move(point)
    self.show()
    return True
