Permalink
Browse files

Merge branch 'master' of github.com:Razor-qt/razor-qt

  • Loading branch information...
2 parents 5cce12f + 4cdd4f6 commit 09bca163f3031d91768e5ac3b1cd5946b7beb40c @surlykke surlykke committed Apr 1, 2013
View
1 .gitignore
@@ -16,6 +16,7 @@ razorqt-desktop/razor-desktop
razorqt-panel/panel/razor-panel
*~
*.autosave
+*-swp
CMakeLists.txt.user*
/build
nbproject/
View
2 distr/deb/makeDeb.sh
@@ -4,7 +4,7 @@ NAME='razorqt'
function help {
cat << HELP_TEXT
-Usage: makeDeb.sh [otions] <path-to-source>
+Usage: makeDeb.sh [options] <path-to-source>
Options
-h|--help display this message
View
1 libraries/razormount/CMakeLists.txt
@@ -14,6 +14,7 @@ set(razormount_HDRS
set(razormount_SRCS
razormount.cpp
rzmountproviders.cpp
+ rzmountproviders_udisks2.cpp
)
set(razormount_MOCS
View
17 libraries/razormount/razormount.cpp
@@ -61,11 +61,18 @@ RazorMountManager::RazorMountManager(QObject *parent):
QObject(parent),
mProvider(0)
{
- mProvider = new UDiskProvider(this);
+ mProvider = new UDisks2Provider(this);
if (!mProvider->isValid())
- {
+ {
delete mProvider;
mProvider = 0;
+
+ mProvider = new UDiskProvider(this);
+ if (!mProvider->isValid())
+ {
+ delete mProvider;
+ mProvider = 0;
+ }
}
if (!mProvider)
@@ -95,13 +102,19 @@ void RazorMountManager::update()
{
if (mProvider)
mProvider->update();
+ else
+ qDebug() << "RazorMountDeviceList RazorMountManager::update() no valid provider in use";
+
}
const RazorMountDeviceList RazorMountManager::devices() const
{
if (mProvider)
+ {
+ qDebug() << "RazorMountManager::devices" << mProvider->devices();
return mProvider->devices();
+ }
else
{
qDebug() << "RazorMountDeviceList RazorMountManager::devices() no valid provider in use";
View
23 libraries/razormount/rzmountproviders.cpp
@@ -57,26 +57,27 @@ UDiskProvider::UDiskProvider(QObject *parent):
return;
}
- system.connect("org.freedesktop.UDisks",
- "/org/freedesktop/UDisks",
- "org.freedesktop.UDisks",
- "DeviceAdded",
+ system.connect("org.freedesktop.UDisks2",
+ "/org/freedesktop/UDisks2",
+ "org.freedesktop.DBus.ObjectManager",
+ "InterfacesAdded",
this,
- SLOT(dbusDeviceAdded(QDBusObjectPath)));
+ SLOT(dbusDeviceAdded(QDBusObjectPath, QStringList)));
- system.connect("org.freedesktop.UDisks",
- "/org/freedesktop/UDisks",
- "org.freedesktop.UDisks",
- "DeviceRemoved",
+ system.connect("org.freedesktop.UDisks2",
+ "/org/freedesktop/UDisks2",
+ "org.freedesktop.DBus.ObjectManager",
+ "InterfacesRemoved",
this,
- SLOT(dbusDeviceRemoved(QDBusObjectPath)));
-
+ SLOT(dbusDeviceRemoved(QDBusObjectPath, QStringList)));
+/*
system.connect("org.freedesktop.UDisks",
"/org/freedesktop/UDisks",
"org.freedesktop.UDisks",
"DeviceChanged",
this,
SLOT(dbusDeviceChanged(QDBusObjectPath)));
+ */
mIsValid = true;
}
View
58 libraries/razormount/rzmountproviders.h
@@ -109,4 +109,62 @@ private slots:
void delDevice(UDiskMountDevice *device);
};
+
+
+class UDisks2MountDevice: public RazorMountDevice
+{
+ Q_OBJECT
+public:
+ UDisks2MountDevice(const QDBusObjectPath &path);
+ QDBusObjectPath path() { return mPath; }
+
+ virtual bool mount();
+ virtual bool unmount();
+ virtual bool eject();
+
+private:
+ QDBusInterface *mBlockIface;
+ QDBusInterface *mDriveIface;
+ QDBusObjectPath mPath;
+
+ MediaType calcMediaType();
+ QString calcLabel();
+ bool calcIsExternal();
+ QString calcIconName();
+ QStringList mountPoints() const;
+
+
+private slots:
+ void dbusError(const QDBusError &err, const QDBusMessage &msg);
+ void aboutToMount();
+ void aboutToUnmount();
+ void aboutToEject();
+ void update();
+};
+
+
+
+class UDisks2Provider: public RzMountProvider
+{
+ Q_OBJECT
+public:
+ explicit UDisks2Provider(QObject *parent = 0);
+
+ virtual void update();
+
+public slots:
+ void dbusDeviceChanged(const QDBusObjectPath &path);
+
+private slots:
+ void dbusDeviceAdded(const QDBusObjectPath &path, const QVariantMap &map);
+ void dbusDeviceRemoved(const QDBusObjectPath &path, const QStringList &list);
+
+private:
+ QHash<QString, UDisks2MountDevice*> mDevicesByPath;
+ UDisks2MountDevice *getDevice(const QDBusObjectPath &path) const;
+
+ void addDevice(UDisks2MountDevice *device);
+ void delDevice(UDisks2MountDevice *device);
+};
+
#endif // RAZORMOUNT_RZMOUNTPROVIDERS_H
View
488 libraries/razormount/rzmountproviders_udisks2.cpp
@@ -0,0 +1,488 @@
+/* BEGIN_COMMON_COPYRIGHT_HEADER
+ * (c)LGPL2+
+ *
+ * Razor - a lightweight, Qt based, desktop toolset
+ * http://razor-qt.org
+ *
+ * Copyright: 2013 Razor team
+ * Authors:
+ * Petr Vanek <petr@yarpen.cz>
+ * Alexander Sokoloff <sokoloff.a@gmail.com>
+ *
+ * This program or library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ *
+ * END_COMMON_COPYRIGHT_HEADER */
+
+#include <QtDBus>
+#include "rzmountproviders.h"
+
+
+UDisks2Provider::UDisks2Provider(QObject *parent):
+ RzMountProvider(parent)
+{
+ QDBusConnection system = QDBusConnection::systemBus();
+
+ if (!system.isConnected())
+ {
+ qDebug() << "UDisks2Provider::UDisks2Provider - not connected - " << mIsValid;
+ return;
+ }
+
+ bool ret;
+ ret = system.connect("org.freedesktop.UDisks2",
+ "/org/freedesktop/UDisks2",
+ "org.freedesktop.UDisks2",
+ "InterfacesAdded",
+ this,
+ SLOT(dbusDeviceAdded(QDBusObjectPath,QVariantMap)));
+ if (!ret)
+ {
+ qDebug() << "UDisks2Provider::UDisks2Provider InterfacesAdded connect failed";
+ return;
+ }
+
+ ret = system.connect("org.freedesktop.UDisks2",
+ "/org/freedesktop/UDisks2",
+ "org.freedesktop.UDisks2",
+ "InterfacesRemoved",
+ this,
+ SLOT(dbusDeviceRemoved(QDBusObjectPath,QStringList)));
+ if (!ret)
+ {
+ qDebug() << "UDisks2Provider::UDisks2Provider InterfacesRemoved connect failed";
+ return;
+ }
+
+ mIsValid = true;
+ qDebug() << "UDisks2Provider::UDisks2Provider final validity" << mIsValid;
+
+}
+
+void UDisks2Provider::update()
+{
+ qDebug() << "UDisks2Provider::update() called";
+
+ QList<QDBusObjectPath> paths;
+ QDBusMessage call = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",
+ "/org/freedesktop/UDisks2/block_devices",
+ "org.freedesktop.DBus.Introspectable",
+ "Introspect");
+ QDBusPendingReply<QString> reply = QDBusConnection::systemBus().call(call);
+
+ if (!reply.isValid())
+ {
+ qWarning("UDisks2Manager: error: %s", qPrintable(reply.error().name()));
+ return;
+ }
+
+ QXmlStreamReader xml(reply.value());
+ while (!xml.atEnd())
+ {
+ xml.readNext();
+ if (xml.tokenType() == QXmlStreamReader::StartElement && xml.name().toString() == "node" )
+ {
+ QString name = xml.attributes().value("name").toString();
+ if(!name.isEmpty())
+ paths << QDBusObjectPath("/org/freedesktop/UDisks2/block_devices/" + name);
+ }
+ }
+
+ foreach (QDBusObjectPath i, paths)
+ {
+// qDebug() << "UDisks2Provider::update() path:" << i.path();
+ if (mDevicesByPath.contains(i.path()))
+ dbusDeviceChanged(i);
+ else
+ dbusDeviceAdded(i, QVariantMap());
+ }
+
+// qDebug() << mDevicesByPath;
+}
+
+UDisks2MountDevice *UDisks2Provider::getDevice(const QDBusObjectPath &path) const
+{
+ if (mDevicesByPath.contains(path.path()))
+ return mDevicesByPath[path.path()];
+ else
+ return 0;
+}
+
+void UDisks2Provider::addDevice(UDisks2MountDevice *device)
+{
+ mDevicesByPath.insert(device->path().path(), device);
+ mDevices.append(device);
+}
+
+void UDisks2Provider::delDevice(UDisks2MountDevice *device)
+{
+ mDevices.removeAll(device);
+ mDevicesByPath.remove(device->path().path());
+ device->deleteLater();
+}
+
+void UDisks2Provider::dbusDeviceAdded(const QDBusObjectPath &path, const QVariantMap &)
+{
+ if(path.path().startsWith("/org/freedesktop/UDisks2/jobs"))
+ return;
+
+ UDisks2MountDevice *device = new UDisks2MountDevice(path);
+
+ addDevice(device);
+ emit deviceAdded(device);
+}
+
+void UDisks2Provider::dbusDeviceRemoved(const QDBusObjectPath &path, const QStringList &)
+{
+ if(path.path().startsWith("/org/freedesktop/UDisks2/jobs"))
+ return;
+
+ UDisks2MountDevice *device = getDevice(path);
+ if (device)
+ {
+ emit deviceRemoved(device);
+ delDevice(device);
+ }
+}
+
+void UDisks2Provider::dbusDeviceChanged(const QDBusObjectPath &path)
+{
+#if 0
+ if(path.path().startsWith("/org/freedesktop/UDisks2/jobs"))
+ return;
+
+ UDisks2MountDevice *device = getDevice(path);
+ if (!device)
+ return;
+
+ if (device->update())
+ emit deviceChanged(device);
+#endif
+}
+
+UDisks2MountDevice::UDisks2MountDevice(const QDBusObjectPath &path):
+ RazorMountDevice(),
+ mPath(path)
+{
+// qDebug() << "UDisks2MountDevice::UDisks2MountDevice path" << mPath.path();
+ mBlockIface = new QDBusInterface("org.freedesktop.UDisks2",
+ mPath.path(),
+ "org.freedesktop.UDisks2.Block",
+ QDBusConnection::systemBus(),
+ this);
+ Q_ASSERT(mBlockIface);
+
+ QDBusObjectPath drive_object = mBlockIface->property("Drive").value<QDBusObjectPath>();
+// qDebug() << "UDisks2MountDevice::UDisks2MountDevice drive_object" << drive_object.path();
+
+ QDBusConnection::systemBus().connect("org.freedesktop.UDisks2",
+ mPath.path(),
+ "org.freedesktop.DBus.Properties","PropertiesChanged",
+ this,
+ SIGNAL(update()));
+
+ mDriveIface = new QDBusInterface("org.freedesktop.UDisks2",
+ drive_object.path(),
+ "org.freedesktop.UDisks2.Drive",
+ QDBusConnection::systemBus(),
+ this);
+ Q_ASSERT(mDriveIface);
+
+ update();
+}
+
+void UDisks2MountDevice::update()
+{
+
+ bool res = false;
+ res = setDevFile(mBlockIface->property("Device").toByteArray().data()) || res;
+
+ res = setMediaType(calcMediaType()) || res;
+ res = setLabel(calcLabel()) || res;
+ res = setIsExternal(calcIsExternal()) || res;
+ res = setIconName(calcIconName()) || res;
+
+ QStringList mounts = mountPoints();
+ res = setIsMounted(mounts.count() != 0) || res;
+
+ res = setIsEjectable(mDriveIface->property("Ejectable").toBool()) || res;
+ res = setSize(mBlockIface->property("Size").toULongLong()) || res;
+ res = setVendor(mDriveIface->property("Vendor").toString()) || res;
+ res = setModel(mDriveIface->property("Model").toString()) || res;
+ res = setFileSystem(mBlockIface->property("IdType").toString()) || res;
+
+ if (!mounts.empty())
+ res = setMountPath(mounts.first()) || res;
+
+ if (res)
+ emit changed();
+}
+
+QStringList UDisks2MountDevice::mountPoints() const
+{
+ QStringList points;
+ QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",
+ mPath.path(),
+ "org.freedesktop.DBus.Properties",
+ "Get");
+
+ QList<QVariant> args;
+ args << "org.freedesktop.UDisks2.Filesystem" << "MountPoints";
+ message.setArguments(args);
+
+ QDBusMessage reply = QDBusConnection::systemBus().call(message);
+
+ QList<QByteArray> l;
+ foreach (QVariant arg, reply.arguments())
+ arg.value<QDBusVariant>().variant().value<QDBusArgument>() >> l;
+
+ foreach (QByteArray p, l)
+ points.append(p);
+
+ qDebug() << "UDisks2MountDevice::mountPoints()" << points;
+ return points;
+}
+
+RazorMountDevice::MediaType UDisks2MountDevice::calcMediaType()
+{
+ if (mDriveIface->property("Optical").toBool())
+ return RazorMountDevice::MediaTypeOptical;
+
+ const QString media = mDriveIface->property("Media").toString();
+ const QStringList mediaCompat = mDriveIface->property("MediaCompatibility").toStringList();
+ const QString idUsage = mBlockIface->property("IdUsage").toString();
+
+ // TODO/FIXME: how to get it from udisks2?!
+// if (mDbus->property("DeviceIsDrive").toBool())
+// {
+ // TODO/FIXME: just guessing...
+ if (mediaCompat.contains("floppy"))
+ return RazorMountDevice::MediaTypeFdd;
+
+ if (idUsage == "filesystem")
+ return RazorMountDevice::MediaTypeDrive;
+
+ return RazorMountDevice::MediaTypeUnknown;
+// }
+
+// if (mDbus->property("DeviceIsPartition").toBool())
+// {
+// if (idUsage == "filesystem")
+// return RazorMountDevice::MediaTypePartition;
+
+// return RazorMountDevice::MediaTypeUnknown;
+// }
+
+ return RazorMountDevice::MediaTypeUnknown;
+
+}
+
+QString UDisks2MountDevice::calcLabel()
+{
+ const QString idLabel = mBlockIface->property("IdLabel").toString();
+
+ if (mMediaType == MediaTypeFdd)
+ return tr("Floppy drive");
+
+ if (mMediaType == MediaTypeOptical)
+ return idLabel;
+
+
+ const QString driveVendor = mDriveIface->property("Vendor").toString();
+ const QString driveModel = mDriveIface->property("Model").toString();
+ const qulonglong size = mBlockIface->property("Size").toULongLong();
+
+ QString label;
+ if (!idLabel.isEmpty())
+ {
+ label = idLabel;
+ }
+ else
+ {
+ if (!driveVendor.isEmpty())
+ label = driveVendor;
+
+ if (!driveModel.isEmpty())
+ label += QString(" - %1").arg(driveModel);
+ }
+
+ if (label.isEmpty())
+ label = mDevFile;
+
+ if (mSize)
+ label += QString(" [%3]").arg(sizeToString(size));
+
+ qDebug() << "LABEL" << mPath.path() << label;
+ return label;
+}
+
+bool UDisks2MountDevice::calcIsExternal()
+{
+ // TODO/FIXME: I'm really unsure here...
+ return mDriveIface->property("Removable").toBool();
+}
+
+QString UDisks2MountDevice::calcIconName()
+{
+ const QString media = mDriveIface->property( "Media" ).toString();
+
+ switch (mMediaType)
+ {
+ // ..............................................
+ case MediaTypeDrive:
+ case MediaTypePartition:
+ {
+ // handle drives
+ const QString conn = mDriveIface->property( "ConnectionBus" ).toString();
+
+ if (conn == "usb")
+ return "drive-removable-media-usb";
+
+ return "drive-removable-media";
+ }
+
+ // ..............................................
+ case MediaTypeFdd:
+ {
+ return "media-floppy";
+ }
+
+
+ // ..............................................
+// case MediaTypeFlash:
+// {
+// if ( media == "flash_ms" ) // Flash & Co.
+// return "media-flash-memory-stick";
+
+// if ( media == "flash_sd" ||
+// media == "flash_sdhc" ||
+// media == "flash_mmc" )
+// return "media-flash-sd-mmc";
+
+// if ( media == "flash_sm" )
+// return "media-flash-smart-media";
+
+// return "media-flash";
+// }
+
+
+ case MediaTypeOptical:
+ {
+ bool isWritable = mDriveIface->property( "OpticalBlank" ).toBool()
+ // TODO/FIXME: how in udisks2?
+ //||
+ // mDbus->property("OpticalDiscIsAppendable").toBool();
+ ;
+
+ if (isWritable)
+ return "media-optical-recordable";
+
+ if (media.startsWith("optical_dvd") ||
+ media.startsWith( "optical_hddvd")) // DVD
+ return "media-optical-dvd";
+
+ if (media.startsWith("optical_bd")) // BluRay
+ return "media-optical-blu-ray";
+
+ return "media-optical";
+ }
+
+ case MediaTypeUnknown:
+ {
+ return "drive-harddisk";
+ }
+ }
+
+ return "drive-harddisk";
+}
+
+void UDisks2MountDevice::dbusError(const QDBusError &err, const QDBusMessage &msg)
+{
+ qWarning() << "UDisks2MountDevice::mDbus_error" << err.message();
+ emit error(err.message());
+}
+
+bool UDisks2MountDevice::mount()
+{
+ qDebug() << "MOUNT" << mPath.path();
+
+ QDBusConnection c = QDBusConnection::systemBus();
+ QDBusMessage msg = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",
+ mPath.path(),
+ "org.freedesktop.UDisks2.Filesystem",
+ "Mount");
+ QVariantMap options;
+ if (fileSystem() == "vfat")
+ options.insert("options", "flush");
+
+ msg << options;
+
+ return c.callWithCallback(msg,
+ this,
+ SLOT(aboutToMount()),
+ SLOT(dbusError(QDBusError,QDBusMessage)));
+}
+
+bool UDisks2MountDevice::unmount()
+{
+ qDebug() << "UNMOUNT" << mPath.path();
+
+ if (!mIsMounted)
+ return true;
+
+ QDBusConnection c = QDBusConnection::systemBus();
+ QDBusMessage msg = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",
+ mPath.path(),
+ "org.freedesktop.UDisks2.Filesystem",
+ "Unmount");
+ QVariantMap options;
+ if (fileSystem() == "vfat")
+ options.insert("options", "flush");
+
+ msg << options;
+
+ return c.callWithCallback(msg,
+ this,
+ SLOT(aboutToUnmount()),
+ SLOT(dbusError(QDBusError,QDBusMessage)));
+}
+
+bool UDisks2MountDevice::eject()
+{
+ qDebug() << "EJECT" << mPath.path();
+
+ return mDriveIface->callWithCallback("Eject",
+ QVariantList(),
+ this,
+ SLOT(aboutToEject()),
+ SLOT(dbusError(QDBusError,QDBusMessage)));
+}
+
+void UDisks2MountDevice::aboutToMount()
+{
+ update();
+ emit mounted();
+}
+
+void UDisks2MountDevice::aboutToUnmount()
+{
+ update();
+ emit unmounted();
+}
+
+void UDisks2MountDevice::aboutToEject()
+{
+ qDebug() << "UDisks2MountDevice::aboutToEject success";
+}
View
2 libraries/razorqt/translatorsinfo/translatorsinfo.cpp
@@ -303,7 +303,7 @@ void fillLangguages(QMap<QString, QString> *languages)
languages->insert("uz" ,"Uzbek");
languages->insert("ve" ,"Venda");
languages->insert("vi" ,"Vietnamese");
- languages->insert("vi_VN" ,"Vietnamese (Viet Nam)");
+ languages->insert("vi_VN" ,"Vietnamese (Vietnam)");
languages->insert("vls" ,"Vlaams");
languages->insert("wa" ,"Walloon");
languages->insert("cy" ,"Welsh");
View
2 razorqt-config/razor-config-appearance/iconthemeconfig.cpp
@@ -80,7 +80,7 @@ void IconThemeConfig::initIconsThemes()
item->setIcon(2, theme.icon("edit-undo"));
item->setIcon(3, theme.icon("media-playback-start"));
- item->setText(4, theme.comment().isEmpty() ? theme.text() : theme.text() + " ( " + theme.comment() + " )");
+ item->setText(4, theme.comment().isEmpty() ? theme.text() : theme.text() + " (" + theme.comment() + ")");
}
}
}
View
20 razorqt-config/razor-config-appearance/iconthemeinfo.cpp
@@ -63,17 +63,17 @@ void IconThemeInfo::load(const QString &fileName)
void IconThemeInfo::loadDirsInfo(QSettings &file, const QString &path)
{
- if (file.value("Size", 0).toInt() == PRIVIEW_ICON_SIZE &&
- file.value("Context").toString() == "Actions"
- )
+ foreach (QString i, file.value("Icon Theme/Directories", QStringList()).toStringList())
{
- mActionsDir = path;
- }
-
- foreach (QString group, file.childGroups())
- {
- file.beginGroup(group);
- loadDirsInfo(file, path + QDir::separator() + group);
+ file.beginGroup(i);
+ if (file.value("Size", 0).toInt() == PRIVIEW_ICON_SIZE &&
+ file.value("Context").toString() == "Actions"
+ )
+ {
+ mActionsDir = path + QDir::separator() + i;
+ file.endGroup();
+ return;
+ }
file.endGroup();
}
}
View
2 razorqt-desktop/desktop-razor/desktopbackgrounddialog.cpp
@@ -97,7 +97,7 @@ void DesktopBackgroundDialog::wallpaperButton_clicked()
void DesktopBackgroundDialog::systemButton_clicked()
{
QString fname = QFileDialog::getOpenFileName(this,
- tr("Select Sytem Wallpaper Image"),
+ tr("Select System Wallpaper Image"),
"/usr/share/wallpapers",
tr("Images (*.png *.xpm *.jpg *.jpeg *.svg)"));
if (fname.isNull())
View
2 razorqt-desktop/desktop-razor/translations/desktop-razor.ts.src
@@ -40,7 +40,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Select Sytem Wallpaper Image</source>
+ <source>Select System Wallpaper Image</source>
<translation type="unfinished"></translation>
</message>
</context>
View
4 razorqt-desktop/desktop-razor/translations/desktop-razor_ru.ts
@@ -38,7 +38,7 @@
<translation type="unfinished"/>
</message>
<message>
- <source>Select Sytem Wallpaper Image</source>
+ <source>Select System Wallpaper Image</source>
<translation type="unfinished"/>
</message>
</context>
@@ -114,4 +114,4 @@
<translation type="unfinished"/>
</message>
</context>
-</TS>
+</TS>
View
2 razorqt-desktop/desktop-wm_native/razordeskman.cpp
@@ -48,7 +48,7 @@ EXPORT_RAZOR_DESKTOP_PLUGIN_CPP(RazorDeskManager);
QString RazorDeskManager::info()
{
return tr("A legacy desktop manager. "
- "It allows to use window manager's native menus. "
+ "It allows use of window manager's native menus. "
"Only classical icons and simple wallpaper functionality is implemented"
);
}
View
2 razorqt-panel/plugin-tray/razortray.cpp
@@ -176,7 +176,7 @@ void RazorTray::clientMessageEvent(XClientMessageEvent* e)
case SYSTEM_TRAY_BEGIN_MESSAGE:
case SYSTEM_TRAY_CANCEL_MESSAGE:
- qDebug() << "we don't show baloons messages.";
+ qDebug() << "we don't show balloon messages.";
break;

0 comments on commit 09bca16

Please sign in to comment.