summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp34
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp26
2 files changed, 45 insertions, 15 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index c653b90..9edf7c1 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -46,48 +46,50 @@
#include <qlayout.h>
#include <qimage.h>
#include <qpixmap.h>
#include <qmessagebox.h>
#include <qlineedit.h>
#include <qregexp.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <dirent.h>
#include <stdio.h>
#include <time.h>
#include <fcntl.h>
#include <mntent.h>
#include <string.h>
#include <errno.h>
#include <sys/vfs.h>
#include <mntent.h>
#include <sys/utsname.h>
AdvancedFm::AdvancedFm( )
: QMainWindow( ) {
init();
+ renameBox = 0;
+
initConnections();
populateLocalView();
populateRemoteView();
currentPathCombo->setFocus();
}
AdvancedFm::~AdvancedFm() {
}
void AdvancedFm::cleanUp() {
QString sfile=QDir::homeDirPath();
if(sfile.right(1) != "/")
sfile+="/._temp";
else
sfile+="._temp";
QFile file( sfile);
if(file.exists())
file.remove();
}
void AdvancedFm::tabChanged(QWidget *w) {
qDebug("tab changed %d",TabWidget->getCurrentTab());
if ( w == tab) {
@@ -381,66 +383,81 @@ void AdvancedFm::remoteListClicked(QListViewItem *selectedItem) {
if(QDir(strItem).exists()){
currentRemoteDir.cd(strItem, TRUE);
populateRemoteView();
Remote_View->ensureItemVisible(Remote_View->firstChild());
}
} else {
strItem=QDir::cleanDirPath( currentRemoteDir.canonicalPath()+"/"+strItem);
if( QFile::exists(strItem ) ) {
// qDebug("clicked item "+strItem);
// DocLnk doc( strItem, FALSE );
// doc.execute();
// Remote_View->clearSelection();
}
} //end not symlink
chdir(strItem.latin1());
}
}
}
void AdvancedFm::localListPressed( int mouse, QListViewItem *, const QPoint& , int ) {
// qDebug("list pressed");
switch (mouse) {
case 1:
+ {
+ if(renameBox != 0 )
+ {
+ qDebug("cancel rename");
+ cancelRename();
+ }
+
+ }
break;
case 2:
menuTimer.start( 500, TRUE );
qDebug("Start menu timer\n");
break;
};
}
void AdvancedFm::remoteListPressed( int mouse, QListViewItem*, const QPoint&, int ) {
- switch (mouse) {
- case 1:
- break;
- case 2:
- menuTimer.start( 500, TRUE );
- qDebug("Start menu timer");
- break;
- };
+ switch (mouse) {
+ case 1:
+ {
+ if(renameBox != 0 )
+ {
+ qDebug("cancel rename");
+ cancelRename();
+ }
+ }
+ break;
+ case 2:
+ menuTimer.start( 500, TRUE );
+ qDebug("Start menu timer");
+ break;
+ };
}
void AdvancedFm::switchToLocalTab() {
TabWidget->setCurrentTab(0);
Local_View->setFocus();
}
void AdvancedFm::switchToRemoteTab() {
TabWidget->setCurrentTab(1);
Remote_View->setFocus();
}
void AdvancedFm::readConfig() {
Config cfg("AdvancedFm");
}
void AdvancedFm::writeConfig() {
Config cfg("AdvancedFm");
}
void AdvancedFm::currentPathComboChanged() {
if (TabWidget->getCurrentTab() == 0) {
// if (TabWidget->currentPageIndex() == 0) {
@@ -858,24 +875,25 @@ void AdvancedFm::addToDocs() {
// if (TabWidget->currentPageIndex() == 0) {
for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) {
curFile = currentDir.canonicalPath()+"/"+(*it);
qDebug(curFile);
DocLnk f;
// curFile.replace(QRegExp("\\..*"),"");
f.setName((*it));
f.setFile( curFile);
f.writeLink();
}
} else {
for ( QStringList::Iterator it = strListPaths.begin(); it != strListPaths.end(); ++it ) {
curFile = currentRemoteDir.canonicalPath()+"/"+(*it);
qDebug(curFile);
DocLnk f;
// curFile.replace(QRegExp("\\..*"),"");
f.setName((*it));
f.setFile( curFile);
f.writeLink();
}
}
}
}
+
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index f067013..2ddcabc 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -1006,110 +1006,122 @@ void AdvancedFm::startProcess(const QString & cmd) {
}
void AdvancedFm::processEnded() {
populateLocalView();
populateRemoteView();
}
bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) {
if ( o->inherits( "QLineEdit" ) ) {
if ( e->type() == QEvent::KeyPress ) {
QKeyEvent *ke = (QKeyEvent*)e;
if ( ke->key() == Key_Return ||
ke->key() == Key_Enter ) {
okRename();
return true;
} else if ( ke->key() == Key_Escape ) {
cancelRename();
return true;
}
} else if ( e->type() == QEvent::FocusOut ) {
cancelRename();
return true;
}
}
+ if ( o->inherits( "QListView" ) ) {
+ if ( e->type() == QEvent::FocusOut ) {
+ printf("focusIn\n");
+
+ }
+ }
+
return QWidget::eventFilter( o, e );
}
-void AdvancedFm::cancelRename() {
+void AdvancedFm::cancelRename()
+{
qDebug("cancel rename");
QListView * view;
- if (TabWidget->getCurrentTab() == 0) {
- view = Local_View;
- }
+ if (TabWidget->getCurrentTab() == 0)
+ {
+ view = Local_View;
+ }
else
{
view = Remote_View;
}
bool resetFocus = view->viewport()->focusProxy() == renameBox;
delete renameBox;
renameBox = 0;
if ( resetFocus ) {
view->viewport()->setFocusProxy( view);
view->setFocus();
}
}
-void AdvancedFm::doRename(QListView * view) {
+void AdvancedFm::doRename(QListView * view)
+{
QRect r = view->itemRect( view->currentItem( ));
r = QRect( view->viewportToContents( r.topLeft() ), r.size() );
r.setX( view->contentsX() );
if ( r.width() > view->visibleWidth() )
r.setWidth( view->visibleWidth() );
renameBox = new QLineEdit( view->viewport(), "qt_renamebox" );
renameBox->setFrame(true);
renameBox->setText( view->currentItem()->text(0) );
renameBox->selectAll();
renameBox->installEventFilter( this );
view->addChild( renameBox, r.x(), r.y() );
renameBox->resize( r.size() );
view->viewport()->setFocusProxy( renameBox );
renameBox->setFocus();
renameBox->show();
}
-void AdvancedFm::localRename() {
+void AdvancedFm::localRename()
+{
oldName = Local_View->currentItem()->text(0);
doRename(Local_View );
populateLocalView();
}
void AdvancedFm::remoteRename()
{
oldName = Remote_View->currentItem()->text(0);
doRename(Local_View );
populateRemoteView();
}
-void AdvancedFm::okRename() {
+void AdvancedFm::okRename()
+{
QString newName = renameBox->text();
cancelRename();
int tabs=0;
QListView * view;
tabs = TabWidget->getCurrentTab();
if ( tabs == 0)
{
view = Local_View;
QString path = currentDir.canonicalPath() + "/";
oldName = path + oldName;
newName = path + newName;
}
else
{
view = Remote_View;
QString path = currentRemoteDir.canonicalPath() + "/";
oldName = path + oldName;
newName = path + newName;
}
if( view->currentItem() == NULL)
return;
if( rename(oldName.latin1(), newName.latin1())== -1)
QMessageBox::message(tr("Note"),tr("Could not rename"));