Added support for dragging files from the file list
Upped version to 0.9.6 FossilOrigin-Name: a5a77363fdcadd2bea991228289a87fa73a98fb9
This commit is contained in:
33
FileTableView.cpp
Normal file
33
FileTableView.cpp
Normal 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
24
FileTableView.h
Normal 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
|
@ -11,6 +11,8 @@
|
||||
#include <QMessageBox>
|
||||
#include <QUrl>
|
||||
#include <QInputDialog>
|
||||
#include <QDrag>
|
||||
#include <QMimeData>
|
||||
#include "CommitDialog.h"
|
||||
#include "FileActionDialog.h"
|
||||
#include <QDebug>
|
||||
@ -107,6 +109,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
ui->tableView->addAction(ui->actionRevert);
|
||||
ui->tableView->addAction(ui->actionRename);
|
||||
ui->tableView->addAction(ui->actionDelete);
|
||||
connect( ui->tableView,
|
||||
SIGNAL( dragOutEvent() ),
|
||||
SLOT( on_fileView_dragOut() ),
|
||||
Qt::DirectConnection );
|
||||
|
||||
|
||||
// TreeView
|
||||
ui->treeView->setModel(&repoDirModel);
|
||||
@ -2280,3 +2287,25 @@ void MainWindow::on_actionDiffStash_triggered()
|
||||
// Run diff
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -184,6 +184,7 @@ private slots:
|
||||
// Manual slots
|
||||
void on_openRecent();
|
||||
void on_treeView_selectionChanged(const class QItemSelection &selected, const class QItemSelection &deselected);
|
||||
void on_fileView_dragOut();
|
||||
|
||||
// Designer slots
|
||||
void on_actionRefresh_triggered();
|
||||
|
@ -69,7 +69,7 @@
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="QTableView" name="tableView">
|
||||
<widget class="FileTableView" name="tableView">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>80</horstretch>
|
||||
@ -822,6 +822,13 @@
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>FileTableView</class>
|
||||
<extends>QTableView</extends>
|
||||
<header>FileTableView.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="resources.qrc"/>
|
||||
</resources>
|
||||
|
6
fuel.pro
6
fuel.pro
@ -20,13 +20,15 @@ SOURCES += main.cpp\
|
||||
CommitDialog.cpp \
|
||||
FileActionDialog.cpp \
|
||||
SettingsDialog.cpp \
|
||||
Utils.cpp
|
||||
Utils.cpp \
|
||||
FileTableView.cpp
|
||||
|
||||
HEADERS += MainWindow.h \
|
||||
CommitDialog.h \
|
||||
FileActionDialog.h \
|
||||
SettingsDialog.h \
|
||||
Utils.h
|
||||
Utils.h \
|
||||
FileTableView.h
|
||||
|
||||
FORMS += MainWindow.ui \
|
||||
CommitDialog.ui \
|
||||
|
6
main.cpp
6
main.cpp
@ -5,9 +5,9 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
a.setApplicationName("Fuel");
|
||||
a.setApplicationVersion("0.9.5");
|
||||
a.setOrganizationDomain("karanik.com");
|
||||
a.setOrganizationName("Karanik");
|
||||
a.setApplicationVersion("0.9.6");
|
||||
a.setOrganizationDomain("fuel-scm.org");
|
||||
a.setOrganizationName("fuel-scm");
|
||||
|
||||
// Native OSX applications don't use menu icons
|
||||
#ifdef Q_WS_MACX
|
||||
|
22
manifest
22
manifest
@ -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
|
||||
D 2012-04-15T06:56:51.575
|
||||
C Added\ssupport\sfor\sdragging\sfiles\sfrom\sthe\sfile\slist\nUpped\sversion\sto\s0.9.6\n
|
||||
D 2012-04-15T09:08:58.949
|
||||
F CommitDialog.cpp a46020a9361151d8d286a2670257d01d8967bf69
|
||||
F CommitDialog.h f1ee8db92103164e7db55a8407ccdcff24571b72
|
||||
F CommitDialog.ui 813d7cba316e226de1a22b7e480bb969fbe9b0c4
|
||||
F FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8
|
||||
F FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce
|
||||
F FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7
|
||||
F MainWindow.cpp 36e0fa67dbae7db5612d00e28267a2f8240353d0
|
||||
F MainWindow.h 552f6bd4061ae15be90e52402bcde6a8d7fbb7ad
|
||||
F MainWindow.ui b96e3126e2966f8fdeda1dd063efbbc731c7338e
|
||||
F FileTableView.cpp 04b793f93b47717cc482dd684ee2b4976e1340fc
|
||||
F FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df
|
||||
F MainWindow.cpp 6b8caf49d9c0f4e9768fd5c860a92cae638bb353
|
||||
F MainWindow.h 987fa4ae0604373778184501f4f71f07ac614a16
|
||||
F MainWindow.ui 726175dba24957cdf9884326c3948dffe01a4a3d
|
||||
F SettingsDialog.cpp e1fad18cc020d08b82c6d35dc94f6624deec9a3b
|
||||
F SettingsDialog.h f5da6cab4ccc82e2eb78ec835fb849c4c104d6cc
|
||||
F SettingsDialog.ui 8964629ea80c61971c0601624c84d1927902b1fd
|
||||
F Utils.cpp 2587d8073d6c2c1da49622c387cc457a0081f7b5
|
||||
F Utils.h a71d82474747466f4c225128d26a703b510230d4
|
||||
F fuel.pro 3dc8e31fde8137143dea0ae44a81eb6733d86168
|
||||
F fuel.pro 880b013acb1136d97c7414372c4e58053cfb153d
|
||||
F fuel.rc 8e9ac966f283102c11a77cd7f936cdc09e09bd79
|
||||
F icons/Address\sBook-01.png ef2cec80ea5a559b72e8be4a344a1869fe69cbd8
|
||||
F icons/Adobe\sIllustrator\sCS3\sDocument-01.png 2e44e933d58eefee7ccfa1650fed4ceadcf3c2be
|
||||
@ -172,9 +174,9 @@ F icons/fuel.icns 81e535004b62db801a02f3e15d0a33afc9d4070b
|
||||
F icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038
|
||||
F installer/fuel.iss 13b6a938bcdf273cbd3649d2549887baa1577214
|
||||
F installer/license.txt 4cc77b90af91e615a64ae04893fdffa7939db84c
|
||||
F main.cpp 46bf5ddc90fca01c9ef2e8e3d14b4d32217945dd
|
||||
F main.cpp 581c2b64cb8ed88aabcdd6b6482d28f3f3935232
|
||||
F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53
|
||||
P d0520ae5050524145697206927a579823b8920d0
|
||||
R b055358a254079018cada6a15162fbb7
|
||||
P ce70efe67a1fe0087cc6d3aa79757a5011c57db2
|
||||
R 3ef0842f9e81c70e0425f1d683d72d06
|
||||
U kostas
|
||||
Z c15f935758986542ce2828f4282ddc7a
|
||||
Z 843fc316a0eadf4fed3bcf121554dcb2
|
||||
|
@ -1 +1 @@
|
||||
ce70efe67a1fe0087cc6d3aa79757a5011c57db2
|
||||
a5a77363fdcadd2bea991228289a87fa73a98fb9
|
Reference in New Issue
Block a user