The auto-aggregated KDE tabloid, powered by Simplepie | KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Sans | Serif
Veromix - volume control / soundmenu 0.14.0
Veromix - volume control / soundmenu 0.14.0
Fancy Tasks 1.0.96 (4.7 & 4.8)
Fancy Tasks 1.0.96 (4.7 & 4.8)
kde Customization kit 0.4 peace version
Snowshoeing on Lac-Saint-Jean
Red Chenille - Animated KDE Icon Version 1.3.2
Red Chenille 1.2.2
Transludia v.0.1
KWin Button applet improved 0.5
KWin Button applet improved 0.5
Ni 1.0
kde-service-menu-encfs 0.5.1
kde-service-menu-encfs 0.5.1
BoomBox 0.4.1
LeatherSUSE
Gentle Nowardev 0.1
Ketris 1.0.0
Cantata 0.3.0
nmapsi4 0.3.1
aptk 1.0.1
aptk 1.0.1
Dropbox ServiceMenu 0.16.0
Dropbox ServiceMenu 0.16.0
Helium One 1.0
UART PLOT 0.1
aptosid free software / society
Alben the shining and aptosid
Devilzc0deChat 0.1
Aria2c-GUI 0.26
Compiz Experimental Plugins UPDATED! ! 4.0 NEW !! Script !!
kde-services 0.9-6
kde-services 0.9-6
Kubuntu Wiki Colors (colored buttons) 1.0
Activity Manager Plasmoid Wheeled 0.6
Sublime Text 2 Projects 1.0
Steam Companion 0.5.2
OpenAPC 2.1
Network Status 0.1.1
AM-NV SysMonitor P./A. II X2-X6 Pack 1.0
Fattura contribuenti minimi 2.0
Coverart for Ubuntu 12.04 Precise
Book
Tux Christmas 0.1
factura 1.0
fixed C++ highlighting (C++0x ready) 1.49.5
Recursive fractal
...y sin embargo se mueve (es) 0.4In the deeper directories of my storage device I have some files around from the old times, when my general purpose computer was still locked partially by proprietary (operating) systems. Never-the-less e.g. Corel Draw was still worth the lock and the money, I loved that program and what it enabled me to produce.
These products are still around. And are basically binary blobs now for me, the content not readable by the software I use. Blame on that software
Well, but also the old software, i.e. Corel Draw, and its makers, using a storage format which seems not published and possibly only available by something like a Technology Partner program or similar, meaning lawyers and businessmen, not fun. But those files’ content is mine, and I completely dislike that the format binds me to a certain software.
Searching for FLOSS code that can understand files in Corel Draw’s CDR file format I discovered UniConvertor from the sK1 project and some initial code for LibreOffice, even actively developed ATM, but nothing for Karbon from the Calligra Suite.
Seeing with the hex editor Okteta (jay!) that the CDR file format is based on some RIFF and finding that one completely described on Wikipedia I somehow got tempted to try to develop a CDR import filter for Karbon, to finally free my content from those binary blobs again. And there was quickly some initial success, so I may try to stay with that combining game of decoding bytes:

At least the by-product libkoralle, a Qt-based library for parsing RIFF is useful already.
I look forward to others joining the efforts on the Karbon CDR import filter. I am mainly interested to read files of the versions 4 and 5, so people with newer versions need to make sure support for these themselves
I still also need to contact the developers of UniConvertor and libcdr (if you are one, check your email box the next days
).
You can find the current state in the branch “CDRImport” in my clone of the Calligra repo.
The Reveal
As I noted earlier in the week, my recent blog posts have been slowly leading up to something, and here's what that something is:
What a week it has been. Not only I’ve had a few days of vacations in beautiful Australia, but two major events happened.
You probably already know that, KDE SC 4.8 has been released. I might be biased, but trust me – this release is amazing. I am especially proud my work on power management got the first page this time – it’s really a killer feature, and I really hope it will become a keeper and another great reason for using KDE for most of you.
But it doesn’t end here: KDE Telepathy 0.3 has been released. Now, as much as this event might seem less interesting, it has a very special meaning to me. KDE Telepathy has been the proof of how a group of friends can get together and build something awesome, while having a lot of fun.
The project is now in a beta state, meaning we’re almost there, and you can start checking out what’s boiling without fearing your PC will blow up in a billion pieces. Of course, we are still not advertising this release to be fully stable, but we do accept bug reports at this stage, and believe the basic features are ready to be tested. So, no excuse: together with your new shiny KDE 4.8, try the future of Instant messaging on your favorite desktop environment!
Assuming you are a developer, are you interested in what these changes will bring to your world? Well, you’d better be excited. A video is worth a thousand words, they say – then why not checking out my talk at linux.conf.au about creating social apps with Telepathy and Qt? And if you are wondering – yes, the code for the example is actually available on KDE’s git on one of my scratch repos (link coming later, quickgit seems to be unreachable at the time I’m posting). See for yourself how easy it is to make your application rock even more!
But, the most amazing thing happened when David started the beer fundraiser, to get us wasted at FOSDEM. Well, the response has been flattering: up to now we have raised something along the lines of 230€, which is enough to kill a couple elephants considering where we’re going. So thank you! Given this thing has gotten quite far, we’re adding some more rules to our small game, and we’ll rollover funds to any other meetings if we pass out before spending all of this money (likely). Want to have a nice picture to show to your kids of a bunch of friendly hackers lying on the floor or having lots of fun without actually doing anything of the usual activities they are supposed to do? You still have time to donate.
(apparently wordpress.com doesn’t like paypal buttons – please refer to David’s blog post for donating)
Thanks again everyone for your support, and I hope our new software will rock your world.
There are Qt-based solutions for parsing tree-structured container formats like XML and JSON, but when a few days ago I came across a format based on the Resource Interchange File Format (RIFF) a quick search for a Qt-based parser yielded nothing for me… but a sigh and also the result of a mkdir command.
There is some nice documentation about RIFF on the English Wikipedia. This container format is as old as from 1991, and its ancestors even older. WAV and AVI formats are based on it, but also younger formats like Google’s WebP.
So to have other developers searching for a Qt-based RIFF parser yield something and to follow the release-often-and-early mantra, please find on the KDE ftp servers now (thanks again to the KDE admins for their less-in-a-day quick support!) what came after that mkdir command and what serves me quite well already in the parsing code of the format I deal with:
release 0.1.0 of libkoralle, a lib for parsing (and hopefully soon also writing) data in Resource Interchange File Format (RIFF) based formats.
How to use libkoralle:
Given a format based on RIFF with a structure like this:
RIFF id='XMPL'
'VRSN'
LIST id='DATT'
'DATA'
'DATA'
your code would, assuming the stream is well-formatted, be like this with version 0.1:
#include <Koralle0/RiffStreamReader>
...
Koralle0::RiffStreamReader reader(device);
reader.readNextChunkHeader();
// reader.chunkId(): Koralle0::FourCharCode('X','M','P','L')
// reader.isFileChunk(): true
// reader.isListChunk(): true
reader.openList(); // needs matching closeList();
reader.readNextChunkHeader();
// reader.chunkId(): Koralle0::FourCharCode('V','R','S','N')
// reader.isFileChunk()/isListChunk(): false
// reader.chunkData()/chunkSize(): data of the content
reader.readNextChunkHeader();
// reader.chunkId(): Koralle0::FourCharCode('D','A','T','T')
// reader.isFileChunk(): false
// reader.isListChunk(): true
reader.openList();
while(reader.readNextChunkHeader())
{
// reader.chunkId(): Koralle0::FourCharCode('D','A','T','A')
// reader.isFileChunk()/isListChunk(): false
// reader.chunkData()/chunkSize(): data of the content
}
reader.closeList();
reader.closeList();
Future version might have support for related container formats (IFF, RIFX, …) and allow passing of custom parsers for the data chunk content, to avoid the temporary QByteArray copy, as well as default parsers for standard chunk types like “INFO”.
See also Snorkel, a simple RIFF structure viewer I wrote using also libkoralle.
Contributors and feedback of course welcome!
We Seek Quality
Quality of life is a topic often discussed. There are so many different methods used
to try and measure this rather intangible aspect of our experience. We all have some sort of intuitive grasp of what it means, however: fulfillment and engagement, contentment and industry.
We want to neither go without nor to have everything simply handed to us. We desire peaceful lives sprinkled generously with happy events while also being spared from overly repetitious dullness. We crave companionship and simultaneously seek out competition. We hope that taken together these characteristics will lead to a wonderful tapestry woven of our experiences, relationships and memories which can whisper to us the meaning of our lives.
So quality of life does not seem to be an overly esoteric concept, yet it can be devilishly hard to get a hold of. Certainly life is not perfect and many things can and do go awry over the course of a lifetime; but even with those unavoidable bumps, we ought to find patterns of life quality in our choices and experiences.
Actually Finding It Is Another Thing
Living well is something that is learned. At least, I know that I'm still learning more about what it means to do so every day.
One thing I've noticed is that we tend to construct unfortunate narratives which get us to focus on things that do not really contribute to quality of life at all. It's perhaps easier to identify these narratives by imagining the autobiography of a live driven by them:
"On that fateful day 25 years ago, I finally managed to find a store in the mall that had the phone I had been looking for. I activated it and downloaded Angry Birds. The very next day I went to work with people I can't really remember anymore working on something I only recall as being rather boring; at least I don't think I learned anything from it, though it certainly allowed me to pay for all the network I was using with my new phone."
Really? It isn't like we all need to be riding rockets to the moon or painting the next Mona Lisa, but certainly we can live in a way that adds to something worth reflecting on in years to come.
Yet collectively, we are investing so much in things with far too little meaning, typified by punch-the-clock jobs used to make us into engines of consumption. Yes, we need to work. Yes, new toys and gadgets are awesome. Yes, Angry Birds is indeed a little addictive. These should be fillers, though, not the content of our existence.
So I Asked Myself: What Can I Do?
If I wish to live in a world where people are living lives worth living, then I need to try and help create an environment that supports that.
I wish to engage in ways that contribute to the mindset of living meaningfully. I want the things I make to contribute to and support the unfolding of meaning in the lives of others.
Getting there means stepping aside from some of the dominant models in society today such as "the person as consumer" and "the person as work unit". It means finding models of value that emphasize lives lived with quality. It means creating things that reflect that value.
In short, I can't rightfully expect to find lives of quality if my own efforts work in the opposite direction. I know I will not always achieve such high aspirations, but I can certainly try and, hopefully, succeed often enough to make a difference of some size.
Epilogue
This set of make, play and live blog entries may read like so much philosophy, but these are things I truly care about and which I want to find at the heart of my efforts. They are the metrics by which I wish to measure myself by, and which I hope to inspire others to consider as well. If I can manage that, what better life could there be? :)
Now that KDE 4.8 has been released, it’s time to recap all changes you will find in Gwenview.
The main change is the addition of animations when viewing images: crossfading between images and nicer-to-use comparisons. You can learn more from this previous blog article.
This change was not nice for users of some graphic cards whose OpenGL drivers do not support what Gwenview tries to do. I decided to play it safe for now: animations in Gwenview now use software rendering by default. For better performance, you can enable OpenGL rendering in the configuration dialog.
This new version of Gwenview also comes with a lot of smaller changes, some of them caused by the limitations which were introduced by the new animation system.



