[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: [Patch] System Settings : Improve General/Advanced tabs visibility
From: "Nicolas Ternisien" <nicolas.ternisien () gmail ! com>
Date: 2008-03-28 0:14:29
Message-ID: ccba71b50803271714t5d512b42l2a1b308c728b8571 () mail ! gmail ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Next attempt ++
http://stuff.forum-software.org/kde/systemsettings-tab-and-tool.png
http://stuff.forum-software.org/kde/systemsettings-tab-and-tool2.png
Appart the fact that the setFlat() option does not work with Oxygen theme, I
particularly like this version, which compiles all requests and comments.
Please give me your opinions.
PS: I also think this is my last attempt to match all-people-requests for
System Settings =)
On Thu, Mar 27, 2008 at 2:02 PM, Michael Lentner <michaell@gmx.net> wrote:
> Am Donnerstag, 27. Mrz 2008 schrieb Nicolas Ternisien:
> > It's an incredible long debate ;-)
> >
> > Why not having General Settings / Advanced Settings tabs, like to
> > previous patch, but having a trailing Settings word, to improve
> > visibility of those tabs ? About font size and icons, I have no
> > personal opinion, while those tabs are visible and easily clickable.
> > (and yes, why not having the frame border again, by using KTabWidget)
>
> The (little) issue I had with the previous appearance of systemsettings
> was
> that the white space on the right side made it appear asymmetric. My
> mockup
> fixes this and removes by the oppurtunity the unnecessary overview button,
> what makes it simpler without removing functionality. Imho that's what all
> want. My idea was to have dynamic widgets on the bar, the overview button
> should only be visible if a kcm is shown, while the general / advances
> settings buttons and the search bar only if the overview is shown. But I'm
> unsure, how it would feel if the overview button gets pressed and another
> button appears directly under the mouse. Could be also no problem at all
> ;)
>
> Michael
>
[Attachment #5 (text/html)]
Next attempt ++<br><br><a \
href="http://stuff.forum-software.org/kde/systemsettings-tab-and-tool.png">http://stuff.forum-software.org/kde/systemsettings-tab-and-tool.png</a><br><a \
href="http://stuff.forum-software.org/kde/systemsettings-tab-and-tool2.png">http://stuff.forum-software.org/kde/systemsettings-tab-and-tool2.png</a><br>
<br>Appart the fact that the setFlat() option does not work with Oxygen theme, I \
particularly like this version, which compiles all requests and \
comments.<br><br>Please give me your opinions.<br><br>PS: I also think this is my \
last attempt to match all-people-requests for System Settings =)<br> <br><div \
class="gmail_quote">On Thu, Mar 27, 2008 at 2:02 PM, Michael Lentner <<a \
href="mailto:michaell@gmx.net">michaell@gmx.net</a>> wrote:<br><blockquote \
class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt \
0pt 0.8ex; padding-left: 1ex;"> Am Donnerstag, 27. Mrz 2008 schrieb Nicolas \
Ternisien:<br> <div class="Ih2E3d">> It's an incredible long debate ;-)<br>
><br>
> Why not having General Settings / Advanced Settings tabs, like to<br>
> previous patch, but having a trailing Settings word, to improve<br>
> visibility of those tabs ? About font size and icons, I have no<br>
> personal opinion, while those tabs are visible and easily clickable.<br>
> (and yes, why not having the frame border again, by using KTabWidget)<br>
<br>
</div>The (little) issue I had with the previous appearance of systemsettings was<br>
that the white space on the right side made it appear asymmetric. My mockup<br>
fixes this and removes by the oppurtunity the unnecessary overview button,<br>
what makes it simpler without removing functionality. Imho that's what all<br>
want. My idea was to have dynamic widgets on the bar, the overview button<br>
should only be visible if a kcm is shown, while the general / advances<br>
settings buttons and the search bar only if the overview is shown. But I'm<br>
unsure, how it would feel if the overview button gets pressed and another<br>
button appears directly under the mouse. Could be also no problem at all ;)<br>
<font color="#888888"><br>
Michael<br>
</font></blockquote></div><br>
["system-settings-tab-and-toolbar.patch" (text/x-diff)]
Index: moduletabbar.cpp
===================================================================
--- moduletabbar.cpp (révision 790624)
+++ moduletabbar.cpp (copie de travail)
@@ -28,15 +28,11 @@
ModuleTabBar::ModuleTabBar ( QWidget *parent )
: KTabBar(parent)
{
-
+ /*
+ QFont modifiedFont = font();
+ modifiedFont.setPointSize( modifiedFont.pointSize() * 1.2 );
+ setFont(modifiedFont);
+ */
}
-QSize ModuleTabBar::tabSizeHint ( int index ) const {
- QSize tabSize = KTabBar::tabSizeHint(index);
-
- tabSize.setWidth( size().width() / count() -2);
-
- return tabSize;
-}
-
#include "moduletabbar.moc"
Index: categories/settings-general.desktop
===================================================================
--- categories/settings-general.desktop (révision 790624)
+++ categories/settings-general.desktop (copie de travail)
@@ -4,8 +4,9 @@
X-KDE-Weight=100
X-KDE-System-Settings-Category=general
X-KDE-System-Settings-Parent-Category=
+Icon=preferences-system
-Name=General
+Name=General Settings
Name[ar]=عام
Name[be]=Агульныя
Name[bg]=Основно
Index: categories/settings-advanced.desktop
===================================================================
--- categories/settings-advanced.desktop (révision 790624)
+++ categories/settings-advanced.desktop (copie de travail)
@@ -4,8 +4,9 @@
X-KDE-Weight=200
X-KDE-System-Settings-Category=advanced
X-KDE-System-Settings-Parent-Category=
+Icon=applications-engineering
-Name=Advanced
+Name=Advanced Settings
Name[af]=Gevorderde
Name[ar]=متقدم
Name[be]=Асаблівы
Index: moduletabbar.h
===================================================================
--- moduletabbar.h (révision 790624)
+++ moduletabbar.h (copie de travail)
@@ -31,9 +31,6 @@
public:
ModuleTabBar (QWidget *parent=0);
-protected:
-
- virtual QSize tabSizeHint(int index) const;
};
#endif
Index: mainwindow.cpp
===================================================================
--- mainwindow.cpp (révision 790624)
+++ mainwindow.cpp (copie de travail)
@@ -25,6 +25,7 @@
#include <QApplication>
#include <QLabel>
+#include <QPushButton>
#include <QLayout>
#include <QStackedWidget>
@@ -147,8 +148,13 @@
void MainWindow::buildMainWidget()
{
- windowStack = new QStackedWidget(this);
-
+ QWidget* mainWidget = new QWidget(this);
+ QVBoxLayout* mainLayout = new QVBoxLayout();
+ mainWidget->setLayout(mainLayout);
+
+ mainLayout->setContentsMargins(0, 4, 0, 0);
+ mainLayout->addWidget(moduleTabs);
+
// Top level pages.
moduleTabs->show();
@@ -180,94 +186,32 @@
connect( tv, SIGNAL(doubleClicked(const QModelIndex&)),
SLOT(selectionChanged(const QModelIndex&)));
}
- connect( search, SIGNAL(textChanged(const QString&)),
+ connect( moduleTabs->searchLineEdit(), SIGNAL(textChanged(const QString&)),
kcsfpm, SLOT(setFilterRegExp(const QString&)));
connect( kcsfpm, SIGNAL(layoutChanged()),
this, SLOT(updateSearchHits()) );
- moduleTabs->addTab(tv, item->service->name() );
+ QStackedWidget* moduleStackedWidget = new QStackedWidget(this);
+ moduleStackedWidget->addWidget(tv);
+ moduleStackedWidget->setCurrentWidget(tv);
+ moduleTabs->addTab(moduleStackedWidget, SmallIcon(item->service->icon()), \
item->service->name() );
+
// record the index of the newly added tab so that we can later update the \
label showing // number of search hits
modelToTabHash.insert( kcsfpm, moduleTabs->count() - 1 );
}
- windowStack->addWidget(moduleTabs);
- windowStack->setCurrentWidget(moduleTabs);
- setCentralWidget(windowStack);
+
+ setCentralWidget(mainWidget);
}
void MainWindow::buildActions()
{
addAction(actionCollection()->addAction(KStandardAction::Quit, \
qobject_cast<QObject*>(this), SLOT(close())));
- showOverviewAction = actionCollection()->addAction("showAll");
- showOverviewAction->setIcon( KIcon(QApplication::layoutDirection() == \
Qt::RightToLeft?"go-next":"go-previous") );
- showOverviewAction->setText( i18n("Overview") );
- connect(showOverviewAction, SIGNAL(triggered()), this, SLOT(showOverview()));
- showOverviewAction->setEnabled(false);
- addAction(showOverviewAction);
+ connect(moduleTabs->showOverviewButton(), SIGNAL(clicked()), this, \
SLOT(showOverview()));
- QWidget *searchWid = new QWidget( this );
- QLabel * searchIcon = new QLabel( searchWid );
- searchIcon->setPixmap( BarIcon( "system-search" ) );
- QLabel *searchLabel = new QLabel( searchWid );
- searchLabel->setObjectName( QLatin1String("SearchLabel"));
- searchLabel->setText( i18n("S&earch:") );
- searchLabel->setFont(KGlobalSettings::toolBarFont());
- searchLabel->setMargin(2);
- QHBoxLayout * hlay = new QHBoxLayout( searchWid );
- hlay->addWidget( searchIcon );
- hlay->addWidget( searchLabel );
- searchWid->setLayout( hlay );
-
- searchText = new KAction( this );
- searchText->setDefaultWidget(searchWid);
-
- actionCollection()->addAction( "searchText", searchText );
- searchText->setShortcut(Qt::Key_F6);
- addAction(searchText);
-
- // Search edit box and result labels
- QWidget *hbox = new QWidget( this );
-
- search = new KLineEdit( hbox );
- search->setObjectName(QLatin1String("search"));
- search->setClearButtonShown( true );
- search->setFocusPolicy( Qt::StrongFocus );
- searchLabel->setBuddy( search );
- // Is that needed? I thought that's what a buddy is for?
- connect(searchText, SIGNAL(triggered()), search, SLOT(setFocus()));
-
- QWidget* vbox = new QWidget(hbox);
- // Set a non empty content to prevent the toolbar from getting taller when
- // starting a search (at least with Oxygen style).
- generalHitLabel = new QLabel(" ", vbox);
- advancedHitLabel = new QLabel(" ", vbox);
-
- QVBoxLayout* vlayout = new QVBoxLayout;
- vlayout->setMargin(0);
- vlayout->setSpacing(0);
- vlayout->addWidget(generalHitLabel);
- vlayout->addWidget(advancedHitLabel);
- vlayout->setStretchFactor(generalHitLabel,1);
- vlayout->setStretchFactor(advancedHitLabel,1);
- vbox->setLayout(vlayout);
-
- QHBoxLayout* hlayout = new QHBoxLayout;
- hlayout->setMargin(0);
- hlayout->addWidget(search);
- hlayout->addWidget(vbox);
- hlayout->setStretchFactor(search,1);
- hlayout->setStretchFactor(vbox,1);
- hbox->setLayout(hlayout);
-
- searchAction = new KAction( "none", this );
- searchAction->setDefaultWidget(hbox);
- actionCollection()->addAction( "search", searchAction );
- searchAction->setShortcutConfigurable( false );
- hbox->setWhatsThis( i18n("Search Bar<p>Enter a search term.</p>") );
-
}
@@ -276,18 +220,19 @@
if (!groupWidget->queryClose()) {
return;
}
- windowStack->setCurrentWidget(moduleTabs);
+
+ QStackedWidget* moduleStackedWidget = qobject_cast<QStackedWidget*>( \
moduleTabs->currentWidget() ); + moduleStackedWidget->setCurrentIndex(0);
// Reset the widget for normal all widget viewing
groupWidget = 0;
widgetChange();
- showOverviewAction->setEnabled(false);
+ moduleTabs->showOverviewButton()->setEnabled(false);
- searchText->setEnabled(true);
- search->setEnabled(true);
- searchAction->setEnabled(true);
-
+ moduleTabs->searchText()->setEnabled(true);
+ moduleTabs->searchLineEdit()->setEnabled(true);
+ moduleTabs->setTabsEnabled(true);
}
void MainWindow::selectionChanged( const QModelIndex& selected )
@@ -310,11 +255,13 @@
if ( groupWidget )
return;
+ QStackedWidget* moduleStackedWidget = qobject_cast<QStackedWidget*>( \
moduleTabs->currentWidget() ); +
groupWidget = moduleItemToWidgetDict[mItem->service];
if( !groupWidget ) {
- groupWidget = new KCMultiWidget(windowStack, Qt::NonModal); // THAT ZERO IS \
NEW (actually the 0 can go, jr)
- windowStack->addWidget(groupWidget);
+ groupWidget = new KCMultiWidget(moduleStackedWidget, Qt::NonModal); // THAT \
ZERO IS NEW (actually the 0 can go, jr) + \
moduleStackedWidget->addWidget(groupWidget); \
moduleItemToWidgetDict.insert(mItem->service,groupWidget);
// That shouldn't be needed.
@@ -334,13 +281,14 @@
// which makes the show() call below segfault. The groupWidget test
// above should prevent execution reaching here while the KCMultiWidget is
// visible
- windowStack->setCurrentWidget( groupWidget );
+ moduleStackedWidget->setCurrentWidget( groupWidget );
setCaption( mItem->service->name() );
- showOverviewAction->setEnabled(true);
- searchText->setEnabled(false);
- search->setEnabled(false);
- searchAction->setEnabled(false);
+ moduleTabs->showOverviewButton()->setEnabled(true);
+
+ moduleTabs->searchText()->setEnabled(false);
+ moduleTabs->searchLineEdit()->setEnabled(false);
+ moduleTabs->setTabsEnabled(false);
}
@@ -351,7 +299,8 @@
void MainWindow::widgetChange() {
if( !groupWidget ) {
setCaption(QString());
- KCategorizedView * currentView = qobject_cast<KCategorizedView *>( \
moduleTabs->currentWidget() ); + QStackedWidget* moduleStackedWidget = \
qobject_cast<QStackedWidget*>( moduleTabs->currentWidget() ); + \
KCategorizedView * currentView = qobject_cast<KCategorizedView *>( \
moduleStackedWidget->widget(0) ); currentView->selectionModel()->clear();
}
}
@@ -365,19 +314,19 @@
void MainWindow::updateSearchHits()
{
// if the search lineedit is empty, clear the search labels
- if ( search->text().isEmpty() ) {
- generalHitLabel->setText(QString());
- advancedHitLabel->setText(QString());
+ if ( moduleTabs->searchLineEdit()->text().isEmpty() ) {
+ moduleTabs->generalHitLabel()->setText(QString());
+ moduleTabs->advancedHitLabel()->setText(QString());
} else { // otherwise update the tab for the sender()
for ( int i = 0; i < moduleTabs->count(); i++ ) {
const KCategorizedSortFilterProxyModel * kcsfpm = \
static_cast<KCategorizedSortFilterProxyModel*>( sender() ); if (kcsfpm && \
modelToTabHash.contains( kcsfpm ) ) { switch ( modelToTabHash[ kcsfpm ] ) {
case 0:
- generalHitLabel->setText(i18np("%1 hit in General","%1 hits \
in General", kcsfpm->rowCount())); + \
moduleTabs->generalHitLabel()->setText(i18np("%1 hit in General","%1 hits in \
General", kcsfpm->rowCount())); break;
case 1:
- advancedHitLabel->setText(i18np("%1 hit in Advanced","%1 \
hits in Advanced",kcsfpm->rowCount())); + \
moduleTabs->advancedHitLabel()->setText(i18np("%1 hit in Advanced","%1 hits in \
Advanced",kcsfpm->rowCount())); break;
default:
kDebug() << "Hits found in top level system settings other \
than General, Advanced, and the UI is hardcoded to only indicate hits \
in these tabs";
Index: moduletab.cpp
===================================================================
--- moduletab.cpp (révision 790624)
+++ moduletab.cpp (copie de travail)
@@ -21,44 +21,48 @@
#include "moduletab.h"
#include <QTabBar>
-#include <QFont>
-#include <QStackedWidget>
+#include <QLabel>
#include <QVBoxLayout>
+#include <QPushButton>
+#include <QApplication>
#include <kdebug.h>
+#include <kiconloader.h>
+#include <kicon.h>
+#include <kglobalsettings.h>
+#include <klocale.h>
+#include <klineedit.h>
#include "moduletabbar.h"
class ModuleTabPrivate {
public:
- ModuleTabBar* tabBar;
-
- QStackedWidget* stackedWidget;
-
+ KLineEdit * search;
+ QWidget* searchText;
+
+ QWidget* searchBar;
+
+ QPushButton *showOverviewButton;
+
+ QLabel *generalHitLabel;
+ QLabel *advancedHitLabel;
+
};
ModuleTab::ModuleTab ( QWidget *parent )
- : QWidget( parent ), d(new ModuleTabPrivate())
+ : KTabWidget( parent ), d(new ModuleTabPrivate())
{
- QVBoxLayout* mainLayout = new QVBoxLayout(this);
- mainLayout->setSpacing(0);
- d->tabBar = new ModuleTabBar(this);
- d->tabBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
- d->tabBar->setShape(QTabBar::TriangularNorth);
- mainLayout->addWidget(d->tabBar);
+ ModuleTabBar* moduleTabBar = new ModuleTabBar(this);
+ moduleTabBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
- QFont font = d->tabBar->font();
- font.setBold(true);
- font.setPointSize( font.pointSize() * 1.2 );
- d->tabBar->setFont(font);
+ setTabBar(moduleTabBar);
- d->stackedWidget = new QStackedWidget(this);
- mainLayout->addWidget(d->stackedWidget);
-
- connect(d->tabBar, SIGNAL(currentChanged( int )), d->stackedWidget, \
SLOT(setCurrentIndex(int)));
- connect(d->tabBar, SIGNAL(currentChanged( int )), this, \
SIGNAL(currentChanged(int)));
-
+ createShowOverviewButton();
+ createSearchBar();
+
+ setCornerWidget(d->showOverviewButton, Qt::TopLeftCorner);
+ setCornerWidget(d->searchBar, Qt::TopRightCorner);
}
ModuleTab::~ModuleTab()
@@ -66,22 +70,118 @@
delete d;
}
-int ModuleTab::count() const
-{
- return d->stackedWidget->count();
+void ModuleTab::createShowOverviewButton() {
+ d->showOverviewButton = new QPushButton(this);
+ d->showOverviewButton->setFlat(true);
+ d->showOverviewButton->setIcon( KIcon(QApplication::layoutDirection() == \
Qt::RightToLeft?"go-next":"go-previous") ); + d->showOverviewButton->setText( \
i18n("Overview") ); + d->showOverviewButton->setEnabled(false);
+
+
}
+void ModuleTab::createSearchBar() {
-QWidget* ModuleTab::currentWidget() const
-{
- return d->stackedWidget->currentWidget();
+ d->searchText = new QWidget( this );
+ QLabel * searchIcon = new QLabel( d->searchText );
+ searchIcon->setPixmap( SmallIcon( "system-search" ) );
+ QLabel *searchLabel = new QLabel( d->searchText );
+ searchLabel->setObjectName( QLatin1String("SearchLabel"));
+ searchLabel->setText( i18n("S&earch:") );
+ searchLabel->setFont(KGlobalSettings::toolBarFont());
+ searchLabel->setMargin(0);
+ QHBoxLayout * hlay = new QHBoxLayout( d->searchText );
+ hlay->addWidget( searchIcon );
+ hlay->addWidget( searchLabel );
+ d->searchText->setLayout( hlay );
+
+ //d->searchText = new KAction( this );
+ //d->searchText->setDefaultWidget(d->searchText);
+
+ //actionCollection()->addAction( "d->searchText", d->searchText );
+ //d->searchText->setShortcut(Qt::Key_F6);
+ //addAction(d->searchText);
+
+ // Search edit box and result labels
+ QWidget *hbox = new QWidget( this );
+
+ d->search = new KLineEdit( hbox );
+ d->search->setObjectName(QLatin1String("search"));
+ d->search->setClearButtonShown( true );
+ d->search->setFocusPolicy( Qt::StrongFocus );
+ searchLabel->setBuddy( d->search );
+ // Is that needed? I thought that's what a buddy is for?
+ //connect(d->searchText, SIGNAL(triggered()), d->search, SLOT(setFocus()));
+
+ QWidget* vbox = new QWidget(hbox);
+ // Set a non empty content to prevent the toolbar from getting taller when
+ // starting a search (at least with Oxygen style).
+ d->generalHitLabel = new QLabel(" ", vbox);
+ d->advancedHitLabel = new QLabel(" ", vbox);
+
+ QVBoxLayout* vlayout = new QVBoxLayout;
+ vlayout->setMargin(0);
+ vlayout->setSpacing(0);
+ vlayout->addWidget(d->generalHitLabel);
+ vlayout->addWidget(d->advancedHitLabel);
+ vlayout->setStretchFactor(d->generalHitLabel,1);
+ vlayout->setStretchFactor(d->advancedHitLabel,1);
+ vbox->setLayout(vlayout);
+
+ QHBoxLayout* hlayout = new QHBoxLayout;
+ hlayout->setMargin(0);
+ hlayout->addWidget(d->search);
+ hlayout->addWidget(vbox);
+ hlayout->setStretchFactor(d->search,1);
+ hlayout->setStretchFactor(vbox,1);
+ hbox->setLayout(hlayout);
+
+ /*
+ searchAction = new KAction( "none", this );
+ searchAction->setDefaultWidget(hbox);
+ actionCollection()->addAction( "search", searchAction );
+ searchAction->setShortcutConfigurable( false );
+ */
+
+ hbox->setWhatsThis( i18n("Search Bar<p>Enter a search term.</p>") );
+
+ d->searchBar = new QWidget( this );
+ QHBoxLayout* searchBarLayout = new QHBoxLayout();
+
+ d->searchBar->setLayout(searchBarLayout);
+
+ searchBarLayout->setSpacing(0);
+ searchBarLayout->setMargin(0);
+ searchBarLayout->addWidget(d->searchText);
+ searchBarLayout->addWidget(d->search);
+
}
-void ModuleTab::addTab(QWidget* view, const QString& name)
-{
- d->tabBar->addTab(name);
- d->stackedWidget->addWidget(view);
+KLineEdit* ModuleTab::searchLineEdit() {
+ return d->search;
}
+QWidget* ModuleTab::searchText() {
+ return d->searchText;
+}
+QLabel* ModuleTab::generalHitLabel() {
+ return d->generalHitLabel;
+}
+QLabel* ModuleTab::advancedHitLabel() {
+ return d->advancedHitLabel;
+}
+QPushButton* ModuleTab::showOverviewButton() {
+ return d->showOverviewButton;
+}
+
+void ModuleTab::setTabsEnabled(bool enabled) {
+ for (int i=0; i<count(); ++i) {
+ if (i==currentIndex())
+ continue;
+
+ setTabEnabled(i, enabled);
+ }
+}
+
#include "moduletab.moc"
Index: mainwindow.h
===================================================================
--- mainwindow.h (révision 790624)
+++ mainwindow.h (copie de travail)
@@ -28,6 +28,7 @@
class QAbstractItemModel;
class QAction;
+class QActionGroup;
class QLabel;
class QModelIndex;
class QStackedWidget;
@@ -66,26 +67,16 @@
KCModuleModel *model;
KService::List categories;
KService::List modules;
- MenuItem * rootItem;
- QStackedWidget *windowStack;
+ MenuItem *rootItem;
ModuleTab *moduleTabs;
- KLineEdit * search;
KCMultiWidget *groupWidget;
QHash<KService::Ptr,KCMultiWidget*> moduleItemToWidgetDict;
QHash<const QAbstractItemModel *,int> modelToTabHash;
- QAction *showOverviewAction;
- KAction *searchText;
- KAction *searchClear;
- KAction *searchAction;
-
void buildMainWidget();
void buildActions();
-
- QLabel *generalHitLabel;
- QLabel *advancedHitLabel;
};
bool pageLessThan( MenuItem *page1, MenuItem *page2 );
Index: moduletab.h
===================================================================
--- moduletab.h (révision 790624)
+++ moduletab.h (copie de travail)
@@ -22,31 +22,37 @@
#include <QList>
#include <QString>
+#include <QIcon>
#include <ktabwidget.h>
#include <ktabbar.h>
class ModuleTabPrivate;
-class ModuleTab : public QWidget {
+class QLabel;
+class QPushButton;
+class KLineEdit;
+
+class ModuleTab : public KTabWidget {
Q_OBJECT
public:
ModuleTab (QWidget *parent=0);
~ModuleTab();
-
- int count() const;
- QWidget* currentWidget() const;
+ QPushButton* showOverviewButton();
+ QWidget* searchText();
+ KLineEdit* searchLineEdit();
- void addTab(QWidget* view, const QString& name);
+ QLabel* generalHitLabel();
+ QLabel* advancedHitLabel();
-signals:
-
- void currentChanged ( int index );
-
+ void setTabsEnabled(bool enabled);
private:
+ void createShowOverviewButton();
+ void createSearchBar();
+
ModuleTabPrivate* const d;
};
Index: systemsettingsui.rc
===================================================================
--- systemsettingsui.rc (révision 790624)
+++ systemsettingsui.rc (copie de travail)
@@ -1,6 +1,7 @@
<!DOCTYPE kpartgui>
<kpartgui name="systemsettings" version="1">
+<!--
<ToolBar name="mainToolBar" iconText="icontextright">
<Action name="showAll"/>
<Separator/>
@@ -8,6 +9,7 @@
<Action name="searchText"/>
<Action name="search"/>
</ToolBar>
+-->
<ActionProperties>
<Action shortcut="Ctrl+O" name="showAll" />
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic