/* * This file is part of NeverNote * Copyright 2009 Randy Baumgarte * * This file may be licensed under the terms of of the * GNU General Public License Version 2 (the ``GPL''). * * Software distributed under the License is distributed * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the GPL for the specific language * governing rights and limitations. * * You should have received a copy of the GPL along with this * program. If not, go to http://www.gnu.org/licenses/gpl.html * or write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ package cx.fbn.nevernote.gui; import java.util.ArrayList; import java.util.List; import com.trolltech.qt.core.QByteArray; import com.trolltech.qt.core.Qt; import com.trolltech.qt.gui.QAbstractItemView; import com.trolltech.qt.gui.QAction; import com.trolltech.qt.gui.QBrush; import com.trolltech.qt.gui.QColor; import com.trolltech.qt.gui.QContextMenuEvent; import com.trolltech.qt.gui.QDragEnterEvent; import com.trolltech.qt.gui.QHeaderView; import com.trolltech.qt.gui.QIcon; import com.trolltech.qt.gui.QMenu; import com.trolltech.qt.gui.QTreeWidget; import com.trolltech.qt.gui.QTreeWidgetItem; public class TrashTreeWidget extends QTreeWidget { private QAction emptyAction; private QTreeWidgetItem trashItem; private Integer trashCount; public void setEmptyAction(QAction a) { emptyAction = a; } public TrashTreeWidget() { trashCount = 0; } public void updateCounts(Integer cnt) { QBrush gray = new QBrush(); gray.setColor(QColor.gray); QBrush black = new QBrush(); black.setColor(QColor.black); trashCount = cnt; trashItem.setText(1, trashCount.toString()); header().resizeSection(1, 0); if (trashCount > 0) { trashItem.setForeground(0, black); trashItem.setForeground(1, black); } else { trashItem.setForeground(0, gray); trashItem.setForeground(1, gray); } } public void load() { String iconPath = new String("classpath:cx/fbn/nevernote/icons/"); QIcon trashIcon = new QIcon(iconPath+"trash.png"); trashItem = new QTreeWidgetItem(); trashItem.setIcon(0, trashIcon); trashItem.setText(0, "Trash"); Qt.Alignment ra = new Qt.Alignment(Qt.AlignmentFlag.AlignRight); trashItem.setTextAlignment(1, ra.value()); List headers = new ArrayList(); headers.add(""); headers.add(""); setHeaderLabels(headers); setColumnCount(2); header().setResizeMode(0, QHeaderView.ResizeMode.ResizeToContents); header().setResizeMode(1, QHeaderView.ResizeMode.Stretch); header().setMovable(false); setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection); addTopLevelItem(trashItem); } @Override public void contextMenuEvent(QContextMenuEvent event) { QMenu menu = new QMenu(this); menu.addAction(emptyAction); menu.exec(event.globalPos()); } @Override public void dragEnterEvent(QDragEnterEvent event) { event.mimeData().setData("application/x-nevernote-trash", new QByteArray(currentItem().text(1))); event.accept(); } }