4.8.1 should bring you its usual series of bug fixes, among them is generating thumbnails for all images of the current folder, not only the currently visible ones. This fix is a bit bigger than your usual .1 fixes, so if you are willing to test it, you are welcome. The code is available on Gwenview git repository, in the “gen-all-thumbnails” branch.
I hope you enjoy this new Gwenview!
In this week's KDE Commit-Digest:
Qt does not sell mobiles. As a consumer, Qt is a technicality. Right now, the experience and availability of apps sell phones. Qt is just a tool for us developers to implement those experiences. Despite this, it is interesting to compare the Nokia N9 and the new WP7-based Lumia handsets. The market’s reaction to both, and the irony of it all.
Sweden is a highly developed smartphone market. Almost everyone has a smartphone. Flat rate data subscriptions are cheap. Both N9 and Lumia are sold here, and are advertised.
The reviews are interesting. In mobil.se’s comparison, the N9 lose out because the platform is bound to die, thus have fewer apps. In the same organisations yearly awards, the N9 win three out of four applicable categories (the Sony Ericsson Mini Pro won the value-for-your-money-award). The N9 also went straight to the top of the selling charts at katshing.se, and in the telekomidag.se review of Lumia, the final words praise the N9 “Sister model N9 with MeeGo was a (albeit late) eye-opener, for Lumia is feeling more of oh well-character. Skilled in every way - but we have seen most things before.” (google translation of ”Systermodellen N9 med Meego var en (om än för sen) aha-upplevelse, för Lumia blir känslan mer av jaha-karaktär. Kompetent på alla sätt – men vi har ju sett det mesta förut.”)
Following this trail, the latest sad figures from Nokia report that things aren’t going that well. Telling your customers and employees that your current unique product is dead, then delivering a mainstream product later does not help improve business. Bloomberg has looked at various analysts’ estimations of sales figures, and they estimate 1.4 million N9 where sold 2011, while the Lumia is estimated to have sold 1.3 million (estimates range from 800k – 2M).
The interesting part in all these comparisons is that the N9/MeeGo platform is not being pushed by Nokia. They do not want to sell it. The Lumia, on the other hand, is being pushed by the biggest marketing budget Nokia ever has spent on a single product. The Lumia series is being expanded, apps are emerging.
I am sure that Nokia/Microsoft will succeed. I had a VHS system at home, even though Betamax was technically superior. The cost for success will be to turn Nokia from a leading brand into a mainstream supplier, no more important than HTC or Samsung. Sad for Nokia, sad for Finland, sad for what could have been for Qt. Launching N950 alongside N9 and following up with multi-core models would had been great. Also, seeing that MeeGo Harmattan more or less was Maemo with Qt, Intel’s drop-out would not have been the end of the world.
Still, from a Qt developer, this, in combination with the openly governed Qt Project means that Qt will stay a cross platform tool. The risk of seeing it being sucked into a life as a (great!) single platform is no more. Qt/iOS, Qt/Android and Qt/MeeGo give a bigger target area than WP7 has. And if the WP8 platform is to follow desktop, Nokia just jumped from one burning platform to another, since they are going HTML5.
Kubuntu has packages for 4.8 bringing updates to Plasma workspaces and a load of KDE Applications.
To quote a nice user posting on kde-devel
"I upgraded to Ubuntu's Precise Alpha 1 a few days ago. After the upgrade completed, I tried out KDE 4.8 RC 2. It worked great until the final release of KDE 4.8 Final. KDE 4.8 Final is even better than the RC!"
"KDE 4.8 is rocking for me too.Using the Kubuntu PPA's on Sandy Bridge system and it's just lightning fast to do anything. "
You have an Touchpaddevice and you're looking for an free and open source operatingsystem, touchfriendly and with a KDE UI?
Then you maybe have heard about Plasma Active. Plasma Active is a new UI specially developed for touch-devices. You can download it there from open-slx. That image is prepared to install Plasma Active on the Top of Balsam Professional.
In this Article you can see how to prepare the stick. After booting and installing you have a Plasma Active on your device. You also can use Plasma Active inside a Dual or Multiboot Installation.
But we want to use Skype for this device.
First of all you have to surft to: http://www.skype.com/intl/de/get-skype/on-your-computer/linux/downloading.suse . After accessing the site it will be prepare the download. Just save it any place.
Change now to that directory which contains the saved package. Type in your console:
sudo zypper in skype-2.2.0.35-suse.i586.rpm
After the installation you will see the Skype Icon in the Applicationlauncher.
Tap now on that icon. Now opens the graphical client as you maybe know from the desktop. Tap on Username and type there your Username with the virtual keyboard. Sadly the virtual keyboard doesn't see the Password field. That means that you have to use an external USB Keyboard for this field.
After the Login you can use it through tapping on it. If you tap on the Text field you can use the virtual keyboard. If you like to call anyone just tap on the phone icon.
The integrated WeTab Webcam is supported directly without any changes.
You can plug in a Headphone into the WeTab. A seperate port for a microphone isn't placed there. But the WeTab has a integrated microphone which pacify in most cases.

