[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/applets/kickoff
From: Arthur Renato Mello <arthur.mello85 () gmail ! com>
Date: 2009-04-07 19:25:52
Message-ID: 1239132352.042741.1662.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 950771 by amello:
Add a title QAction for every model added to simple applet Kickoff menu.
Uses this title as a header to calculate the correct position of new entries on menu.
M +1 -1 core/applicationmodel.cpp
M +15 -0 core/favoritesmodel.cpp
M +1 -0 core/favoritesmodel.h
M +15 -0 core/leavemodel.cpp
M +1 -0 core/leavemodel.h
M +20 -0 core/recentlyusedmodel.cpp
M +2 -0 core/recentlyusedmodel.h
M +15 -0 core/systemmodel.cpp
M +1 -0 core/systemmodel.h
M +22 -0 simpleapplet/menuview.cpp
M +2 -0 simpleapplet/menuview.h
M +17 -11 simpleapplet/simpleapplet.cpp
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/applicationmodel.cpp \
#950770:950771 @@ -374,7 +374,7 @@
switch (role) {
case Qt::DisplayRole:
- return i18n("Known Applications");
+ return i18n("All Applications");
break;
default:
return QVariant();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/favoritesmodel.cpp \
#950770:950771 @@ -253,4 +253,19 @@
return true;
}
+
+QVariant FavoritesModel::headerData(int section, Qt::Orientation orientation, int \
role) const +{
+ if (orientation != Qt::Horizontal || section != 0) {
+ return QVariant();
+ }
+
+ switch (role) {
+ case Qt::DisplayRole:
+ return i18n("Favorites");
+ break;
+ default:
+ return QVariant();
+ }
+}
#include "favoritesmodel.moc"
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/favoritesmodel.h \
#950770:950771 @@ -53,6 +53,7 @@
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex & parent);
+ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = \
Qt::DisplayRole) const;
public Q_SLOTS:
void sortFavoritesAscending();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/leavemodel.cpp \
#950770:950771 @@ -95,6 +95,21 @@
{
}
+QVariant LeaveModel::headerData(int section, Qt::Orientation orientation, int role) \
const +{
+ if (orientation != Qt::Horizontal || section != 0) {
+ return QVariant();
+ }
+
+ switch (role) {
+ case Qt::DisplayRole:
+ return i18n("Leave");
+ break;
+ default:
+ return QVariant();
+ }
+}
+
void LeaveModel::updateModel()
{
clear();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/leavemodel.h \
#950770:950771 @@ -36,6 +36,7 @@
~LeaveModel();
static QStandardItem* createStandardItem(const QString& url);
+ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = \
Qt::DisplayRole) const;
void updateModel();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/recentlyusedmodel.cpp \
#950770:950771 @@ -164,6 +164,26 @@
delete d;
}
+QVariant RecentlyUsedModel::headerData(int section, Qt::Orientation orientation, int \
role) const +{
+ if (orientation != Qt::Horizontal || section != 0) {
+ return QVariant();
+ }
+
+ switch (role) {
+ case Qt::DisplayRole:
+ if (d->recenttype == DocumentsAndApplications) {
+ return i18n("Recently Used");
+ } else if (d->recenttype == DocumentsOnly) {
+ return i18n("Recently Used Documents");
+ } else if (d->recenttype == ApplicationsOnly) {
+ return i18n("Recently Used Applications");
+ }
+ default:
+ return QVariant();
+ }
+}
+
void RecentlyUsedModel::recentDocumentAdded(const QString& path)
{
kDebug() << "Recent document added" << path;
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/recentlyusedmodel.h \
#950770:950771 @@ -51,6 +51,8 @@
explicit RecentlyUsedModel(QObject *parent = 0, RecentType recenttype = \
DocumentsAndApplications, int maxRecentApps = -1); virtual ~RecentlyUsedModel();
+ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = \
Qt::DisplayRole) const; +
public Q_SLOTS:
void clearRecentApplications();
void clearRecentDocuments();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/systemmodel.cpp \
#950770:950771 @@ -358,6 +358,21 @@
return d->placesModel->data(mapToSource(index), role);
}
+QVariant SystemModel::headerData(int section, Qt::Orientation orientation, int role) \
const +{
+ if (orientation != Qt::Horizontal || section != 0) {
+ return QVariant();
+ }
+
+ switch (role) {
+ case Qt::DisplayRole:
+ return i18n("Computer");
+ break;
+ default:
+ return QVariant();
+ }
+}
+
void SystemModel::startRefreshingUsageInfo()
{
if (!d->mountPointsQueue.isEmpty()) {
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/core/systemmodel.h \
#950770:950771 @@ -47,6 +47,7 @@
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) \
const; + virtual QVariant headerData(int section, Qt::Orientation orientation, int \
role = Qt::DisplayRole) const;
private Q_SLOTS:
void startRefreshingUsageInfo();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/simpleapplet/menuview.cpp \
#950770:950771 @@ -89,6 +89,7 @@
MenuView::FormatType formattype;
QPoint mousePressPos;
QList<QStandardItem*> items;
+ QHash<QAbstractItemModel*, QAction*> modelsHeader;
};
MenuView::MenuView(QWidget *parent, const QString &title, const QIcon &icon)
@@ -234,6 +235,13 @@
void MenuView::addModel(QAbstractItemModel *model, MenuView::ModelOptions options)
{
+ QString title = model->headerData(0, Qt::Horizontal, \
Qt::DisplayRole).toString(); +
+ QAction *header = addTitle(title);
+ header->setVisible(false);
+
+ d->modelsHeader.insert(model, header);
+
if(options & MergeFirstLevel) {
const int count = model->rowCount();
for(int row = 0; row < count; ++row) {
@@ -334,6 +342,12 @@
break;
}
}
+
+ if (lastidx < 0 && d->modelsHeader.contains(model)) {
+ QAction *header = d->modelsHeader[model];
+ lastidx = menu->actions().indexOf(header);
+ }
+
if (lastidx >= 0) {
if (offset < start)
lastidx++; // insert action the item right after the last valid index
@@ -425,6 +439,14 @@
d->formattype = formattype;
}
+void MenuView::setModelTitleVisible(QAbstractItemModel *model, bool visible)
+{
+ if (d->modelsHeader.contains(model)) {
+ QAction *header = d->modelsHeader[model];
+ header->setVisible(visible);
+ }
+}
+
void MenuView::actionTriggered(QAction *action)
{
KUrl url = action->data().value<KUrl>();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/simpleapplet/menuview.h \
#950770:950771 @@ -112,6 +112,8 @@
FormatType formatType() const;
/** Set the format type. */
void setFormatType(FormatType formattype);
+ /** Set visibility of model title on menu. */
+ void setModelTitleVisible(QAbstractItemModel *model, bool visible);
protected:
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/simpleapplet/simpleapplet.cpp \
#950770:950771 @@ -539,12 +539,12 @@
\
appModel->setPrimaryNamePolicy(Kickoff::ApplicationModel::AppNamePrimary);
appModel->setSystemApplicationPolicy(Kickoff::ApplicationModel::ShowApplicationAndSystemPolicy);
+ d->menuview->addModel(appModel);
+
if (d->showMenuTitles) {
- d->menuview->addTitle(i18n("All Applications"));
- d->menuview->addModel(appModel);
+ d->menuview->setModelTitleVisible(appModel, true);
d->menuview->addTitle(i18n("Actions"));
} else {
- d->menuview->addModel(appModel);
d->menuview->addSeparator();
}
} else if(vtname == "Favorites") {
@@ -555,18 +555,24 @@
d->addModel(new Kickoff::RecentlyUsedModel(d->menuview), \
RecentlyUsed); } else if(vtname == "RecentlyUsedApplications") {
if (d->maxRecentApps > 0) {
- if (d->showMenuTitles)
- d->menuview->addTitle(i18n("Recently Used Applications"));
- d->menuview->addModel(new \
Kickoff::RecentlyUsedModel(d->menuview, Kickoff::RecentlyUsedModel::ApplicationsOnly, \
d->maxRecentApps), Kickoff::MenuView::MergeFirstLevel);
- if (!d->showMenuTitles)
+ Kickoff::RecentlyUsedModel *recentModel = new \
Kickoff::RecentlyUsedModel(d->menuview, Kickoff::RecentlyUsedModel::ApplicationsOnly, \
d->maxRecentApps); + d->menuview->addModel(recentModel, \
Kickoff::MenuView::MergeFirstLevel); +
+ if (d->showMenuTitles) {
+ d->menuview->setModelTitleVisible(recentModel, true);
+ } else {
d->menuview->addSeparator();
+ }
}
} else if(vtname == "RecentlyUsedDocuments") {
- if (d->showMenuTitles)
- d->menuview->addTitle(i18n("Recently Used Documents"));
- d->menuview->addModel(new Kickoff::RecentlyUsedModel(d->menuview, \
Kickoff::RecentlyUsedModel::DocumentsOnly), \
Kickoff::MenuView::MergeFirstLevel);
- if (!d->showMenuTitles)
+ Kickoff::RecentlyUsedModel *recentModel = new \
Kickoff::RecentlyUsedModel(d->menuview, Kickoff::RecentlyUsedModel::DocumentsOnly); + \
d->menuview->addModel(recentModel, Kickoff::MenuView::MergeFirstLevel); +
+ if (d->showMenuTitles) {
+ d->menuview->setModelTitleVisible(recentModel, true);
+ } else {
d->menuview->addSeparator();
+ }
} else if(vtname == "Bookmarks") {
KMenu* menu = d->menuview;
if(d->viewtypes.count() > 1) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic