mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-20 00:41:23 +00:00
put GUI dialog in a separate .ui file and thus fixes the icon not being selected after the user clicks on it.
left Q3IconView (did not port to QListView) so to not introduce other bugs on the KPushButton, the user icon is displayed, it's tiny in Oxygen style while it's the correct size in other styles: Oxygen bug? BUG=134225 svn path=/trunk/KDE/kdebase/apps/; revision=737619
This commit is contained in:
parent
9baa3514b6
commit
397d78fb81
|
@ -7,7 +7,7 @@ add_definitions(-DQT3_SUPPORT)
|
|||
set(kcm_useraccount_PART_SRCS chfnprocess.cpp main.cpp chfacedlg.cpp )
|
||||
|
||||
|
||||
kde4_add_ui_files(kcm_useraccount_PART_SRCS main_widget.ui )
|
||||
kde4_add_ui_files(kcm_useraccount_PART_SRCS main_widget.ui faceDlg.ui)
|
||||
|
||||
kde4_add_kcfg_files(kcm_useraccount_PART_SRCS settings.kcfgc )
|
||||
|
||||
|
|
|
@ -63,42 +63,23 @@ ChFaceDlg::ChFaceDlg(const QString& picsdir, QWidget *parent, const char *name,
|
|||
setDefaultButton( Ok );
|
||||
showButtonSeparator( true );
|
||||
|
||||
QWidget *page = new QWidget(this);
|
||||
setMainWidget( page );
|
||||
QWidget *faceDlg = new QWidget;
|
||||
ui.setupUi(faceDlg);
|
||||
|
||||
QVBoxLayout *top = new QVBoxLayout(page);
|
||||
top->setMargin(0);
|
||||
top->setSpacing(spacingHint());
|
||||
setMainWidget(faceDlg);
|
||||
|
||||
QLabel *header = new QLabel( i18n("Select a new face:"), page );
|
||||
top->addWidget( header );
|
||||
connect( ui.m_FacesWidget, SIGNAL( selectionChanged( Q3IconViewItem * ) ), SLOT( slotFaceWidgetSelectionChanged( Q3IconViewItem * ) ) );
|
||||
|
||||
m_FacesWidget = new K3IconView( page );
|
||||
m_FacesWidget->setSelectionMode( Q3IconView::Single );
|
||||
m_FacesWidget->setItemsMovable( false );
|
||||
m_FacesWidget->setMinimumSize( 400, 200 );
|
||||
connect( ui.m_FacesWidget, SIGNAL( doubleClicked( Q3IconViewItem *, const QPoint & ) ), SLOT(accept()) );
|
||||
connect( this, SIGNAL(okClicked()), this, SLOT(accept()));
|
||||
|
||||
connect( m_FacesWidget, SIGNAL( selectionChanged( Q3IconViewItem * ) ), SLOT( slotFaceWidgetSelectionChanged( Q3IconViewItem * ) ) );
|
||||
connect( ui.browseBtn, SIGNAL( clicked() ), SLOT( slotGetCustomImage() ) );
|
||||
|
||||
connect( m_FacesWidget, SIGNAL( doubleClicked( Q3IconViewItem *, const QPoint & ) ), SLOT(accept()) );
|
||||
connect( this, SIGNAL(okClicked()),this,SLOT(accept()));
|
||||
|
||||
top->addWidget( m_FacesWidget );
|
||||
|
||||
// Buttons to get more pics
|
||||
QHBoxLayout * morePics = new QHBoxLayout();
|
||||
morePics->setMargin(0);
|
||||
morePics->setSpacing(spacingHint());
|
||||
QPushButton *browseBtn = new QPushButton( i18n("Custom &Image..."), page );
|
||||
connect( browseBtn, SIGNAL( clicked() ), SLOT( slotGetCustomImage() ) );
|
||||
morePics->addWidget( browseBtn );
|
||||
#if 0
|
||||
QPushButton *acquireBtn = new QPushButton( i18n("&Acquire Image..."), page );
|
||||
acquireBtn->setEnabled( false );
|
||||
morePics->addWidget( acquireBtn );
|
||||
#endif
|
||||
morePics->addStretch();
|
||||
top->addLayout( morePics );
|
||||
|
||||
// Filling the icon view
|
||||
QDir facesDir( picsdir );
|
||||
|
@ -106,21 +87,18 @@ ChFaceDlg::ChFaceDlg(const QString& picsdir, QWidget *parent, const char *name,
|
|||
{
|
||||
QStringList picslist = facesDir.entryList( QDir::Files );
|
||||
for ( QStringList::Iterator it = picslist.begin(); it != picslist.end(); ++it )
|
||||
new Q3IconViewItem( m_FacesWidget, (*it).section(".",0,0), QPixmap( picsdir + *it ) );
|
||||
new Q3IconViewItem( ui.m_FacesWidget, (*it).section(".",0,0), QPixmap( picsdir + *it ) );
|
||||
}
|
||||
facesDir.setPath( KCFGUserAccount::userFaceDir() );
|
||||
if ( facesDir.exists() )
|
||||
{
|
||||
QStringList picslist = facesDir.entryList( QDir::Files );
|
||||
for ( QStringList::Iterator it = picslist.begin(); it != picslist.end(); ++it )
|
||||
new Q3IconViewItem( m_FacesWidget, '/'+(*it) == KCFGUserAccount::customFaceFile() ?
|
||||
new Q3IconViewItem( ui.m_FacesWidget, '/'+(*it) == KCFGUserAccount::customFaceFile() ?
|
||||
i18n("(Custom)") : (*it).section(".",0,0),
|
||||
QPixmap( KCFGUserAccount::userFaceDir() + *it ) );
|
||||
}
|
||||
|
||||
m_FacesWidget->setResizeMode( Q3IconView::Adjust );
|
||||
//m_FacesWidget->setGridX( FACE_PIX_SIZE - 10 );
|
||||
m_FacesWidget->arrangeItemsInGrid();
|
||||
|
||||
enableButtonOk( false );
|
||||
//connect( this, SIGNAL( okClicked() ), SLOT( slotSaveCustomImage() ) );
|
||||
|
@ -158,10 +136,10 @@ void ChFaceDlg::addCustomPixmap( const QString &imPath, bool saveCopy )
|
|||
#endif
|
||||
}
|
||||
|
||||
Q3IconViewItem* newface = new Q3IconViewItem( m_FacesWidget, QFileInfo(imPath).fileName().section(".",0,0), QPixmap::fromImage(pix) );
|
||||
Q3IconViewItem* newface = new Q3IconViewItem( ui.m_FacesWidget, QFileInfo(imPath).fileName().section(".",0,0), QPixmap::fromImage(pix) );
|
||||
newface->setKey( KCFGUserAccount::customKey() );// Add custom items to end
|
||||
m_FacesWidget->ensureItemVisible( newface );
|
||||
m_FacesWidget->setCurrentItem( newface );
|
||||
ui.m_FacesWidget->ensureItemVisible( newface );
|
||||
ui.m_FacesWidget->setCurrentItem( newface );
|
||||
}
|
||||
|
||||
void ChFaceDlg::slotGetCustomImage( )
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
#include <KDialog>
|
||||
#include <K3IconView> // declaration below
|
||||
|
||||
#include "ui_faceDlg.h"
|
||||
|
||||
enum FacePerm { adminOnly = 1, adminFirst = 2, userFirst = 3, userOnly = 4};
|
||||
|
||||
class ChFaceDlg : public KDialog
|
||||
|
@ -50,8 +52,8 @@ public:
|
|||
|
||||
QPixmap getFaceImage() const
|
||||
{
|
||||
if(m_FacesWidget->currentItem())
|
||||
return *(m_FacesWidget->currentItem()->pixmap());
|
||||
if(ui.m_FacesWidget->currentItem())
|
||||
return *(ui.m_FacesWidget->currentItem()->pixmap());
|
||||
else
|
||||
return QPixmap();
|
||||
}
|
||||
|
@ -66,7 +68,7 @@ private Q_SLOTS:
|
|||
private:
|
||||
void addCustomPixmap( const QString &imPath, bool saveCopy );
|
||||
|
||||
K3IconView *m_FacesWidget;
|
||||
Ui::faceDlg ui;
|
||||
};
|
||||
|
||||
#endif // CHFACEDLG_H
|
||||
|
|
78
kdepasswd/kcm/faceDlg.ui
Normal file
78
kdepasswd/kcm/faceDlg.ui
Normal file
|
@ -0,0 +1,78 @@
|
|||
<ui version="4.0" >
|
||||
<class>faceDlg</class>
|
||||
<widget class="QWidget" name="faceDlg" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>306</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>400</width>
|
||||
<height>199</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<layout class="QVBoxLayout" >
|
||||
<item>
|
||||
<widget class="QLabel" name="header" >
|
||||
<property name="text" >
|
||||
<string>Select a new face:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Q3IconView" name="m_FacesWidget" >
|
||||
<property name="resizeMode" >
|
||||
<enum>Q3IconView::Adjust</enum>
|
||||
</property>
|
||||
<property name="itemsMovable" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" >
|
||||
<item>
|
||||
<widget class="QPushButton" name="browseBtn" >
|
||||
<property name="text" >
|
||||
<string>Custom Image...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Q3IconView</class>
|
||||
<extends>Q3Frame</extends>
|
||||
<header>q3iconview.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
Reference in a new issue