Plugins can now add functionality to the Status Center and System

Settings
This commit is contained in:
Victor Tran 2018-07-04 23:26:30 +10:00
parent 21ce5bf562
commit 032ab7cd9f
No known key found for this signature in database
GPG key ID: FBA10B22D602BAC1
19 changed files with 626 additions and 117 deletions

View file

@ -674,6 +674,76 @@ InfoPaneDropdown::InfoPaneDropdown(WId MainWindowId, QWidget *parent) :
slice2.start();
});
//Load plugins
#ifdef BLUEPRINT
QDir pluginsDir("/usr/lib/theshellb/panes");
#else
QDir pluginsDir("/usr/lib/theshell/panes");
#endif
QDirIterator pluginsIterator(pluginsDir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
QJsonArray errors;
while (pluginsIterator.hasNext()) {
pluginsIterator.next();
if (pluginsIterator.fileInfo().suffix() != "so" && pluginsIterator.fileInfo().suffix() != "a") continue;
QPluginLoader loader(pluginsIterator.filePath());
QObject* plugin = loader.instance();
if (plugin == nullptr) {
QJsonObject metadata = loader.metaData();
if (!metadata.contains("name")) {
metadata.insert("name", pluginsIterator.fileName());
}
metadata.insert("error", loader.errorString());
errors.append(metadata);
} else {
StatusCenterPane* p = qobject_cast<StatusCenterPane*>(plugin);
if (p) {
for (StatusCenterPaneObject* pane : p->availablePanes()) {
if (pane->type().testFlag(StatusCenterPaneObject::Informational)) {
ClickableLabel* label = new ClickableLabel(this);
label->setText(pane->name());
ui->InformationalPluginsLayout->addWidget(label);
ui->pageStack->insertWidget(ui->pageStack->count() - 1, pane->mainWidget());
pane->mainWidget()->setAutoFillBackground(true);
connect(label, &ClickableLabel::clicked, [=] {
ui->pageStack->setCurrentWidget(pane->mainWidget());
});
}
if (pane->type().testFlag(StatusCenterPaneObject::Setting)) {
QListWidgetItem* item = new QListWidgetItem();
item->setText(pane->name());
item->setIcon(pane->settingAttributes.icon);
ui->settingsList->insertItem(ui->settingsList->count() - 3, item);
ui->settingsTabs->insertWidget(ui->settingsTabs->count() - 3, pane->mainWidget());
pane->mainWidget()->setAutoFillBackground(true);
}
}
}
}
}
if (errors.count() == 0) {
ui->settingsTabs->removeWidget(ui->UnavailablePanesPage);
delete ui->settingsList->takeItem(ui->settingsList->count() - 3);
} else {
ui->settingsUnavailableTable->setColumnCount(2);
ui->settingsUnavailableTable->setRowCount(errors.count());
ui->settingsUnavailableTable->setHorizontalHeaderLabels(QStringList() << "Name" << "Reason");
ui->settingsUnavailableTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
ui->settingsUnavailableTable->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
for (int i = 0; i < errors.count(); i++) {
QJsonObject o = errors.at(i).toObject();
ui->settingsUnavailableTable->setItem(i, 0, new QTableWidgetItem(o.value("name").toString()));
ui->settingsUnavailableTable->setItem(i, 1, new QTableWidgetItem(o.value("error").toString()));
}
}
updateStruts();
updateAutostart();
updateDSTNotification();

View file

@ -68,6 +68,8 @@
#include "apps/appslistmodel.h"
#include <QSpinBox>
#include <polkit-qt5-1/PolkitQt1/Authority>
#include <QPluginLoader>
#include "statuscenter/statuscenterpane.h"
class UPowerDBus;

View file

@ -118,42 +118,46 @@
</widget>
</item>
<item>
<widget class="ClickableLabel" name="clockLabel">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Clock</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="batteryLabel">
<property name="text">
<string>System Status</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="networkLabel">
<property name="text">
<string>Network</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="notificationsLabel">
<property name="text">
<string>Notifications</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="kdeconnectLabel">
<property name="text">
<string>KDE Connect</string>
</property>
</widget>
<layout class="QHBoxLayout" name="InformationalPluginsLayout">
<item>
<widget class="ClickableLabel" name="clockLabel">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Clock</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="batteryLabel">
<property name="text">
<string>System Status</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="networkLabel">
<property name="text">
<string>Network</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="notificationsLabel">
<property name="text">
<string>Notifications</string>
</property>
</widget>
</item>
<item>
<widget class="ClickableLabel" name="kdeconnectLabel">
<property name="text">
<string>KDE Connect</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
@ -689,14 +693,14 @@
<second>0</second>
<year>1969</year>
<month>8</month>
<day>17</day>
<day>14</day>
</datetime>
</property>
<property name="date">
<date>
<year>1969</year>
<month>8</month>
<day>17</day>
<day>14</day>
</date>
</property>
<property name="displayFormat">
@ -2097,6 +2101,14 @@
<normaloff>.</normaloff>.</iconset>
</property>
</item>
<item>
<property name="text">
<string>Unavailable Panes</string>
</property>
<property name="icon">
<iconset theme="dialog-warning"/>
</property>
</item>
<item>
<property name="text">
<string>Advanced</string>
@ -2144,7 +2156,7 @@
</sizepolicy>
</property>
<property name="currentIndex">
<number>15</number>
<number>14</number>
</property>
<widget class="QWidget" name="StartupSettings">
<layout class="QVBoxLayout" name="verticalLayout_9">
@ -6337,6 +6349,86 @@ Items that will be kept if you choose to keep files:
</item>
</layout>
</widget>
<widget class="QWidget" name="UnavailablePanesPage">
<layout class="QVBoxLayout" name="verticalLayout_58">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_110">
<property name="font">
<font>
<pointsize>15</pointsize>
</font>
</property>
<property name="text">
<string>Unavailable Panes</string>
</property>
<property name="margin">
<number>9</number>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_52">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>1</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_111">
<property name="text">
<string>There were errors loading the following items:</string>
</property>
<property name="margin">
<number>9</number>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_53">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>1</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QTableWidget" name="settingsUnavailableTable">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="DangerSettings">
<layout class="QVBoxLayout" name="verticalLayout_48">
<property name="spacing">
@ -6772,7 +6864,8 @@ Items that will be kept if you choose to keep files:
<string>Website</string>
</property>
<property name="icon">
<iconset theme="text-html"/>
<iconset theme="text-html">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
@ -6782,7 +6875,8 @@ Items that will be kept if you choose to keep files:
<string>File Bug</string>
</property>
<property name="icon">
<iconset theme="tools-report-bug"/>
<iconset theme="tools-report-bug">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
@ -6792,7 +6886,8 @@ Items that will be kept if you choose to keep files:
<string>Sources</string>
</property>
<property name="icon">
<iconset theme="commit"/>
<iconset theme="commit">
<normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
@ -6915,14 +7010,6 @@ Items that will be kept if you choose to keep files:
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ClickableLabel</class>
<extends>QLabel</extends>
<header>clickablelabel.h</header>
<slots>
<signal>clicked()</signal>
</slots>
</customwidget>
<customwidget>
<class>AnimatedStackedWidget</class>
<extends>QStackedWidget</extends>
@ -6938,6 +7025,14 @@ Items that will be kept if you choose to keep files:
<signal>networkAvailable(bool)</signal>
</slots>
</customwidget>
<customwidget>
<class>ClickableLabel</class>
<extends>QLabel</extends>
<header>clickablelabel.h</header>
<slots>
<signal>clicked()</signal>
</slots>
</customwidget>
<customwidget>
<class>Switch</class>
<extends>QPushButton</extends>

View file

@ -66,7 +66,7 @@ DBusSignals* dbusSignals = NULL;
QSettings::Format desktopFileFormat;
ScreenRecorder* screenRecorder = nullptr;
#define ONBOARDING_VERSION 5
#define ONBOARDING_VERSION 6
void raise_signal(QString message) {
//Clean up required stuff

View file

@ -15,7 +15,7 @@ unix {
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
DEFINES += TS_VERSION='\\"8.0\\"'
DEFINES += TS_VERSION='\\"8.1\\"'
unix {
QT += thelib x11extras
@ -153,7 +153,9 @@ HEADERS += mainwindow.h \
location/locationrequestdialog.h \
agent_adaptor.h \
locktypes/mousepassword.h \
notificationsWidget/mediaplayernotification.h
notificationsWidget/mediaplayernotification.h \
statuscenter/statuscenterpane.h \
statuscenter/statuscenterpaneobject.h
FORMS += mainwindow.ui \
menu.ui \

View file

@ -0,0 +1,17 @@
#ifndef STATUSCENTERPANE_H
#define STATUSCENTERPANE_H
#include <QList>
#include "statuscenterpaneobject.h"
class StatusCenterPane {
public:
virtual ~StatusCenterPane() {}
virtual QList<StatusCenterPaneObject*> availablePanes() = 0;
};
#define STATUS_CENTER_PANE_IID "org.thesuite.theshell.statuscenterpane"
Q_DECLARE_INTERFACE(StatusCenterPane, STATUS_CENTER_PANE_IID)
#endif // STATUSCENTERPANE_H

View file

@ -0,0 +1,38 @@
#ifndef STATUSCENTERPANEOBJECT_H
#define STATUSCENTERPANEOBJECT_H
#include <QObject>
#include <QWidget>
#include <QIcon>
struct InformationalStatusCenterPaneObjectAttributes {
QColor lightColor;
QColor darkColor;
};
struct SettingStatusCenterPaneObjectAttributes {
QIcon icon;
};
class StatusCenterPaneObject
{
public:
enum StatusPaneType {
Informational,
Setting
};
Q_DECLARE_FLAGS(StatusPaneTypes, StatusPaneType)
~StatusCenterPaneObject() {}
virtual QWidget* mainWidget() = 0;
virtual QString name() = 0;
virtual StatusPaneTypes type() = 0;
virtual int position() = 0;
InformationalStatusCenterPaneObjectAttributes informationalAttributes;
SettingStatusCenterPaneObjectAttributes settingAttributes;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(StatusCenterPaneObject::StatusPaneTypes)
#endif // STATUSCENTERPANEOBJECT_H

73
statuscenter/PrinterPane/.gitignore vendored Normal file
View file

@ -0,0 +1,73 @@
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash
# qtcreator generated files
*.pro.user*
# xemacs temporary files
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*
# MinGW generated files
*.Debug
*.Release
# Python byte code
*.pyc
# Binaries
# --------
*.dll
*.exe

View file

@ -0,0 +1,32 @@
TEMPLATE = lib
CONFIG += plugin
QT += widgets
TARGET = tsprint
LIBS += -lcups
INCLUDEPATH += ../../shell/statuscenter/
HEADERS += \
plugin.h \
printermanagement.h
SOURCES += \
plugin.cpp \
printermanagement.cpp
unix {
blueprint {
target.path = /usr/lib/theshellb/panes/
} else {
target.path = /usr/lib/theshell/panes/
}
INSTALLS += target
}
FORMS += \
printermanagement.ui
DISTFILES += \
metadata.json

View file

@ -0,0 +1,3 @@
{
"name": "Printers"
}

View file

@ -0,0 +1,11 @@
#include "plugin.h"
Plugin::Plugin(QObject* parent) : QObject(parent)
{
PrinterManagement* obj = new PrinterManagement();
panes.append(obj);
}
QList<StatusCenterPaneObject*> Plugin::availablePanes() {
return panes;
}

View file

@ -0,0 +1,21 @@
#ifndef PLUGIN_H
#define PLUGIN_H
#include <statuscenterpane.h>
#include <printermanagement.h>
class Plugin : public QObject, public StatusCenterPane
{
Q_OBJECT
Q_PLUGIN_METADATA(IID STATUS_CENTER_PANE_IID FILE "metadata.json")
Q_INTERFACES(StatusCenterPane)
public:
explicit Plugin(QObject* parent = nullptr);
QList<StatusCenterPaneObject*> availablePanes();
private:
QList<StatusCenterPaneObject*> panes;
};
#endif // PLUGIN_H

View file

@ -0,0 +1,32 @@
#include "printermanagement.h"
#include "ui_printermanagement.h"
PrinterManagement::PrinterManagement(QWidget *parent) :
QWidget(parent),
ui(new Ui::PrinterManagement)
{
ui->setupUi(this);
this->settingAttributes.icon = QIcon::fromTheme("printer");
}
PrinterManagement::~PrinterManagement()
{
delete ui;
}
QString PrinterManagement::name() {
return "Printers";
}
PrinterManagement::StatusPaneTypes PrinterManagement::type() {
return Setting;
}
QWidget* PrinterManagement::mainWidget() {
return this;
}
int PrinterManagement::position() {
return 900;
}

View file

@ -0,0 +1,29 @@
#ifndef PRINTERMANAGEMENT_H
#define PRINTERMANAGEMENT_H
#include <QWidget>
#include <cups/cups.h>
#include <statuscenterpaneobject.h>
namespace Ui {
class PrinterManagement;
}
class PrinterManagement : public QWidget, public StatusCenterPaneObject
{
Q_OBJECT
public:
explicit PrinterManagement(QWidget *parent = 0);
~PrinterManagement();
QWidget* mainWidget();
QString name();
StatusPaneTypes type();
int position();
private:
Ui::PrinterManagement *ui;
};
#endif // PRINTERMANAGEMENT_H

View file

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PrinterManagement</class>
<widget class="QWidget" name="PrinterManagement">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>15</pointsize>
</font>
</property>
<property name="text">
<string>Printers</string>
</property>
<property name="margin">
<number>9</number>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>1</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,4 @@
TEMPLATE = subdirs
SUBDIRS += \
PrinterPane

View file

@ -7,7 +7,10 @@ SUBDIRS += \
shell \
startsession \
polkitagent \
mousepass
mousepass \
statuscenter
statuscenter.depends = shell
blueprint {
message(Configuring theShell to be built as blueprint)

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.6.2, 2018-07-01T19:12:14. -->
<!-- Written by QtCreator 4.6.2, 2018-07-03T12:09:02. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
@ -64,7 +64,7 @@
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{0165bd08-f8f7-40a8-9b5a-0fb153c311ea}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/victor/Documents/Apps/build-theShell-Desktop-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
@ -261,64 +261,6 @@
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">shell</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/victor/Documents/Apps/theShell/shell/shell.pro</value>
<value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments">-s -a --debug --no-wm</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">shell/shell.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/home/victor/Documents/Apps/build-theShell-Desktop-Debug/shell</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
@ -376,7 +318,7 @@
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.2">
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
@ -434,7 +376,7 @@
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.3">
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.2">
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
@ -492,6 +434,64 @@
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.3">
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">2</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">true</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">shell</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/victor/Documents/Apps/theShell/shell/shell.pro</value>
<value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">shell/shell.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/home/victor/Documents/Apps/build-theShell-Desktop-Debug/shell</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">4</value>
</valuemap>
</data>

View file

@ -1 +1 @@
8.0
8.1