Added support for dragging files from the file list

Upped version to 0.9.6


FossilOrigin-Name: a5a77363fdcadd2bea991228289a87fa73a98fb9
This commit is contained in:
kostas
2012-04-15 09:08:58 +00:00
parent 0ea4fd9831
commit 692b99d227
9 changed files with 115 additions and 17 deletions

33
FileTableView.cpp Normal file
View File

@ -0,0 +1,33 @@
#include "FileTableView.h"
#include <QMouseEvent>
//#include <QMimeData>
#include <QApplication>
//#include <QUrl>
FileTableView::FileTableView(QWidget *parent) :
QTableView(parent)
{
}
//------------------------------------------------------------------------------
void FileTableView::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
dragStartPos = event->pos();
QTableView::mousePressEvent(event);
}
//------------------------------------------------------------------------------
void FileTableView::mouseMoveEvent(QMouseEvent *event)
{
int distance = (event->pos() - dragStartPos).manhattanLength();
if (event->buttons() & Qt::LeftButton && distance >= QApplication::startDragDistance())
{
dragOutEvent();
QTableView::mouseReleaseEvent(event);
}
else
QTableView::mouseMoveEvent(event);
}

24
FileTableView.h Normal file
View File

@ -0,0 +1,24 @@
#ifndef FILETABLEVIEW_H
#define FILETABLEVIEW_H
#include <QTableView>
#include <QPoint>
class FileTableView : public QTableView
{
Q_OBJECT
public:
explicit FileTableView(QWidget *parent = 0);
signals:
void dragOutEvent();
private:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
private:
QPoint dragStartPos;
};
#endif // FILETABLEVIEW_H

View File

@ -11,6 +11,8 @@
#include <QMessageBox> #include <QMessageBox>
#include <QUrl> #include <QUrl>
#include <QInputDialog> #include <QInputDialog>
#include <QDrag>
#include <QMimeData>
#include "CommitDialog.h" #include "CommitDialog.h"
#include "FileActionDialog.h" #include "FileActionDialog.h"
#include <QDebug> #include <QDebug>
@ -107,6 +109,11 @@ MainWindow::MainWindow(QWidget *parent) :
ui->tableView->addAction(ui->actionRevert); ui->tableView->addAction(ui->actionRevert);
ui->tableView->addAction(ui->actionRename); ui->tableView->addAction(ui->actionRename);
ui->tableView->addAction(ui->actionDelete); ui->tableView->addAction(ui->actionDelete);
connect( ui->tableView,
SIGNAL( dragOutEvent() ),
SLOT( on_fileView_dragOut() ),
Qt::DirectConnection );
// TreeView // TreeView
ui->treeView->setModel(&repoDirModel); ui->treeView->setModel(&repoDirModel);
@ -2280,3 +2287,25 @@ void MainWindow::on_actionDiffStash_triggered()
// Run diff // Run diff
runFossil(QStringList() << "stash" << "diff" << *id_it, 0); runFossil(QStringList() << "stash" << "diff" << *id_it, 0);
} }
//------------------------------------------------------------------------------
void MainWindow::on_fileView_dragOut()
{
QStringList filenames;
getFileViewSelection(filenames);
QString uris;
// text/uri-list is a new-line separate list of uris
foreach(QString f, filenames)
{
uris += QUrl::fromLocalFile(getCurrentWorkspace()+QDir::separator()+f).toString() + '\n';
}
QMimeData *mime_data = new QMimeData;
mime_data->setData("text/uri-list", uris.toUtf8());
QDrag drag(this);
drag.setMimeData(mime_data);
drag.exec(Qt::CopyAction);
}

View File

@ -184,6 +184,7 @@ private slots:
// Manual slots // Manual slots
void on_openRecent(); void on_openRecent();
void on_treeView_selectionChanged(const class QItemSelection &selected, const class QItemSelection &deselected); void on_treeView_selectionChanged(const class QItemSelection &selected, const class QItemSelection &deselected);
void on_fileView_dragOut();
// Designer slots // Designer slots
void on_actionRefresh_triggered(); void on_actionRefresh_triggered();

View File

@ -69,7 +69,7 @@
<bool>false</bool> <bool>false</bool>
</attribute> </attribute>
</widget> </widget>
<widget class="QTableView" name="tableView"> <widget class="FileTableView" name="tableView">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding"> <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>80</horstretch> <horstretch>80</horstretch>
@ -822,6 +822,13 @@
</action> </action>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>FileTableView</class>
<extends>QTableView</extends>
<header>FileTableView.h</header>
</customwidget>
</customwidgets>
<resources> <resources>
<include location="resources.qrc"/> <include location="resources.qrc"/>
</resources> </resources>

View File

@ -20,13 +20,15 @@ SOURCES += main.cpp\
CommitDialog.cpp \ CommitDialog.cpp \
FileActionDialog.cpp \ FileActionDialog.cpp \
SettingsDialog.cpp \ SettingsDialog.cpp \
Utils.cpp Utils.cpp \
FileTableView.cpp
HEADERS += MainWindow.h \ HEADERS += MainWindow.h \
CommitDialog.h \ CommitDialog.h \
FileActionDialog.h \ FileActionDialog.h \
SettingsDialog.h \ SettingsDialog.h \
Utils.h Utils.h \
FileTableView.h
FORMS += MainWindow.ui \ FORMS += MainWindow.ui \
CommitDialog.ui \ CommitDialog.ui \

