コード例 #1
0
void SafeListView::startDrag()
{
  DBGOUT("Drag started (is targe child: " << m_target_is_child << ")");

  SafeDragObject *d = new SafeDragObject(viewport());

  Q3ListViewItemIterator it(this, Q3ListViewItemIterator::Selected |
			   Q3ListViewItemIterator::DragEnabled);
  for(; it.current(); ++it) {
    SafeListViewItem *item = (SafeListViewItem *)it.current();
    d->addItem(item->item());

    // copy the user name to the clipboard
    if(item->rtti() == SafeListViewEntry::RTTI) {
	    SafeEntry *ent = ((SafeListViewEntry *)item)->entry();
	    copyToClipboard(ent->user());
    }
  }

  m_drop_target = NULL;
  m_target_is_child = false;

  bool drag_ret = d->drag();
  DBGOUT("\tdrag() returned " << drag_ret);
  DBGOUT("\tsrc: " << d->source() << "\ttarget: " << d->target());

  // drag was a move
  if(drag_ret) {
    DBGOUT("\tMove");
    // prevent drops from doing anything when they occur on a child
    // of the dragged object
    if(m_target_is_child) {
      QMessageBox::information(this, "Sorry", "Sorry, but items can't be dragged into their children");
    }
    // delete the item if it's dropped onto this
    else if(d->source() == d->target()) {
      // remove the item from the list
      SafeListViewItem *item = (SafeListViewItem *)selectedItem();
      emit deleteItem(item->item());
    }
  }
  // drag was a copy onto a child
  else {
    DBGOUT("\tCopy");
    if(m_target_is_child)
      emit dragObjectDropped(d, m_drop_target);
  }

  DBGOUT("\t" << name() << ": Drag ended");
}
コード例 #2
0
ファイル: safe.cpp プロジェクト: adjustive/mypasswordsafe
void SafeEntry::copy(const SafeEntry &item)
{
  setName(item.name());
  setUser(item.user());
  setPassword(item.password());
  setNotes(item.notes());
  setUUID(item.uuid());

  setCreationTime(item.creationTime());
  setModifiedTime(item.modifiedTime());
  setAccessTime(item.accessTime());
  setLifetime(item.lifetime());

  for(int i = 0; i < 4; i++) {
    m_policy[i] = item.m_policy[i];
  }
}