[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Konversation] 3293cb9: improve UI
From: Shintaro Matsuoka <shin () shoegazed ! org>
Date: 2010-07-01 13:27:51
Message-ID: 20100701132751.5789ABB5701 () projects ! kde ! org
[Download RAW message or body]
commit 3293cb9c9f99f7174740afb253f4d44f1d8b62cb
Author: Shintaro Matsuoka <shin@shoegazed.org>
Date: Sat Aug 14 08:19:29 2004 +0000
improve UI
svn path=/trunk/kdeextragear-2/konversation/; revision=337875
diff --git a/konversation/dccdetaildialog.cpp b/konversation/dccdetaildialog.cpp
index a7013fa..3a778b6 100644
--- a/konversation/dccdetaildialog.cpp
+++ b/konversation/dccdetaildialog.cpp
@@ -6,10 +6,13 @@
#include <qlabel.h>
#include <qlayout.h>
+#include <kglobal.h>
+#include <kiconloader.h>
#include <klocale.h>
#include <klineedit.h>
#include <kprogress.h>
#include <kpushbutton.h>
+#include <krun.h>
#include <kurlrequester.h>
#include "dccdetaildialog.h"
@@ -23,7 +26,7 @@ DccDetailDialog::DccDetailDialog( DccTransfer* item )
baseLayout->setMargin( marginHint() );
baseLayout->setSpacing( spacingHint() );
- // information //
+ // information
QFrame* infoFrame = new QFrame( this );
QGridLayout* infoLayout = new QGridLayout( infoFrame, 1, 2 );
@@ -31,30 +34,62 @@ DccDetailDialog::DccDetailDialog( DccTransfer* item )
// Filename
QLabel* fileNameHeader = new QLabel( i18n("File"), infoFrame );
- fileNameHeader->setAlignment( AlignHCenter );
- QLabel* fileName = new QLabel( item->fileName, infoFrame );
+ fileNameHeader->setAlignment( AlignHCenter | AlignVCenter );
+ KLineEdit* fileName = new KLineEdit( item->fileName, infoFrame );
+ fileName->setFocusPolicy( ClickFocus );
+ fileName->setReadOnly( true );
+ fileName->setFrame( false );
fileName->setAlignment( AlignHCenter );
+ // Local path
+ QLabel* localPathHeader = new QLabel( infoFrame );
+ localPathHeader->setAlignment( AlignHCenter | AlignVCenter );
+ if ( m_item->dccType == DccTransfer::Send )
+ localPathHeader->setText( i18n("Local Path") );
+ else
+ localPathHeader->setText( i18n("Save to") );
+ QHBox* localPathBox = new QHBox( infoFrame );
+ localPathBox->setSpacing( spacingHint() );
+ m_localPath = new KURLRequester( m_item->filePath, localPathBox );
+ connect( m_localPath, SIGNAL( textChanged( const QString& ) ), this, SLOT( \
slotLocalPathChanged( const QString& ) ) ); + m_localPathOpen = new KPushButton( \
KGlobal::iconLoader()->loadIcon( "exec", KIcon::Small ), QString::null, localPathBox \
); + m_localPathOpen->setFixedSize( m_localPath->button()->size() );
+ connect( m_localPathOpen, SIGNAL( clicked() ), this, SLOT( slotOpenFile() ) );
+
// Partner
QLabel* partnerHeader = new QLabel( infoFrame );
- partnerHeader->setAlignment( AlignHCenter );
+ partnerHeader->setAlignment( AlignHCenter | AlignVCenter );
if ( m_item->dccType == DccTransfer::Send )
partnerHeader->setText( i18n("Receiver") );
else
partnerHeader->setText( i18n("Sender") );
- m_partner = new QLabel( infoFrame );
+ m_partner = new KLineEdit( infoFrame );
+ m_partner->setFocusPolicy( ClickFocus );
+ m_partner->setReadOnly( true );
+ m_partner->setFrame( false );
m_partner->setAlignment( AlignHCenter );
-
+
// Self
- QLabel* selfHeader = new QLabel( i18n("Self"), infoFrame );
- selfHeader->setAlignment( AlignHCenter );
- m_self = new QLabel( infoFrame );
- m_self->setAlignment( AlignHCenter );
+ QLabel* selfHeader;
+ m_self = 0;
+ if ( m_item->dccType == DccTransfer::Send )
+ {
+ selfHeader = new QLabel( i18n("Self"), infoFrame );
+ selfHeader->setAlignment( AlignHCenter | AlignVCenter );
+ m_self = new KLineEdit( infoFrame );
+ m_self->setFocusPolicy( ClickFocus );
+ m_self->setReadOnly( true );
+ m_self->setFrame( false );
+ m_self->setAlignment( AlignHCenter );
+ }
// Status
QLabel* statusHeader = new QLabel( i18n("Status"), infoFrame );
- statusHeader->setAlignment( AlignHCenter );
- m_status = new QLabel( infoFrame );
+ statusHeader->setAlignment( AlignHCenter | AlignVCenter );
+ m_status = new KLineEdit( infoFrame );
+ m_status->setFocusPolicy( ClickFocus );
+ m_status->setReadOnly( true );
+ m_status->setFrame( false );
m_status->setAlignment( AlignHCenter );
// Progres
@@ -65,17 +100,14 @@ DccDetailDialog::DccDetailDialog( DccTransfer* item )
// Position
QLabel* positionHeader = new QLabel( i18n("Position"), infoFrame );
- positionHeader->setAlignment( AlignHCenter );
- m_position = new QLabel( infoFrame );
+ positionHeader->setAlignment( AlignHCenter | AlignVCenter );
+ m_position = new KLineEdit( infoFrame );
+ m_position->setFocusPolicy( ClickFocus );
+ m_position->setReadOnly( true );
+ m_position->setFrame( false );
m_position->setAlignment( AlignHCenter );
- // Local path
- QLabel* localPathHeader = new QLabel( i18n("Local Path"), infoFrame );
- localPathHeader->setAlignment( AlignHCenter | AlignVCenter );
- m_localPath = new KURLRequester( m_item->filePath, infoFrame );
- connect( m_localPath, SIGNAL( textChanged( const QString& ) ), this, SLOT( \
slotLocalPathChanged( const QString& ) ) );
-
- // buttons //
+ // buttons
QFrame* buttonFrame = new QFrame( this );
QHBoxLayout* buttonLayout = new QHBoxLayout( buttonFrame );
@@ -85,27 +117,28 @@ DccDetailDialog::DccDetailDialog( DccTransfer* item )
m_buttonAccept = 0;
if ( m_item->dccType == DccTransfer::Receive )
{
- m_buttonAccept = new KPushButton( i18n("Accept"), buttonFrame );
+ m_buttonAccept = new KPushButton( KGlobal::iconLoader()->loadIcon( \
"player_play", KIcon::Small ), i18n("Accept"), buttonFrame );
m_buttonAccept->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, \
QSizePolicy::Fixed ) );
connect( m_buttonAccept, SIGNAL( clicked() ), this, SLOT( slotAccept() ) );
}
// Abort
- m_buttonAbort = new KPushButton( i18n("Abort"), buttonFrame );
+ m_buttonAbort = new KPushButton( KGlobal::iconLoader()->loadIcon( "stop", \
KIcon::Small ), i18n("Abort"), buttonFrame ); m_buttonAbort->setSizePolicy( \
QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) ); connect( m_buttonAbort, \
SIGNAL( clicked() ), this, SLOT( slotAbort() ) );
// Close
- KPushButton* buttonClose = new KPushButton( i18n("Close"), buttonFrame );
+ KPushButton* buttonClose = new KPushButton( KGlobal::iconLoader()->loadIcon( \
"button_ok", KIcon::Small ), i18n("Close"), buttonFrame ); \
buttonClose->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) ); \
connect( buttonClose, SIGNAL( clicked() ), this, SLOT( slotClose() ) );
- // layout //
+ // layout
// construct layout: base
baseLayout->addWidget( infoFrame );
+ baseLayout->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding ) );
baseLayout->addWidget( buttonFrame );
-
+
// construct layout: info
int row = 0;
@@ -114,15 +147,18 @@ DccDetailDialog::DccDetailDialog( DccTransfer* item )
++row;
infoLayout->addWidget( localPathHeader, row, 0 );
- infoLayout->addWidget( m_localPath, row, 1 );
+ infoLayout->addWidget( localPathBox, row, 1 );
++row;
infoLayout->addWidget( partnerHeader, row, 0 );
infoLayout->addWidget( m_partner, row, 1 );
- ++row;
- infoLayout->addWidget( selfHeader, row, 0 );
- infoLayout->addWidget( m_self, row, 1 );
+ if ( m_self )
+ {
+ ++row;
+ infoLayout->addWidget( selfHeader, row, 0 );
+ infoLayout->addWidget( m_self, row, 1 );
+ }
++row;
infoLayout->addWidget( statusHeader, row, 0 );
@@ -143,12 +179,13 @@ DccDetailDialog::DccDetailDialog( DccTransfer* item )
buttonLayout->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding ) );
buttonLayout->addWidget( buttonClose );
- // update //
+ // update
updateView();
- // make up //
- setMinimumWidth( 300 );
- setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed ) );
+ // make up
+ adjustSize();
+ resize( 450, height() );
+ buttonClose->setFocus();
}
DccDetailDialog::~DccDetailDialog()
@@ -157,14 +194,23 @@ DccDetailDialog::~DccDetailDialog()
void DccDetailDialog::updateView() // public
{
- // caption //
+ // caption
if ( m_item->dccType == DccTransfer::Send )
setCaption( i18n("DCC Send") + " : " + m_item->fileName );
else
setCaption( i18n("DCC Receive") + " : " + m_item->fileName );
- // information //
+ // information
+
+ // Local path
+ m_localPath->setURL( m_item->filePath );
+ m_localPath->lineEdit()->setFocusPolicy( m_item->dccStatus == DccTransfer::Queued \
? StrongFocus : ClickFocus ); + m_localPath->lineEdit()->setReadOnly( \
m_item->dccStatus != DccTransfer::Queued ); + m_localPath->lineEdit()->setFrame( \
m_item->dccStatus == DccTransfer::Queued ); + m_localPath->lineEdit()->setAlignment( \
m_item->dccStatus == DccTransfer::Queued ? AlignLeft : AlignHCenter ); + \
m_localPath->button()->setEnabled( m_item->dccStatus == DccTransfer::Queued ); + \
m_localPathOpen->setEnabled( m_item->dccType == DccTransfer::Send || \
m_item->dccStatus == DccTransfer::Done );
// Partner
QString partner( m_item->partnerNick );
@@ -179,19 +225,22 @@ void DccDetailDialog::updateView() // public
m_partner->setText( partner );
// Self
- QString self;
- if ( !m_item->ownIp.isEmpty() || !m_item->ownPort.isEmpty() )
+ if ( m_self )
{
- self += !m_item->ownIp.isEmpty() ? m_item->ownIp : "* ";
- self += ":";
- self += !m_item->ownPort.isEmpty() ? m_item->ownPort : i18n("unknown");
+ QString self;
+ if ( !m_item->ownIp.isEmpty() || !m_item->ownPort.isEmpty() )
+ {
+ self += !m_item->ownIp.isEmpty() ? m_item->ownIp : "* ";
+ self += ":";
+ self += !m_item->ownPort.isEmpty() ? m_item->ownPort : i18n("unknown");
+ }
+ else
+ self = i18n("unknown");
+ m_self->setText( self );
}
- else
- self = i18n("unknown");
- m_self->setText( self );
// Status
- m_status->setText( m_item->getStatusText() );
+ m_status->setText( m_item->dccStatusDetail.isEmpty() ? m_item->getStatusText() : \
m_item->getStatusText() + " (" + m_item->dccStatusDetail + ")" );
// Progress
// FIXME: in case filesize is unknown
@@ -200,12 +249,7 @@ void DccDetailDialog::updateView() // public
// Position
m_position->setText( m_item->getPositionPrettyText() );
- // Local path
- m_localPath->setURL( m_item->filePath );
- m_localPath->lineEdit()->setReadOnly( m_item->dccStatus != DccTransfer::Queued );
- m_localPath->button()->setEnabled( m_item->dccStatus == DccTransfer::Queued );
-
- // buttons //
+ // buttons
// Accept
if ( m_buttonAccept )
@@ -224,6 +268,11 @@ void DccDetailDialog::slotLocalPathChanged( const QString& \
newFilePath ) m_item->setFilePath( newFilePath.stripWhiteSpace() );
}
+void DccDetailDialog::slotOpenFile()
+{
+ new KRun( KURL( m_item->filePath ) );
+}
+
void DccDetailDialog::slotAccept()
{
m_item->start();
diff --git a/konversation/dccdetaildialog.h b/konversation/dccdetaildialog.h
index 552f71b..fcd0002 100644
--- a/konversation/dccdetaildialog.h
+++ b/konversation/dccdetaildialog.h
@@ -7,7 +7,7 @@
#include <kdialog.h>
-class QLabel;
+class KLineEdit;
class KProgress;
class KPushButton;
class KURLRequester;
@@ -25,6 +25,7 @@ class DccDetailDialog : public KDialog
protected slots:
void slotLocalPathChanged( const QString& newFilePath );
+ void slotOpenFile();
void slotAccept();
void slotAbort();
void slotClose();
@@ -33,12 +34,13 @@ class DccDetailDialog : public KDialog
DccTransfer* m_item;
// UI
- QLabel* m_partner;
- QLabel* m_self;
- QLabel* m_status;
- KProgress* m_progress;
- QLabel* m_position;
KURLRequester* m_localPath;
+ KPushButton* m_localPathOpen;
+ KLineEdit* m_partner;
+ KLineEdit* m_self;
+ KLineEdit* m_status;
+ KProgress* m_progress;
+ KLineEdit* m_position;
KPushButton* m_buttonAccept;
KPushButton* m_buttonAbort;
diff --git a/konversation/dccpanel.cpp b/konversation/dccpanel.cpp
index 8b4ccf6..027efe7 100644
--- a/konversation/dccpanel.cpp
+++ b/konversation/dccpanel.cpp
@@ -12,9 +12,6 @@
email: eisfuchs@tigress.com
*/
-// for debug
-#define USE_DETAILDIALOG
-
#include <qhbox.h>
#include <qheader.h>
#include <qvbox.h>
@@ -91,9 +88,7 @@ DccPanel::DccPanel(QWidget* parent) : ChatWindow(parent)
removeButton=new QPushButton(i18n("Remove"),buttonsBox,"remove_dcc");
openButton =new QPushButton(i18n("Open"),buttonsBox,"open_dcc_file");
infoButton =new QPushButton(i18n("Information"),buttonsBox,"info_on_dcc_file");
-#ifdef USE_DETAILDIALOG
detailButton=new QPushButton(i18n("Detail"),buttonsBox,"detail_dcc");
-#endif
connect(dccListView,SIGNAL (selectionChanged()),this,SLOT (dccSelected()) );
@@ -102,9 +97,7 @@ DccPanel::DccPanel(QWidget* parent) : ChatWindow(parent)
connect(removeButton,SIGNAL (clicked()) ,this,SLOT (removeDcc()) );
connect(openButton,SIGNAL (clicked()) ,this,SLOT (runDcc()) );
connect(infoButton,SIGNAL (clicked()) ,this,SLOT (showFileInfo()) );
-#ifdef USE_DETAILDIALOG
connect(detailButton,SIGNAL (clicked()) ,this,SLOT (openDetail()) );
-#endif
}
DccPanel::~DccPanel()
diff --git a/konversation/dcctransfer.cpp b/konversation/dcctransfer.cpp
index e71285f..73630bf 100644
--- a/konversation/dcctransfer.cpp
+++ b/konversation/dcctransfer.cpp
@@ -155,10 +155,11 @@ void DccTransfer::closeDetailDialog() // public
}
}
-void DccTransfer::setStatus(DccStatus status)
+void DccTransfer::setStatus(DccStatus status, const QString& statusDetail)
{
DccStatus oldStatus=dccStatus;
dccStatus=status;
+ dccStatusDetail=statusDetail;
if (oldStatus!=status) emit statusChanged(this);
}
diff --git a/konversation/dcctransfer.h b/konversation/dcctransfer.h
index 8c95285..6bf6081 100644
--- a/konversation/dcctransfer.h
+++ b/konversation/dcctransfer.h
@@ -90,7 +90,7 @@ class DccTransfer : public QObject, public KListViewItem
void startAutoUpdateView();
void stopAutoUpdateView();
- void setStatus(DccStatus status);
+ void setStatus(DccStatus status, const QString& statusDetail = QString::null);
virtual void setFilePath(const QString& _filePath) = 0;
// called from updateView()
@@ -112,6 +112,7 @@ class DccTransfer : public QObject, public KListViewItem
// transfer information
DccType dccType;
DccStatus dccStatus;
+ QString dccStatusDetail;
bool bResumed;
unsigned long transferringPosition;
unsigned long transferStartPosition;
diff --git a/konversation/dcctransferrecv.cpp b/konversation/dcctransferrecv.cpp
index bc80798..a088003 100644
--- a/konversation/dcctransferrecv.cpp
+++ b/konversation/dcctransferrecv.cpp
@@ -146,7 +146,7 @@ void DccTransferRecv::requestResume()
kdDebug() << "DccTransferRecv::requestResume()" << endl;
bResumed = true;
- setStatus(WaitingRemote);
+ setStatus(WaitingRemote, i18n("Requesting to accept resuming"));
// Rollback for Resume
unsigned long rb=KonversationApplication::preferences.getDccRollback();
@@ -299,7 +299,7 @@ void DccTransferRecv::connectionTimeout() // slot
{
kdDebug() << "DccTransferRecv::connectionTimeout()" << endl;
- setStatus(Failed);
+ setStatus(Failed, i18n("Timed out"));
updateView();
cleanUp();
}
diff --git a/konversation/dcctransfersend.cpp b/konversation/dcctransfersend.cpp
index 9caa7a8..a64cd36 100644
--- a/konversation/dcctransfersend.cpp
+++ b/konversation/dcctransfersend.cpp
@@ -108,10 +108,10 @@ void DccTransferSend::start() // public slot
kdDebug() << "DccTransferSend::start(): own Address=" << ownIp << ":" << ownPort \
<< endl;
- setStatus(WaitingRemote);
+ setStatus(WaitingRemote, i18n("Waiting the remote user's acceptance"));
updateView();
- startConnectionTimer(60); // wait for 60 sec
+ startConnectionTimer(90); // wait for 90 sec
emit sendReady(partnerNick,fileName,getNumericalIpText(ownIp),ownPort,fileSize);
}
@@ -251,7 +251,7 @@ void DccTransferSend::connectionTimeout() // slot
{
kdDebug() << "DccTransferSend::connectionTimeout()" << endl;
- setStatus(Failed);
+ setStatus(Failed, i18n("Timed out"));
updateView();
cleanUp();
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic