[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/libkleo/ui
From: Marc Mutz <mutz () kde ! org>
Date: 2008-04-25 12:21:16
Message-ID: 1209126076.661897.10262.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 800994 by mutz:
Massage New functionality into actually working
M +49 -9 directoryserviceswidget.cpp
M +2 -0 directoryserviceswidget.h
M +19 -4 directoryserviceswidget.ui
--- trunk/KDE/kdepim/libkleo/ui/directoryserviceswidget.cpp #800993:800994
@@ -42,6 +42,8 @@
#include <QSpinBox>
#include <QComboBox>
#include <QHeaderView>
+#include <QMenu>
+#include <QAction>
#include <boost/bind.hpp>
@@ -59,6 +61,7 @@
static KUrl defaultX509Service() {
KUrl url;
url.setProtocol( "ldap" );
+ url.setHost( i18nc("default server name, keep it a valid domain name, ie. no \
spaces", "server") ); return url;
}
static KUrl defaultOpenPGPService() {
@@ -393,27 +396,33 @@
int row = selectedRow();
if ( row < 0 )
row = currentRow();
- QModelIndex index;
- if ( row < 0 ) {
+ if ( row < 0 )
if ( protocols & OpenPGPProtocol )
- index = model.addOpenPGPService( defaultOpenPGPService() );
+ slotNewOpenPGPClicked();
else if ( protocols & X509Protocol )
- index = model.addX509Service( defaultX509Service() );
+ slotNewX509Clicked();
else
assert( !"This should not happen.");
- } else {
- index = model.duplicateRow( row );
- }
+ else
+ edit( model.duplicateRow( row ) );
+ }
+ void edit( const QModelIndex & index ) {
if ( index.isValid() ) {
ui.treeView->clearSelection();
ui.treeView->edit( index );
}
}
+ void slotNewX509Clicked() {
+ edit( model.addX509Service( defaultX509Service() ) );
+ }
+ void slotNewOpenPGPClicked() {
+ edit( model.addOpenPGPService( defaultOpenPGPService() ) );
+ }
void slotDeleteClicked() {
model.deleteRow( selectedRow() );
}
void slotSelectionChanged() {
- ui.deletePB->setEnabled( selectedRow() >= 0 );
+ ui.deleteTB->setEnabled( selectedRow() >= 0 );
}
void slotShowUserAndPasswordToggled( bool on ) {
QHeaderView * const hv = ui.treeView->header();
@@ -433,16 +442,46 @@
void showHideColumns();
+ void enableDisableActions() {
+ ui.newX509Action.setEnabled( protocols & X509Protocol );
+ ui.newOpenPGPAction.setEnabled( protocols & OpenPGPProtocol );
+ if ( protocols == AllProtocols ) {
+ ui.newTB->setMenu( &ui.newMenu );
+ ui.newTB->setPopupMode( QToolButton::MenuButtonPopup );
+ } else {
+ ui.newTB->setMenu( 0 );
+ ui.newTB->setPopupMode( QToolButton::DelayedPopup );
+ }
+ }
+
private:
Protocols protocols;
Model model;
Delegate delegate;
struct UI : Ui_DirectoryServicesWidget {
+ QAction newX509Action;
+ QAction newOpenPGPAction;
+ QMenu newMenu;
explicit UI( DirectoryServicesWidget * q )
- : Ui_DirectoryServicesWidget()
+ : Ui_DirectoryServicesWidget(),
+ newX509Action( i18nc("New X.509 Directory Server", "X.509"), q ),
+ newOpenPGPAction( i18nc("New OpenPGP Directory Server", "OpenPGP"), q \
), + newMenu( q )
{
+ newX509Action.setObjectName( "newX509Action" );
+ newOpenPGPAction.setObjectName( "newOpenPGPAction" );
+ newMenu.setObjectName( "newMenu" );
+
setupUi( q );
+
+ connect( &newX509Action, SIGNAL(triggered()), q, \
SLOT(slotNewX509Clicked()) ); + connect( &newOpenPGPAction, \
SIGNAL(triggered()), q, SLOT(slotNewOpenPGPClicked()) ); +
+ newMenu.addAction( &newX509Action );
+ newMenu.addAction( &newOpenPGPAction );
+
+ newTB->setMenu( &newMenu );
}
} ui;
@@ -473,6 +512,7 @@
return;
d->protocols = protocols;
d->showHideColumns();
+ d->enableDisableActions();
}
DirectoryServicesWidget::Protocols DirectoryServicesWidget::allowedProtocols() const \
{
--- trunk/KDE/kdepim/libkleo/ui/directoryserviceswidget.h #800993:800994
@@ -87,6 +87,8 @@
class Private;
Private * const d;
Q_PRIVATE_SLOT( d, void slotNewClicked() )
+ Q_PRIVATE_SLOT( d, void slotNewX509Clicked() )
+ Q_PRIVATE_SLOT( d, void slotNewOpenPGPClicked() );
Q_PRIVATE_SLOT( d, void slotDeleteClicked() )
Q_PRIVATE_SLOT( d, void slotSelectionChanged() )
Q_PRIVATE_SLOT( d, void slotShowUserAndPasswordToggled(bool) )
--- trunk/KDE/kdepim/libkleo/ui/directoryserviceswidget.ui #800993:800994
@@ -50,7 +50,13 @@
<number>0</number>
</property>
<item>
- <widget class="QPushButton" name="newPB" >
+ <widget class="QToolButton" name="newTB" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="toolTip" >
<string>Click to add a service</string>
</property>
@@ -60,10 +66,16 @@
<property name="text" >
<string>New</string>
</property>
+ <property name="popupMode" >
+ <enum>QToolButton::MenuButtonPopup</enum>
+ </property>
+ <property name="toolButtonStyle" >
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="deletePB" >
+ <widget class="QToolButton" name="deleteTB" >
<property name="enabled" >
<bool>false</bool>
</property>
@@ -76,6 +88,9 @@
<property name="text" >
<string>Delete</string>
</property>
+ <property name="toolButtonStyle" >
+ <enum>Qt::ToolButtonTextBesideIcon</enum>
+ </property>
</widget>
</item>
<item>
@@ -112,7 +127,7 @@
<resources/>
<connections>
<connection>
- <sender>newPB</sender>
+ <sender>newTB</sender>
<signal>clicked()</signal>
<receiver>DirectoryServicesWidget</receiver>
<slot>slotNewClicked()</slot>
@@ -128,7 +143,7 @@
</hints>
</connection>
<connection>
- <sender>deletePB</sender>
+ <sender>deleteTB</sender>
<signal>clicked()</signal>
<receiver>DirectoryServicesWidget</receiver>
<slot>slotDeleteClicked()</slot>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic