/*
    Copyright (C) 2010 Klarälvdalens Datakonsult AB,
        a KDAB Group company, info@kdab.net,
        author Tobias Koenig <tokoe@kdab.com>

    This library is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published by
    the Free Software Foundation; either version 2 of the License, or (at your
    option) any later version.

    This library is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
    License for more details.

    You should have received a copy of the GNU Library General Public License
    along with this library; see the file COPYING.LIB.  If not, write to the
    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
*/

import Qt 4.7 as QML
import org.kde 4.5
import org.kde.pim.mobileui 4.5 as KPIM

QML.Rectangle {
  id : _topLevel
  color : "#00000000"
  property int actionItemHeight : 70
  property int actionItemWidth : 200
  property int actionItemSpacing : 0
  property int bottomMargin
  anchors.bottomMargin : bottomMargin

  property alias model : snippetsView.model

  property alias customActions : actionColumn.content

  signal triggered(string triggeredName)
  signal doCollapse()

  KPIM.DecoratedListView {
    id: snippetsView
    anchors { top: parent.top; bottom: parent.bottom; left: parent.left }
    width: parent.width - actionColumn.width
    model: snippetsModel
    focus: true
    clip: true

    delegate: QML.Item {
      id: snippetDelegate
      clip: true
      width: parent.width
      height: _topLevel.actionItemHeight

      QML.Rectangle {
        id: background
        anchors.fill: parent
        opacity: snippetDelegate.QML.ListView.isCurrentItem ? 0.25 : 0
        color: "lightsteelblue"
      }

      QML.Text {
        anchors.fill: parent
        anchors.leftMargin: model.isSnippetGroup ? 5 : 25
        text: model.display
        font.bold: model.isSnippetGroup
        horizontalAlignment: QML.Text.AlignLeft
        verticalAlignment: QML.Text.AlignVCenter
      }

      QML.MouseArea {
        anchors.fill: parent
        onClicked: { snippetDelegate.QML.ListView.view.currentIndex = model.index; }
      }
    }

    onCurrentIndexChanged : {
      snippetsEditor.setRowSelected( currentIndex )
    }
  }

  KPIM.ActionMenuContainer {
    id : actionColumn
    width : _topLevel.actionItemWidth
    anchors.top : parent.top
    anchors.bottom : parent.bottom
    anchors.right : parent.right
    actionItemWidth : width
    actionItemHeight : _topLevel.actionItemHeight

    content : [
      KPIM.ActionListItem { name : "snippetseditor_insert_snippet"; title: KDE.i18n("Insert\nSnippet") },
      KPIM.ActionListItem { name : "snippetseditor_add_snippet"; title: KDE.i18n("Add\nSnippet") },
      KPIM.ActionListItem { name : "snippetseditor_edit_snippet"; title: KDE.i18n("Edit\nSnippet") },
      KPIM.ActionListItem { name : "snippetseditor_delete_snippet"; title: KDE.i18n("Delete\nSnippet") },
      KPIM.ActionListItem { name : "snippetseditor_add_snippetgroup"; title: KDE.i18n("Add\nGroup") },
      KPIM.ActionListItem { name : "snippetseditor_edit_snippetgroup"; title: KDE.i18n("Edit\nGroup") },
      KPIM.ActionListItem { name : "snippetseditor_delete_snippetgroup"; title: KDE.i18n("Delete\nGroup") }
    ]

    onTriggered: {
      if ( triggeredName == "snippetseditor_insert_snippet" ) {
        parent.doCollapse()
      }
    }
  }

  onActionItemSpacingChanged : {
    actionColumn.refresh();
  }

  onActionItemHeightChanged : {
    actionColumn.refresh();
  }
}