Updated 27.1.12: Changed the packageinstall from rpm to zypper.
Wizards, sorcerers, witches, shamans, pajés and other mystical creatures that are KDE and Linux users celebrate: KDE 4.8 is avaiable in Mageia Cauldron repositories!

Thanks to the work of John Balcaen (mikala), the main KDE packager on Mageia. Those who use the Cauldron, we invite you to install the new version of KDE to work on possible bugs that may come to appear. According to the roadmap, KDE 4.8 will be available in the next Mageia stable release, Mageia 2, which will be released on May 3. Mageia devs will work to give the community a desktop environment as stable as possible.
Mikala wrote an interesting post about technical questions related to KDE in Mageia. The reading is recommended to those interested.
There's a well-known saying which first appeared in a book by James Howell published in 1659: "All work and no play makes Johnny a dull boy." The message is that life should not only be about the seriousness of work and that enjoyable, recreational activities are an important part of life. It is as true now as it was three and a half centuries ago.
Humans aren't the only ones who engage in play, of course. Many animals also play extensively, mostly while growing up though some continue to do so well into adulthood. It's one of the reasons I love having cats around the house: they are given to running around, chasing things (and each other) with obvious joy and frivolity. In addition to the enjoyment they get from it, this play has a pretty serious component: it's a way to put their skills into practice and improve them. It can also be a way to build social bonds with others of their social group.
Similarly for us humans, play can be more than just enjoyment and relaxation. It can be applied to creative processes to draw out truly great results from both individuals and teams. It can let us explore ideas, social interactions and generally open doors to new experiences and modes of being. It's a safe and enjoyable way to experiment, all while helping relieve stresses and pressures that may be trickling in from the more serious efforts in our life.
Sometimes I get the sense that technology has been getting more and more unplayful and that saddens me. The industries built around computing are massive. Billions of dollars swirl around them every day, and that sort of scale certainly requires a good amount of applied rigor and seriousness to keep things moving. The sheer amount of money that can be made coupled with the increasing complexity of technology and the ever rising expectations from people who use it can lead to an overly serious, unplayful environment that produces overly serious, unplayful results.
I've noticed that even many of the most popular games available for devices like phones and tablets these days are built around obsessive, repetitive behavior wherein you collect synthetically scarce imaginary resources and vie for the approval of imaginary beings. While rewarding to certain aspects of human psychology, these games are less playful than work-like. They don't even give you much opportunity to expand a set of skills. Even our most serious of traditional games, such as chess or go, are opportunities to exercise and grow strategic thinking while bonding with other humans. If even our games are less playful, one need not apply much imagination to how opportunities for playfulness are elsewhere.
In short: without play, life becomes dull and we risk become an increasingly boring group of people. That's not the sort of experience I wish to have, nor the sort of experience I wish others to have when using the things I help make.
The activities of play, when added to the other ingredients of life, can help create a fantastic and dynamic experience. That's why there's a certain seriousness to being playful; there is even such a thing as "serious play" which is being increasingly explored by those focused on innovation and communities. There's also, of course, the completely freeing and frivolous sort of play that rounds out this picture.
Make and play. Play and make. They go together, and I'd like to not only experience this myself but help support others in finding their own moments of exuberance.
There are applications which are more or less a mess for a window manager. For example The GIMP opens quite a lot of windows and you want to have all of those windows visible. In general you don’t want to have any other window on the same desktop
The solution to that is to move GIMP on it’s own desktop. But how? We can use static window rules to get this working, but what if there are already windows on that desktop? The perfect solution to that would be to have a desktop which gets created when you open GIMP and gets removed again when GIMP closes.
This was so far not yet possible without manual interaction. But with todays additions to KWin scripting this became possible. Here I present a KWin script which does exactly that:
workspace.clientAdded.connect(function(client) {
if (client.resourceClass == "gimp-2.6" && client.windowRole == "gimp-image-window") {
// create a new workspace for the Gimp image window (kind of the main window)
// switch to the new desktop and send the gimp window to it
workspace.desktops = workspace.desktops+1;
workspace.currentDesktop = workspace.desktops;
client.desktop = workspace.currentDesktop;
} else if (client.resourceClass == "gimp-2.6") {
// send all other gimp windows to the current desktop
client.desktop = workspace.currentDesktop;
}
});
workspace.clientRemoved.connect(function(client) {
if (client.resourceClass == "gimp-2.6" && client.windowRole == "gimp-image-window") {
// when closing the gimp window let's remove the last desktop
workspace.desktops = workspace.desktops-1;
}
});
I should really start to publish the quite useful example scripts I write to test the scripting functionality on places like kde-apps
The API for 4.9 is documented on Techbase
The thing we always stressed out in Plasma Active is how the system is designed to fit a whole device spectrum, even if the first two releases are explicitly about tablet devices (and in the near future this is not likely to change ;)
But how? it's pretty obvious that one user interface doesn't fit all for sure. Some devices, like mobile phones could share let's say the 60% of the QML UI written for the tablet, some other, let's say set top boxes could need something radically different.
The Plasma Active shell is actually something that doesn't provide any user interface at all, but instead provides some basic features in the logic: manages the user Activities and loads the plugins that will provide the actual user interface, assembled like a LEGO to fit the user experience of a particular form factor.
About user interface plugins: the central parts are Containments and Applets, that are familiar from Plasma Desktop, a new one is a package format used to distribute stand alone QML files sets, and a very important one in the Plasma Active shell is the Home screen.
The Home screen package is a set of qml files that behaves the basic behavior of a Plasma Active shell, such as how Containments are managed, and manages other pieces of user interface such as the activity switcher, the top panel, the application launcher and the recommendation overlay. So by changing this it's possible to change a lot of the behaviour of the Plasma shell (a particular device could also require a different plugin for the main containment, as they are different between Plasma Desktop and the tablet version with its browser of Nepomuk resources)
To make easier for developers that are interested in new form factors to heavily customize the look and feel of Plasma Active, I've put together a wiki page that describes how to proceed writing a new homescreen, and what is the API used in the communication between the shell and the QML part.
KDE 4.8 just got released and that means Okular 0.14 also got released!
First of all I'd like to thank everyone that has done a git commit in the KDE 4.7 → KDE 4.8 trip, here the list in alphabetical order: Aaron Seigo, Aleix Pol, Christopher Reichert, Dario Freddi, David Faure, David Palacio, Elvis Stansvik, Frederik Schwarzer, Geoffry Song, Jiri Baum, Kevin Kofler, Martin Ueding, Michal Svec, Michel Ludwig, Mohammad Mahfuzur Rahman Mamun, Montel Laurent, Niels Ole Salscheider, Patrick von Reth, Philip Muskovac, Pino Toscano, Ralf Habacker, Stephen Anthony, Yuri Chornoivan.
That's more than 20 people! Awesome :-)
This release introduces new features like improved text selection in documents with columns, table selection tool, LaTex rendering in annotations, improved embedded support (for use in e.g. Kile), better layouting for facing pages, smarter screensaver/powermanagement handling, improved page label support, default zoom configuration, improved Landscape printing, etc.
You can find a non complete list of bugs and features in bugzilla.
And best of all there's already new features in the pipeline for the next release :-)
Let's keep the ball rolling!
KDE SC 4.8 seems to be a pleasant update, especially regarding KDE PIM. Though the latter still features bugs regarding filtering (filtering for List-Id or List-Post headers does not work for incoming mails on imap accounts) and has a few other issues left, it got a lot more stable and its active development is noticeable. Thanks to the new maintainer and the KDE PIM devs! Dolphin’s UI got a lot quicker and there are a lot more small improvements spread across KDE.
Unfortunately I’m once again fighting virtuoso-t eating CPU although the file indexer is idle and the dbus interface does not show any active queries – but that’s nothing a quick and dirty removal of all of nepomuk’s data can’t “solve”. I know, it’s not a nice solution but it worked for me in the past. I’m still trying to start using nepomuk+strigi with each release – e.g. hoping for some useful (e.g. google-like) search results that display more than a filepath when searching for a string.
Regarding openSUSE packages, you can check the build status in order to make sure all packages you have installed are available for an update. If the repo is rebuilding enable the “Last time results” checkbox at the top-right of that page to see whether the package did succeed before and was published. After that it’s as simple as (for openSUSe 12.1):
sudo zypper ar http://download.opensuse.org/repositories/KDE:/Release:/48/openSUSE_12.1/ KR48 sudo zypper mr -r KR48 sudo zypper dup --from KR48
Make sure you do not add any Qt repos since the required Qt packages are included. Disable the UpdatedApps repo! You can read more about the KDE repos available for openSUSE on the wiki and drop-by on the openSUSE KDE IRC channel #opensuse-kde or the forums in case you need help.
Keen KDE Software users can find Plasma and KDE Applications 4.8 updates in the backport PPA for 11.10 and compiling now in the main archive for our development release.
Bugs in the packaging should be reported to kubuntu-ppa on Launnchpad. Bugs in the software to KDE.
To update, use the Software Repository Guide to add the following repository to your software sources list:
Bangarang’s development is now hosted on KDE’s git infrastructure in playground. Many, many thanks to Ben Cooksley and David Solbach for their patient help with the migration from Gitorious. I’m not a software developer by trade, so their help was invaluable. The translations are now also hosted by the wonderful KDE translation team – thanks for handling the move Albert! The new development project page is here.
Gitorious has been an absolutely wonderful host for this fun little project for the last 2 years. In that time there are many things I’ve learned and there will certainly be many things I’ll miss. That said, I am definitely looking forward to working more closely with the KDE community.
So this is your invitation to join in on the fun. As always, Bangarang remains a project I spend time on for no other reason than the joy of it. Good energy in, good energy out. Rumor has it that the KDE community has oodles of good energy!
At Eljakim (my new employer), work repositories are all svn (lowest common denominator), but several of us access them via git-svn. I’ve created a couple of new ones recently, but thanks to timezones, I never get an svn repo until I’ve already done a day’s work (in git). Getting those commits into svn without losing history is a simple thing when you know how – but when I googled, all I saw were strange and crazy hacks involving arcane commands I didn’t understand. So, here’s the easy way:
git svn clone https://url.to/svn-repo
cd svn-repo
mkdir chani
touch chani/temp
git add chani/temp
git ci
git svn dcommit
cd ..
git svn clone https://url.to/svn-repo/chani merge-repo
cd merge-repo
git remote add mygit /path/to/git-repo
git fetch mygit
git checkout -b mymerge mygit/master
git rebase master
git checkout master
git merge --ff-only mymerge
git rm temp
git ci
git svn dcommit
cd ..
rm -rf merge-repo
cd svn-repo
git svn rebase
Of course, you don’t have to delete the merge repo, you could keep using it as your primary repo – but the way things are set up here I always end up wanting my checkout to be a level above that. :)
Edit: Also, make sure you move or delete the original git repo once the commits are safely in svn. I spent half the day continuing to work in the pure git repo after blogging this… >.< oh well, at least I just had to copy&paste off my blog to fix it. :P
Simply the most polished, fast, flexible, beautiful and elegant desktop, ever.
The latest set of KDE releases has been announced. It includes major updates to Plasma Workspaces, Applications, and the Development Platform. Version 4.8 provides many new features, as well as improved stability and performance. Check out the highlights below and read the full announcement.
Today marks the day of yet another KDE Telepathy release. We're so confident with this third release, that we decided to put the Beta sticker on it. Let this be supported by our recent move to KDE's Extragear.
In the past 3 months since we released KDE Telepathy 0.2, we managed to close over 100 bugs. 102 to be exact. We added stability (if you'll make it crash with normal usage, I'll buy you a beer). We added visual polish. And we added new features too. Here's a list of what's new in 0.3:
Please don't ask "when you'll have this and that". We know you want metacontacts, history logs, OTR support, better integration and so on. We know it and we have it all planned. It will simply be ready when it's ready. (Though you might be nicely surprised by an upcoming post on David's blog about planned features for next release ;) And it's perfectly fine to say "you suck for not having it yet". We know that too.
You can get the 0.3 sources still hot from KDE's ftp servers. Building is the boring usual. Also watch out - we now require TelepathyQt 0.9, which is the first version under a new name - it's not TelepathyQt4 anymore, but TelepathyQt.
Please report any bugs you find at http://bugs.kde.org, product Telepathy.
Big part of the great team will be at FOSDEM and you are very welcome to buy us a beer for our work. If you're not attending FOSDEM, you can still contribute to our "beer fund", which is solely for relaxation and partying purposes.
You can also come listen to the great adventure of KDE Telepathy to our FOSDEM talk, scheduled for Saturday at 17:35 in CrossDesktop Devroom. Mark your calendars & see you there!
In this week's KDE Commit-Digest:
In this week's KDE Commit-Digest:
A few months ago, the British journal Sociology published an article titled "Challenging Code: A Sociological Reading of the KDE Free Software Project". Eager to find out what a 'sociological reading' of KDE entails, Dot editor Oriol Mirosa rushed to contact the article's author, sociologist Brian Alleyne, who graciously and patiently agreed to be the subject of an interview. Read on to learn more about Brian, sociology, and the significance of KDE for the social sciences:
In this week's KDE Commit-Digest:
The Calligra and KDE on Windows teams are proud to announce the first testing version of the Calligra Suite Windows installer. Yes, Windows users, you can now use and help test the Calligra from the comfort of your own operating system with a single installer.
Today KDE released the second release candidate for its renewed Workspaces, Applications, and Development Platform. With API, dependency and feature freezes in place, the KDE team's focus is now on fixing bugs and further polishing new and old functionality. Please give this release another good round of testing to help us release a rock-solid 4.8 later this month.
In this week's KDE Commit-Digest:
KDE España has started planning Akademy-es 2012—the most important KDE-related event in Spain. The conference is an opportunity for Spanish KDE users and developers to meet, share experiences, catch up on KDE news, and plan for the future. Akademy-es includes a range of presentations, workshops, hacking sessions, informal get-togethers and an assembly of KDE España members. KDE members and supporters will be coming from other countries to enjoy famous Spanish hospitality and meet up with KDE friends.
Generated at 7:57 am, cache for all feeds is updated every 15 minutes.
Add the custom bullet account while creating a new list to list level pro perties BUG: 292425
The Best Twitter Client For Linux Lifehacker Australia Its only other downside is that it's a KDE app, meaning it'll probably look a little out of place in a GNOME-based system, not to mention it doesn't support libnotify. Still, even on a GNOME system, it destroys all the other clients out there with its ... |
they differ only in KDE approval
| ← Older revision | Revision as of 19:26, 27 January 2012 | ||
| Line 1: | Line 1: | ||
| − | There are two identical bullets in §8 describing GFDL 1.2, they differ only in | + | There are two identical bullets in §8 describing [[GFDL]] 1.2, they differ only in [[KDE]] approval. Why is that? Is it a way of legally saying that unapproved licenses are allowed? |
| − | Should it be assumed that documentation that bears no licensing metadata is GFDL? | + | Should it be assumed that documentation that bears no licensing metadata is [[GFDL]]? |
Henderson Youth Selected for Inaugural Student Council SurfKY News This group will meet with the commissioner and Kentucky Department of Education (KDE) staff, both in person and virtually, to discuss how decisions made at the state level are affecting students throughout Kentucky and provide feedback -- from a ... |
The Best Twitter Client for Linux Lifehacker Its only other downside is that it's a KDE app, meaning it'll probably look a little out of place in a GNOME-based system, not to mention it doesn't support libnotify. Still, even on a GNOME system, it destroys all the other clients out there with its ... |
KDE 4.8 released with QML bits and new password framework Ars Technica By Ryan Paul | Published January 27, 2012 11:35 AM The developers behind the KDE project have released version 4.8 of the open source desktop environment. The minor release brings a number of new features and technical improvements to the KDE platform, ... |
KDE 4.8 adds adaptive power management, new windowing tricks eWeek Version 4.8 of the KDE desktop environment and software bundle was released, featuring improved, adaptive power management and new windowing layouts. KDE 4.8 is also faster and more stable, and offers new features like Qt Quick-based Plasma widgets and ... |
![]() Digit | KDE 4.8 SC Released Digit It is nice to see that the creating a new tablet version of KDE software isn't coming in the way of releasing desktop / netbook versions of the desktop environment. A great many changes have come this time around, in fact the past few releases have ... |
Updated workspace docu
| ← Older revision | Revision as of 06:43, 27 January 2012 | ||
| Line 9: | Line 9: | ||
* ''int'' '''workspaceWidth''' | * ''int'' '''workspaceWidth''' | ||
* ''int'' '''workspaceHeight''' | * ''int'' '''workspaceHeight''' | ||
| − | * ''QSize'' '''workspaceSize''' | + | * ''QSize'' '''workspaceSize'''' |
| + | * ''QSize'' '''displaySize''': The same of the display, that is all screens. | ||
| + | * ''int'' '''displayWidth''': The width of the display, that is width of all combined screens. | ||
| + | * ''int'' '''displayHeight''': The height of the display, that is height of all combined screens. | ||
=== Read-write Properties === | === Read-write Properties === | ||
* ''int'' '''currentDesktop''' | * ''int'' '''currentDesktop''' | ||
| − | * ''KWin::Client'' '''activeClient''' | + | * ''KWin::Client'' '''activeClient'''' |
| + | * ''int'' '''desktops''': The number of desktops currently used. Minimum number of desktops is 1, maximum 20. | ||
=== Signals === | === Signals === | ||
| Line 28: | Line 32: | ||
* '''clientActivated(KWin::Client *)''' | * '''clientActivated(KWin::Client *)''' | ||
* '''clientFullScreenSet(KWin::Client *, bool, bool)''' | * '''clientFullScreenSet(KWin::Client *, bool, bool)''' | ||
| − | * '''clientSetKeepAbove(KWin::Client *, bool)''' | + | * '''clientSetKeepAbove(KWin::Client *, bool)'''' |
| + | * '''numberDesktopsChanged(int oldNumberOfDesktops)''': Signal emitted whenever the number of desktops changed. To get the current number of desktops use the property desktops. oldNumberOfDesktops The previous number of desktops. | ||
=== Functions === | === Functions === | ||
| − | * '' QList< KWin::Client * >'' '''clientList() const ''' | + | * '''slotSwitchDesktopNext()''' |
| + | * '''slotSwitchDesktopPrevious()''' | ||
| + | * '''slotSwitchDesktopRight()''' | ||
| + | * '''slotSwitchDesktopLeft()''' | ||
| + | * '''slotSwitchDesktopUp()''' | ||
| + | * '''slotSwitchDesktopDown()''' | ||
| + | * '''slotSwitchToNextScreen()''' | ||
| + | * '''slotWindowToNextScreen()''' | ||
| + | * '''slotToggleShowDesktop()''' | ||
| + | * '''slotWindowMaximize()''' | ||
| + | * '''slotWindowMaximizeVertical()''' | ||
| + | * '''slotWindowMaximizeHorizontal()''' | ||
| + | * '''slotWindowMinimize()''' | ||
| + | * '''slotWindowShade()''' | ||
| + | * '''slotWindowRaise()''' | ||
| + | * '''slotWindowLower()''' | ||
| + | * '''slotWindowRaiseOrLower()''' | ||
| + | * '''slotActivateAttentionWindow()''' | ||
| + | * '''slotWindowPackLeft()''' | ||
| + | * '''slotWindowPackRight()''' | ||
| + | * '''slotWindowPackUp()''' | ||
| + | * '''slotWindowPackDown()''' | ||
| + | * '''slotWindowGrowHorizontal()''' | ||
| + | * '''slotWindowGrowVertical()''' | ||
| + | * '''slotWindowShrinkHorizontal()''' | ||
| + | * '''slotWindowShrinkVertical()''' | ||
| + | * '''slotWindowQuickTileLeft()''' | ||
| + | * '''slotWindowQuickTileRight()''' | ||
| + | * '''slotWindowQuickTileTopLeft()''' | ||
| + | * '''slotWindowQuickTileTopRight()''' | ||
| + | * '''slotWindowQuickTileBottomLeft()''' | ||
| + | * '''slotWindowQuickTileBottomRight()''' | ||
| + | * '''slotSwitchWindowUp()''' | ||
| + | * '''slotSwitchWindowDown()''' | ||
| + | * '''slotSwitchWindowRight()''' | ||
| + | * '''slotSwitchWindowLeft()''' | ||
| + | * '''slotIncreaseWindowOpacity()''' | ||
| + | * '''slotLowerWindowOpacity()''' | ||
| + | * '''slotWindowOperations()''' | ||
| + | * '''slotWindowClose()''' | ||
| + | * '''slotWindowMove()''' | ||
| + | * '''slotWindowResize()''' | ||
| + | * '''slotWindowAbove()''' | ||
| + | * '''slotWindowBelow()''' | ||
| + | * '''slotWindowOnAllDesktops()''' | ||
| + | * '''slotWindowFullScreen()''' | ||
| + | * '''slotWindowNoBorder()''' | ||
| + | * '''slotWindowToNextDesktop()''' | ||
| + | * '''slotWindowToPreviousDesktop()''' | ||
| + | * '''slotWindowToDesktopRight()''' | ||
| + | * '''slotWindowToDesktopLeft()''' | ||
| + | * '''slotWindowToDesktopUp()''' | ||
| + | * '''slotWindowToDesktopDown()''' | ||
| + | * '''slotSwitchToTabLeft()''' | ||
| + | * '''slotSwitchToTabRight()''' | ||
| + | * '''slotRemoveFromGroup()''' | ||
| + | * ''Q_INVOKABLE QList< KWin::Client * >'' '''clientList() const ''' | ||
| + | * ''QRect'' '''clientArea(ClientAreaOption option, int screen, int desktop) const ''': Returns the geometry a Client can use with the specified option. This method should be preferred over other methods providing screen sizes as the various options take constraints such as struts set on panels into account. This method is also multi screen aware, but there are also options to get full areas. option The type of area which should be considered screen The screen for which the area should be considered desktop The desktop for which the area should be considered, in general there should not be a difference The specified screen geometry | ||
| + | * ''QRect'' '''clientArea(ClientAreaOption option, const QPoint &point, int desktop) const ''': Overloaded method for convenience. option The type of area which should be considered point The coordinates which have to be included in the area desktop The desktop for which the area should be considered, in general there should not be a difference The specified screen geometry | ||
| + | * ''QRect'' '''clientArea(ClientAreaOption option, const Client *client) const ''': Overloaded method for convenience. client The Client for which the area should be retrieved The specified screen geometry | ||
== KWin::Toplevel == | == KWin::Toplevel == | ||
Retrieving a backtrace when an uncaught exception is causing a crash:
| ← Older revision | Revision as of 20:14, 26 January 2012 | ||
| (3 intermediate revisions by one user not shown) | |||
| Line 164: | Line 164: | ||
where ''pid'' is the process ID of the process you want to attach to. Once attached, and the process is in an infinite loop, after using the 'backtrace' command again a useful backtrace will appear. You can use 'continue' command to let the application run again and press Ctrl+C in gdb to be able to again enter commands. | where ''pid'' is the process ID of the process you want to attach to. Once attached, and the process is in an infinite loop, after using the 'backtrace' command again a useful backtrace will appear. You can use 'continue' command to let the application run again and press Ctrl+C in gdb to be able to again enter commands. | ||
| + | |||
| + | === Retrieving a backtrace when an uncaught exception is causing a crash === | ||
| + | |||
| + | If your backtrace looks like this: | ||
| + | |||
| + | Thread 1 (Thread 0xb77be730 (LWP 5794)): | ||
| + | [KCrash Handler] | ||
| + | #7 0x00e9b416 in __kernel_vsyscall () | ||
| + | #8 0x002b1c8f in raise () from /lib/i386-linux-gnu/libc.so.6 | ||
| + | #9 0x002b52b5 in abort () from /lib/i386-linux-gnu/libc.so.6 | ||
| + | #10 0x001c14ed in __gnu_cxx::__verbose_terminate_handler() () from | ||
| + | /usr/lib/i386-linux-gnu/libstdc++.so.6 | ||
| + | #11 0x001bf283 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6 | ||
| + | #12 0x001bf2bf in std::terminate() () from | ||
| + | /usr/lib/i386-linux-gnu/libstdc++.so.6 | ||
| + | #13 0x001bf464 in __cxa_rethrow () from /usr/lib/i386-linux-gnu/libstdc++.so.6 | ||
| + | [...] | ||
| + | |||
| + | then only GDB can help getting a useful backtrace. A few more commands are needed. From the shell, run: | ||
| + | |||
| + | $ gdb someKDEapp | ||
| + | |||
| + | Then start loading the application: | ||
| + | |||
| + | (gdb) start | ||
| + | |||
| + | {{note|Some KDE applications (such as KMail or Kontact) have special code to ensure that there is only one running instance of the application at a time. For these applications you should type in "start --nofork" at the (gdb) prompt instead of "start" because otherwise gdb will try to debug the wrong process. If you are unsure as to whether to use --nofork just try it. If the application says it's an unknown option you can remove --nofork.}} | ||
| + | |||
| + | The GDB prompt will reappear. Turn logging on: | ||
| + | |||
| + | (gdb) set logging file ~/gdblog.txt | ||
| + | (gdb) set logging on | ||
| + | |||
| + | We must now tell gdb to stop just before the exception is thrown. enter: | ||
| + | |||
| + | (gdb) break __cxa_rethrow | ||
| + | |||
| + | and finally: | ||
| + | |||
| + | (gdb) cont | ||
| + | |||
| + | This will run the application. Note that the application will consume more memory and be slower. | ||
| + | Now reproduce the crash. When you succeed, the application window will look frozen. | ||
| + | |||
| + | Don't worry and switch back to the shell window. | ||
| + | If you see the gdb prompt, type: | ||
| + | |||
| + | (gdb) thread apply all bt | ||
| + | |||
| + | press enter until the (gdb) prompt reappears. | ||
| + | |||
| + | All done! you can now quit gdb: | ||
| + | |||
| + | (gdb) kill | ||
| + | |||
| + | The kill command will stop the program and now enter: | ||
| + | |||
| + | (gdb) quit | ||
| + | |||
| + | Copy/paste the content saved in the ~/gdblog.txt file to your bug report. | ||
===Retrieving a backtrace with Valgrind=== | ===Retrieving a backtrace with Valgrind=== | ||
Update simon status, remove Klickety
| ← Older revision | Revision as of 17:35, 26 January 2012 | ||
| Line 2,318: | Line 2,318: | ||
! style="width:35%" | Comments (what should be improved, responsible person) | ! style="width:35%" | Comments (what should be improved, responsible person) | ||
! Signed off by | ! Signed off by | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| Mancala | | Mancala | ||
| Line 2,366: | Line 2,358: | ||
| 2010-07-25 | | 2010-07-25 | ||
| 0.3 | | 0.3 | ||
| − | | style="background:# | + | | style="background:#faf458" | Slightly outdated |
| Medium | | Medium | ||
| − | | - | + | | No "Also show non-perfect matches", "Create from template" in the current interface. |
| --[[User:Yurchor|Yurchor]] 17:20, 21 January 2012 (UTC) | | --[[User:Yurchor|Yurchor]] 17:20, 21 January 2012 (UTC) | ||
|- | |- | ||
Configuration:
| ← Older revision | Revision as of 13:55, 26 January 2012 | ||
| (One intermediate revision by one user not shown) | |||
| Line 8: | Line 8: | ||
* [https://mail.kde.org/mailman/listinfo/kwin KWin mailing list] | * [https://mail.kde.org/mailman/listinfo/kwin KWin mailing list] | ||
* IRC channel #kwin on freenode | * IRC channel #kwin on freenode | ||
| − | * [https://projects.kde.org/projects/kde | + | * [https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/master/entry/kwin/COMPLIANCE COMPLIANCE] - a document on KWin's compliance to the window manager specifications [http://tronche.com/gui/x/icccm/ ICCCM] and [http://www.freedesktop.org/wiki/Specifications/wm-spec EWMH] (also known as NETWM). |
* [[/4.0-release-notes|KDE4.0 release notes]] - information about changes and new features in KWin in KDE4.0 | * [[/4.0-release-notes|KDE4.0 release notes]] - information about changes and new features in KWin in KDE4.0 | ||
| Line 22: | Line 22: | ||
== Configuration == | == Configuration == | ||
| − | * [https://projects.kde.org/projects/kde | + | * [https://projects.kde.org/projects/kde/kde-workspace/repository/revisions/master/entry/kwin/CONFIGURING CONFIGURING ] - document on advanced KWin configuration (such as pre-configuring window-specific settings). |
KDE 4.8 released, wants to sashay its way into your computer Engadget By Dante Cesa posted Jan 26th 2012 2:23AM Sure, it might not have the marketing flair, nor mindshare of another Linux-based project we know, but that doesn't mean the folks behind KDE haven't been feverishly polishing their take on the perfect desktop ... |
KDE vs. Windows 7 LXer (press release) For several years, I've been saying that KDE is no longer trying to catch up with Windows, but surpassed it several years ago. However, last week a reader challenged me to prove it. I immediately told him that, if he didn't believe me, he should open ... |
deleted "[[Package manager broken]]" Spam/Inappropriate content: content was: "receive error message that another application is running muon package manager. Stuck at that point, unable to install anything. Please use bugs.kde.org for bug report."
kdeedu:
| ← Older revision | Revision as of 18:33, 25 January 2012 | ||
| Line 32: | Line 32: | ||
{{FeatureDone|Marble|Runner Manager blocking API|tgridel@freedorfr|Thibaut Gridel}} | {{FeatureDone|Marble|Runner Manager blocking API|tgridel@freedorfr|Thibaut Gridel}} | ||
| + | {{FeatureDone|Marble|Visible Bookmarks on the map|tgridel@freedorfr|Thibaut Gridel}} | ||
| + | {{FeatureDone|Marble|Flicker Free Placemarks|tgridel@freedorfr|Thibaut Gridel}} | ||
{{FeatureInProgress|Marble|Worldwide hillshading|earthwings@gentoo.org|Dennis Nienhüser}} | {{FeatureInProgress|Marble|Worldwide hillshading|earthwings@gentoo.org|Dennis Nienhüser}} | ||
{{FeatureInProgress|Marble|Shapefile file Parsing|tgridel@freedorfr|Thibaut Gridel}} | {{FeatureInProgress|Marble|Shapefile file Parsing|tgridel@freedorfr|Thibaut Gridel}} | ||
KDE SC 4.8 arrives with enhanced power management The H As expected, the KDE developers have published version 4.8.0 of the KDE Software Compilation (KDE SC). The major update to the open source K Desktop Environment includes changes to the KDE Platform itself as well as the KDE Applications and Plasma ... |
New user account
Created page with "はい。 * http://websvn.kde.org/ や https://projects.kde.org/ からブラウズする * http://lxr.kde.org/search からソースコードを検索する * http://api.kde.org..."
New thread: GFDL 1.2 is listed twice
New page
Created page with "FAQ にない質問があれば、付け加えて下さい。別の貢献者が答えてくれるでしょう。 オリジナルの質問リストは Philippe Fremy が作成し..."
Plasma:
| ← Older revision | Revision as of 20:48, 24 January 2012 | ||
| Line 329: | Line 329: | ||
== Plasma == | == Plasma == | ||
| − | + | Ir a [[Development/Tutorials/Plasma_(es)]] para tutoriales sobre Plasma. | |
== Comunicación (Decibel) == | == Comunicación (Decibel) == | ||
Translating article to Spanish
New page
Programación en Plasma con Python:
| ← Older revision | Revision as of 20:37, 24 January 2012 | ||
| Line 26: | Line 26: | ||
== Programación en Plasma con Python == | == Programación en Plasma con Python == | ||
| − | ;[[Development/Tutorials/Plasma/Python/ | + | ;[[Development/Tutorials/Plasma/Python/GettingStarted_(es)|Primeros pasos]] |
:''Crea y ejecuta tu primer plasmoid en Python.'' | :''Crea y ejecuta tu primer plasmoid en Python.'' | ||
marked revision 68405 of page "Development/Tutorials/KDE3/Qt Designer and KDevelop 3.0 for Beginners" for translation
Adding Widgets:
| ← Older revision | Revision as of 12:31, 24 January 2012 | ||
| (One intermediate revision by one user not shown) | |||
| Line 161: | Line 161: | ||
===Adding Widgets=== | ===Adding Widgets=== | ||
| − | To start, we will insert the text at the top of the program window, which can be seen [[ | + | To start, we will insert the text at the top of the program window, which can be seen here: |
| + | [[Image:KDevelop3-NewFile-Widget.png|center|thumb|350px]] | ||
| − | # Select the dialog in ToolBox called | + | This text tells the user how to operate the program. This type of widget is called a ''Label'' and you can put one on your program like this: |
| − | # The cursor will become a crosshair over the form. Draw a box for the label, just as you would in a paint program, and you will see that the label is created with some dummy text in it. | + | |
| − | # To change this text, double click on the label and type in the text, instead of ''TextLabel1''. The text you should type is | + | # Select the dialog in ToolBox called <menuchoice>Common Widgets -> TextLabel</menuchoice>, or from the menubar <menuchoice>Tools -> Display -> TextLabel</menuchoice></translate> |
| − | # Finally, resize the widget using the handles so it is the correct size and at the top of the box. Try to center the label by moving it with the mouse. This is just a temporary measure. Later on we will look at a more elegant layout management technique. You may refer to [[ | + | <translate> |
| + | # The cursor will become a crosshair over the form. Draw a box for the label, just as you would in a paint program, and you will see that the label is created with some dummy text in it.</translate> | ||
| + | <translate> | ||
| + | # To change this text, double click on the label and type in the text, instead of ''TextLabel1''. The text you should type is {{Input|1=This program will create an email signature for you. Just fill in the boxes and hit the Create! button.}} Select <menuchoice>Align Center</menuchoice> to have the text positioned nicely. Refer to this screenshot: [[Image:QtDesigner3-TextEditDialog.png|center|thumb|350px]]. | ||
| + | # Finally, resize the widget using the handles so it is the correct size and at the top of the box. Try to center the label by moving it with the mouse. This is just a temporary measure. Later on we will look at a more elegant layout management technique. You may refer to this screenshot: | ||
| + | [[Image:QtDesigner3-ResizingBox.png|center|thumb|350px]]. | ||
You follow pretty much the same procedure for embedding any type of widget that is supported by Qt Designer; select it, drag it, and finally, change its properties and size. | You follow pretty much the same procedure for embedding any type of widget that is supported by Qt Designer; select it, drag it, and finally, change its properties and size. | ||
| − | An interesting concept in Qt Designer is that widgets can act as containers for other widgets. This will be demonstrated in our next task, which is to create the input fields inside the frame. You can see that in Picture 8 we have a bunch of labels and text boxes inside a frame. This frame is called a Group Box and acts as a container for the labels and text boxes inside it. Let's first create the frame by selecting the GroupBox in the | + | An interesting concept in Qt Designer is that widgets can act as containers for other widgets. This will be demonstrated in our next task, which is to create the input fields inside the frame. You can see that in Picture 8 we have a bunch of labels and text boxes inside a frame. This frame is called a Group Box and acts as a container for the labels and text boxes inside it. Let's first create the frame by selecting the GroupBox in the <menuchoice>Toolbox dialog -> Containers</menuchoice> or <menuchoice>Tools -> Containers -> GroupBox</menuchoice> from the menubar. You can drag the mouse to create the box just below the Label you created before. In the ''Property Editor'' you can change the title property to alter the text in the frame. Put <code>Details</code> in the title text field. You may notice a + symbol in this entry in the ''Property Editor''. This indicates that the property has subproperties that can also be changed. |
| − | Once you have created the frame (i.e the GroupBox), create three more labels as before but when you draw them, draw them inside the GroupBox frame. You can then see in the Object Explorer box ( | + | Once you have created the frame (i.e the GroupBox), create three more labels as before but when you draw them, draw them inside the GroupBox frame. You can then see in the Object Explorer box (<menuchoice>Windows menu -> Views -> Object Explorer</menuchoice>) to the right that the labels have become children of the GroupBox frame. See this image: |
| + | [[Image:QtDesigner3-EditingTheDialog.png|center|thumb|350px]]. | ||
Change the text of labels by double-clicking on it. | Change the text of labels by double-clicking on it. | ||
| − | Once you have done this you can then create the text boxes. They will allow the user to type in text like his(her) name and email address. We use the simplest type of text boxes: a widget called QLineEdit which allows the user to enter one line of text only. You have to create two QLineEdit widgets for the name and the email address. You choose the menu Tools | + | Once you have done this you can then create the text boxes. They will allow the user to type in text like his(her) name and email address. We use the simplest type of text boxes: a widget called QLineEdit which allows the user to enter one line of text only. You have to create two QLineEdit widgets for the name and the email address. You choose the menu <menuchoice>Tools -> Input -> LineEdit</menuchoice> and you draw it beside the 'Your Name' Label. Do the same below for the address. |
| − | The witty comment will be selected by the user. We use a ComboBox which will present the user with three comments. Click on the ComboBox icon or select it via the Tools-> Input-> ComboBox menu. Draw it beside the Witty Comment label. Then double-click on it. You will be presented with a box into which you can add the contents of the combo box. Click on the | + | The witty comment will be selected by the user. We use a ComboBox which will present the user with three comments. Click on the ComboBox icon or select it via the <menuchoice>Tools -> Input-> ComboBox</menuchoice> menu. Draw it beside the Witty Comment label. Then double-click on it. You will be presented with a box into which you can add the contents of the combo box. Click on the <menuchoice>New Item</menuchoice> button and type in your comment in the text box at the right. Then click again on <menuchoice>New Item</menuchoice> for the second and third comments. Click on <menuchoice>OK</menuchoice> when you have finished. |
Adjust the size of the different widgets so they are nicely placed. | Adjust the size of the different widgets so they are nicely placed. | ||
| − | Up to now, we have not named any of the widgets that are being placed in our program. It is useful to set an internal name for widgets so we can call them after in the program. Labels don't perform any action so they don't need to be named but other widgets do. It is the case now for our text boxes. We'll need to manipulate the data from the three input widgets (i.e. read the text) so we should give them a name. Names should be easily recognized later and they should make sense. The names are assigned via the name property on the top of the Property Editor. We name the top LineEdit nameBox and the second one mailBox. We name the ComboBox commBox. This will allow us to access the comments. So click on each LineEdit and then besides Name in the Property Editor write nameBox and mailBox. Then click on the ComboBox and name it commBox. | + | [[Image:QtDesigner3-BeforeLayoutManagement.png|thumb|350px]] Up to now, we have not named any of the widgets that are being placed in our program. It is useful to set an internal name for widgets so we can call them after in the program. Labels don't perform any action so they don't need to be named but other widgets do. It is the case now for our text boxes. We'll need to manipulate the data from the three input widgets (i.e. read the text) so we should give them a name. Names should be easily recognized later and they should make sense. The names are assigned via the name property on the top of the Property Editor. We name the top LineEdit ''nameBox'' and the second one ''mailBox''. We name the ComboBox ''commBox''. This will allow us to access the comments. So click on each <menuchoice>LineEdit</menuchoice> and then besides <menuchoice>Name</menuchoice> in the Property Editor write <code>nameBox</code> and <code>mailBox</code>. Then click on the <menuchoice>ComboBox</menuchoice> and name it <code>commBox</code>. |
| − | We finish the graphical design by adding a label with 'Generated Signature' as text. Below it, we put a TextEdit ( | + | We finish the graphical design by adding a label with ''Generated Signature'' as text. Below it, we put a TextEdit (<menuchoice>Tools -> Input -> TextEdit</menuchoice>) where the generated signature will be displayed. We name it <code>sigBox</code>. And then we add two PushButtons at the bottom ('Create!' and 'Cancel'). They don't need names but you can give them some if you want. |
| − | Save your form. You can now have a quick preview by selecting the menu | + | Save your form. You can now have a quick preview by selecting the menu <menuchoice>Preview -> Preview Form</menuchoice>. This is the form ''before'' layout management. |
===Getting Spaced Out=== | ===Getting Spaced Out=== | ||
Planned for 0.10:
| ← Older revision | Revision as of 10:09, 24 January 2012 | ||
| Line 60: | Line 60: | ||
| Sync handler: git | | Sync handler: git | ||
| just commit changes to a remote git repository. :D | | just commit changes to a remote git repository. :D | ||
| + | |style="background-color:red;" | TODO | ||
| + | | | ||
| + | |- | ||
| + | | Sync handler: opera link | ||
| + | | we have a sort of APIs about: http://dev.opera.com/articles/view/introducing-the-opera-link-api/ | ||
|style="background-color:red;" | TODO | |style="background-color:red;" | TODO | ||
| | | | ||
Kentucky education ranks 14th in survey Bowling Green Daily News The Kentucky Department of Education believes the higher ranking is due to the efforts of Senate Bill 1, according to KDE spokeswoman Lisa Gross. The bill developed a new system of accountability for student achievement and a focus on teacher training, ... |
remove workaround for bug 257376