View File

@ -5,9 +5,9 @@ int main(int argc, char *argv[])
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
a.setApplicationName("Fuel"); a.setApplicationName("Fuel");
a.setApplicationVersion("0.9.5"); a.setApplicationVersion("0.9.6");
a.setOrganizationDomain("karanik.com"); a.setOrganizationDomain("fuel-scm.org");
a.setOrganizationName("Karanik"); a.setOrganizationName("fuel-scm");
// Native OSX applications don't use menu icons // Native OSX applications don't use menu icons
#ifdef Q_WS_MACX #ifdef Q_WS_MACX

View File

@ -1,20 +1,22 @@
C Added\ssupport\sfor\sstashes\nGeneralized\sthe\scommit\sdialog\sto\ssupport\sstashes\nParameters\sare\snow\squoted\sin\sthe\slog\sif\snecessary\nFixed\sanother\sissue\swith\sthe\sfolderview\sshow/hide\slogic\nVarious\sminor\sui\stweaks C Added\ssupport\sfor\sdragging\sfiles\sfrom\sthe\sfile\slist\nUpped\sversion\sto\s0.9.6\n
D 2012-04-15T06:56:51.575 D 2012-04-15T09:08:58.949
F CommitDialog.cpp a46020a9361151d8d286a2670257d01d8967bf69 F CommitDialog.cpp a46020a9361151d8d286a2670257d01d8967bf69
F CommitDialog.h f1ee8db92103164e7db55a8407ccdcff24571b72 F CommitDialog.h f1ee8db92103164e7db55a8407ccdcff24571b72
F CommitDialog.ui 813d7cba316e226de1a22b7e480bb969fbe9b0c4 F CommitDialog.ui 813d7cba316e226de1a22b7e480bb969fbe9b0c4
F FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8 F FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8
F FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce F FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce
F FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7 F FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7
F MainWindow.cpp 36e0fa67dbae7db5612d00e28267a2f8240353d0 F FileTableView.cpp 04b793f93b47717cc482dd684ee2b4976e1340fc
F MainWindow.h 552f6bd4061ae15be90e52402bcde6a8d7fbb7ad F FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df
F MainWindow.ui b96e3126e2966f8fdeda1dd063efbbc731c7338e F MainWindow.cpp 6b8caf49d9c0f4e9768fd5c860a92cae638bb353
F MainWindow.h 987fa4ae0604373778184501f4f71f07ac614a16
F MainWindow.ui 726175dba24957cdf9884326c3948dffe01a4a3d
F SettingsDialog.cpp e1fad18cc020d08b82c6d35dc94f6624deec9a3b F SettingsDialog.cpp e1fad18cc020d08b82c6d35dc94f6624deec9a3b
F SettingsDialog.h f5da6cab4ccc82e2eb78ec835fb849c4c104d6cc F SettingsDialog.h f5da6cab4ccc82e2eb78ec835fb849c4c104d6cc
F SettingsDialog.ui 8964629ea80c61971c0601624c84d1927902b1fd F SettingsDialog.ui 8964629ea80c61971c0601624c84d1927902b1fd
F Utils.cpp 2587d8073d6c2c1da49622c387cc457a0081f7b5 F Utils.cpp 2587d8073d6c2c1da49622c387cc457a0081f7b5
F Utils.h a71d82474747466f4c225128d26a703b510230d4 F Utils.h a71d82474747466f4c225128d26a703b510230d4
F fuel.pro 3dc8e31fde8137143dea0ae44a81eb6733d86168 F fuel.pro 880b013acb1136d97c7414372c4e58053cfb153d
F fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79 F fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79
F icons/Address\sBook-01.png ef2cec80ea5a559b72e8be4a344a1869fe69cbd8 F icons/Address\sBook-01.png ef2cec80ea5a559b72e8be4a344a1869fe69cbd8
F icons/Adobe\sIllustrator\sCS3\sDocument-01.png 2e44e933d58eefee7ccfa1650fed4ceadcf3c2be F icons/Adobe\sIllustrator\sCS3\sDocument-01.png 2e44e933d58eefee7ccfa1650fed4ceadcf3c2be
@ -172,9 +174,9 @@ F icons/fuel.icns 81e535004b62db801a02f3e15d0a33afc9d4070b
F icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038 F icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038
F installer/fuel.iss 13b6a938bcdf273cbd3649d2549887baa1577214 F installer/fuel.iss 13b6a938bcdf273cbd3649d2549887baa1577214
F installer/license.txt 4cc77b90af91e615a64ae04893fdffa7939db84c F installer/license.txt 4cc77b90af91e615a64ae04893fdffa7939db84c
F main.cpp 46bf5ddc90fca01c9ef2e8e3d14b4d32217945dd F main.cpp 581c2b64cb8ed88aabcdd6b6482d28f3f3935232
F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53 F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53
P d0520ae5050524145697206927a579823b8920d0 P ce70efe67a1fe0087cc6d3aa79757a5011c57db2
R b055358a254079018cada6a15162fbb7 R 3ef0842f9e81c70e0425f1d683d72d06
U kostas U kostas
Z c15f935758986542ce2828f4282ddc7a Z 843fc316a0eadf4fed3bcf121554dcb2

View File

@ -1 +1 @@
ce70efe67a1fe0087cc6d3aa79757a5011c57db2 a5a77363fdcadd2bea991228289a87fa73a98fb9