From: <cod...@us...> - 2008-07-29 18:00:32
|
Revision: 6048 http://krusader.svn.sourceforge.net/krusader/?rev=6048&view=rev Author: codeknight Date: 2008-07-29 18:00:39 +0000 (Tue, 29 Jul 2008) Log Message: ----------- ADDED: Mac OS-X installation instructions for KDE4, thanks to Jonas Modified Paths: -------------- trunk/krusader_kde4/INSTALL trunk/krusader_kde4/doc/ChangeLog trunk/krusader_kde4/doc/en/index.docbook trunk/krusader_kde4/doc/en/installation.docbook Modified: trunk/krusader_kde4/INSTALL =================================================================== --- trunk/krusader_kde4/INSTALL 2008-07-07 18:53:52 UTC (rev 6047) +++ trunk/krusader_kde4/INSTALL 2008-07-29 18:00:39 UTC (rev 6048) @@ -19,8 +19,8 @@ * Tested on Windows XP®, not yet tested on Windows Vista® but it should work. -Installing on Linux® and BSD platforms -====================================== +Installation on Linux® and BSD platforms +======================================== Krusader dependencies --------------------- @@ -94,7 +94,7 @@ $ tar -xzvf krusader_kde4.tar.gz -$ cd krusader_kde4 +$ cd krusader_kde4 $ cmake -DCMAKE_INSTALL_PREFIX=/usr/ -DQT_INCLUDES=/usr/share/qt4/include @@ -128,14 +128,24 @@ -Installing on Mac® OS-X -======================= -TODO: instructions for Krusader-2.x for KDE4.x +Installation on Mac® OS-X +========================= +Follow the next guidelines +http://techbase.kde.org/Getting_Started/Build/KDE4/Mac_OS_X -The next url explains howto install Krusader-1.x for KDE3 -http://www.krusader.org/handbook/mac-port.html +Install the dependencies (including cmake) with Fink +http://www.finkproject.org/ +Install the Qt-4 binaries available from +http://mac.kde.org/ +Once kdelibs and it's dependencies are up and running. + +Proceed with the step of techbase.kde.org +"#Setting_Up_Your_Build_Environment" and +"#Building_kdelibs" (here replacing "kdelibs" by "krusader" ;-)) + + Installation on Windows® ======================== It's the first time that Krusader compiles on Windows®, Modified: trunk/krusader_kde4/doc/ChangeLog =================================================================== --- trunk/krusader_kde4/doc/ChangeLog 2008-07-07 18:53:52 UTC (rev 6047) +++ trunk/krusader_kde4/doc/ChangeLog 2008-07-29 18:00:39 UTC (rev 6048) @@ -1,12 +1,18 @@ The Krusader Handbook ChangeLog ------------------------------- +2.0.0-beta2 "Space Odyssey" +================================== +Date: + +ADDED: Mac OS-X installation instructions for KDE4 + 2.0.0-beta1 "Phoenix Egg" ================================== -Date: - - ADDED: Windows installation instructions +Date: 2008-07-06 + + ADDED: Windows installation instructions for KDE4 ADDED: KDE4.x installation instructions ADDED: synchronizer_keybindings ADDED: compilation requirements for KDE4 Modified: trunk/krusader_kde4/doc/en/index.docbook =================================================================== --- trunk/krusader_kde4/doc/en/index.docbook 2008-07-07 18:53:52 UTC (rev 6047) +++ trunk/krusader_kde4/doc/en/index.docbook 2008-07-29 18:00:39 UTC (rev 6048) @@ -551,8 +551,8 @@ Back-Cover Texts. A copy of the license is included in the &krusader; sources.</para> </legalnotice> - <date>2008-06-18</date> - <releaseinfo>2.0.0-beta1 "Phoenix Egg"</releaseinfo> + <date>2008-07-26</date> + <releaseinfo>2.0.0-beta2 "Space Odyssey"</releaseinfo> <abstract> <para>&krusader; is an advanced, twin-panel (commander-style) file-manager for KDE, and other desktops in Modified: trunk/krusader_kde4/doc/en/installation.docbook =================================================================== --- trunk/krusader_kde4/doc/en/installation.docbook 2008-07-07 18:53:52 UTC (rev 6047) +++ trunk/krusader_kde4/doc/en/installation.docbook 2008-07-29 18:00:39 UTC (rev 6048) @@ -629,14 +629,36 @@ </sect1> <sect1 id="kde4_mac_install"> - <title>Installing on the MAC platform</title> + <title>Installing on the &MacOS;-X platform</title> -<para><link linkend="mac-port">KDE3 install instructions</link> (FIXME)</para> + <itemizedlist> + <listitem> + <para>Follow the install guidelines of + <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4/Mac_OS_X">techbase.kde.org</ulink></para> + </listitem> + <listitem> + <para>Install the dependencies (including cmake) with + <ulink url="http://www.finkproject.org/">Fink</ulink>.</para> + </listitem> + <listitem> + <para>Install the &Qt;-4 binaries available from + <ulink url="http://mac.kde.org/">mac.kde.org</ulink></para> + </listitem> + <listitem> + <para>Once kdelibs and it's dependencies are up and running. + </para> + </listitem> + <listitem> + <para>Proceed with the step of techbase.kde.org + "# Setting_Up_Your_Build_Environment" and + "# Building_kdelibs" (here replacing "kdelibs" by "Krusader" ;-)).</para> + </listitem> + </itemizedlist> </sect1> <sect1 id="kde4_win_install"> - <title>Installing on the Windows platform</title> + <title>Installing on the &Windows; platform</title> <para>Tested on &Windows; XP, not yet tested on &Windows; Vista but it should work.</para> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-07-29 20:07:58
|
Revision: 6049 http://krusader.svn.sourceforge.net/krusader/?rev=6049&view=rev Author: vaclavjuza Date: 2008-07-29 20:08:07 +0000 (Tue, 29 Jul 2008) Log Message: ----------- FIXED: Do not duplicate menu entries in UserAction menu while still not crashing when configuring toolbars (5998). Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Panel/krpopupmenu.cpp trunk/krusader_kde4/krusader/UserAction/useraction.cpp trunk/krusader_kde4/krusader/UserAction/useraction.h trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.cpp trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.h trunk/krusader_kde4/krusader/krusader.cpp trunk/krusader_kde4/krusader/krusaderui.rc Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/ChangeLog 2008-07-29 20:08:07 UTC (rev 6049) @@ -1,3 +1,6 @@ + FIXED: Do not duplicate menu entries in UserAction menu while still not crashing when + configuring toolbars. + I18N: Updated Ukrainian translation (thanks Yuri Chornoivan) I18N: Updated Slovenian translation (thanks Matej Urbancic) Modified: trunk/krusader_kde4/krusader/Panel/krpopupmenu.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/krpopupmenu.cpp 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/krusader/Panel/krpopupmenu.cpp 2008-07-29 20:08:07 UTC (rev 6049) @@ -118,7 +118,8 @@ } // --------------- user actions - QAction *uAct = addMenu( new UserActionPopupMenu( panel->func->files()->vfs_getFile( item->name() ).url() ) ); + QAction *uAct = new UserActionPopupMenu( panel->func->files()->vfs_getFile( item->name() ).url() ); + addAction( uAct ); uAct->setText( i18n("User Actions") ); for ( KrViewItemList::Iterator it = items.begin(); it != items.end(); ++it ) { vfile *file = panel->func->files()->vfs_search(((*it)->name())); Modified: trunk/krusader_kde4/krusader/UserAction/useraction.cpp =================================================================== --- trunk/krusader_kde4/krusader/UserAction/useraction.cpp 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/krusader/UserAction/useraction.cpp 2008-07-29 20:08:07 UTC (rev 6049) @@ -13,6 +13,7 @@ #include <kdebug.h> #include <kurl.h> #include <kactioncollection.h> +#include <kactionmenu.h> #include <kmenu.h> #include <kstandarddirs.h> #include <kmessagebox.h> @@ -62,10 +63,10 @@ } } -void UserAction::populateMenu( KMenu* menu, const KUrl *currentURL ) { +void UserAction::populateMenu( KActionMenu* menu, const KUrl *currentURL ) { // I have not found any method in Qt/KDE // for non-recursive searching of childs by name ... - QMap<QString, KMenu *> categoryMap; + QMap<QString, KActionMenu *> categoryMap; QList<KrAction *> uncategorised; foreach( KrAction* action, _actions ) @@ -83,21 +84,20 @@ { if (! categoryMap.contains( category ) ) { - KMenu *categoryMenu = new KMenu(); - categoryMenu->setTitle( category ); // use i18n in the future? + KActionMenu *categoryMenu = new KActionMenu( category, menu ); categoryMenu->setObjectName( category ); categoryMap.insert( category, categoryMenu ); } - KMenu *targetMenu = categoryMap.value( category ); + KActionMenu *targetMenu = categoryMap.value( category ); targetMenu->addAction( action ); } } - QMapIterator<QString, KMenu *> mapIter(categoryMap); + QMutableMapIterator<QString, KActionMenu *> mapIter(categoryMap); while ( mapIter.hasNext() ) { mapIter.next(); - menu->addMenu( mapIter.value() ); + menu->addAction( mapIter.value() ); } foreach ( KrAction* action, uncategorised ) Modified: trunk/krusader_kde4/krusader/UserAction/useraction.h =================================================================== --- trunk/krusader_kde4/krusader/UserAction/useraction.h 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/krusader/UserAction/useraction.h 2008-07-29 20:08:07 UTC (rev 6049) @@ -21,7 +21,7 @@ class QStringList; class KrAction; class KUrl; -class KMenu; +class KActionMenu; /** * Useractions are Krusaders backend for user-defined actions on current/selected files in its panels @@ -86,10 +86,10 @@ void setAvailability(const KUrl& currentURL); /** - * Fills a KMenu with all available UserActions in the list + * Fills a KActionMenu with all available UserActions in the list * @param popupmenu to populate */ - void populateMenu(KMenu* menu, const KUrl *currentURL); + void populateMenu(KActionMenu* menu, const KUrl *currentURL); QStringList allCategories(); QStringList allNames(); Modified: trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.cpp =================================================================== --- trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.cpp 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.cpp 2008-07-29 20:08:07 UTC (rev 6049) @@ -13,11 +13,13 @@ #include "useractionpopupmenu.h" #include <kurl.h> +#include <klocale.h> #include "../krusader.h" #include "useraction.h" #include "kraction.h" -UserActionPopupMenu::UserActionPopupMenu( const KUrl ¤tURL, QWidget *parent ) : KMenu( parent ) { +UserActionPopupMenu::UserActionPopupMenu( const KUrl ¤tURL, QWidget *parent ) + : KActionMenu( i18n("User Actions"), parent ) { krUserAction->populateMenu( this, ¤tURL ); } Modified: trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.h =================================================================== --- trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.h 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/krusader/UserAction/useractionpopupmenu.h 2008-07-29 20:08:07 UTC (rev 6049) @@ -13,11 +13,11 @@ #ifndef USERACTIONPOPUPMENU_H #define USERACTIONPOPUPMENU_H -#include <kmenu.h> +#include <kactionmenu.h> class KUrl; -class UserActionPopupMenu : public KMenu { +class UserActionPopupMenu : public KActionMenu { public: UserActionPopupMenu( const KUrl ¤tURL, QWidget *parent = 0 ); }; Modified: trunk/krusader_kde4/krusader/krusader.cpp =================================================================== --- trunk/krusader_kde4/krusader/krusader.cpp 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/krusader/krusader.cpp 2008-07-29 20:08:07 UTC (rev 6049) @@ -760,6 +760,9 @@ #if 0 actUserMenu = new KAction( i18n( "User Menu" ), ALT + Qt::Key_QuoteLeft, SLOTS, SLOT( userMenu() ), actionCollection(), "user menu" ); +#else + actUserMenu = new KActionMenu( i18n( "User&actions" ), this); + actionCollection()->addAction( "useractionmenu", actUserMenu ); #endif NEW_KACTION(actManageUseractions, i18n( "Manage User Actions..." ), 0, 0, SLOTS, SLOT( manageUseractions() ), "manage useractions" ); @@ -1044,21 +1047,12 @@ } void Krusader::updateUserActions() { - userActionMenu = (KMenu*) guiFactory()->container( "useractionmenu", this ); + KActionMenu *userActionMenu = (KActionMenu *) actUserMenu; if ( userActionMenu ) { - bool hasManageActs = false; - QList<QAction *> acts = userActionMenu->actions(); - foreach( QAction * act, acts ) { - if( act->objectName() == "manage useractions" ) { - hasManageActs = true; - break; - } - } + userActionMenu->menu()->clear(); - if( !hasManageActs ) - userActionMenu->addAction( krApp->actManageUseractions ); - + userActionMenu->addAction( krApp->actManageUseractions ); userActionMenu->addSeparator(); userAction->populateMenu( userActionMenu, NULL ); } Modified: trunk/krusader_kde4/krusader/krusaderui.rc =================================================================== --- trunk/krusader_kde4/krusader/krusaderui.rc 2008-07-29 18:00:39 UTC (rev 6048) +++ trunk/krusader_kde4/krusader/krusaderui.rc 2008-07-29 20:08:07 UTC (rev 6049) @@ -86,11 +86,13 @@ <Action name="set_jump_back" /> <Action name="jump_back" /> </Menu> - <Menu name="useractionmenu" > + <Action name="useractionmenu"> + <!-- <text>User&actions</text> <Action name="manage useractions" /> <Separator/> - </Menu> + --> + </Action> <Menu name="_tools" ><!-- FIXME tools menu won't show up before the options menu, but does when the name attribute is renamed?! --> <text>&Tools</text> <Action name="find" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-07-29 20:40:30
|
Revision: 6050 http://krusader.svn.sourceforge.net/krusader/?rev=6050&view=rev Author: vaclavjuza Date: 2008-07-29 20:40:39 +0000 (Tue, 29 Jul 2008) Log Message: ----------- ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/ActionMan/actionproperty.cpp trunk/krusader_kde4/krusader/ActionMan/actionproperty.ui trunk/krusader_kde4/krusader/UserAction/kraction.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-07-29 20:08:07 UTC (rev 6049) +++ trunk/krusader_kde4/ChangeLog 2008-07-29 20:40:39 UTC (rev 6050) @@ -1,3 +1,6 @@ + ADDED: Useractions: added checkbox "enabled" + and run mode option "Run in embedded terminal emulator" + FIXED: Do not duplicate menu entries in UserAction menu while still not crashing when configuring toolbars. Modified: trunk/krusader_kde4/krusader/ActionMan/actionproperty.cpp =================================================================== --- trunk/krusader_kde4/krusader/ActionMan/actionproperty.cpp 2008-07-29 20:08:07 UTC (rev 6049) +++ trunk/krusader_kde4/krusader/ActionMan/actionproperty.cpp 2008-07-29 20:40:39 UTC (rev 6050) @@ -80,6 +80,7 @@ connect( bgExecType, SIGNAL( clicked(int) ), SLOT( setModified() ) ); connect( bgAccept, SIGNAL( clicked(int) ), SLOT( setModified() ) ); connect( KeyButtonShortcut, SIGNAL( keySequenceChanged(const QKeySequence&) ), SLOT( setModified() ) ); + connect( chkEnabled, SIGNAL( clicked() ), SLOT( setModified() ) ); connect( leDifferentUser, SIGNAL( textChanged(const QString&) ), SLOT( setModified() ) ); connect( chkDifferentUser, SIGNAL( clicked() ), SLOT( setModified() ) ); connect( chkConfirmExecution, SIGNAL( clicked() ), SLOT( setModified() ) ); @@ -119,6 +120,8 @@ radioNormal->setChecked( true ); radioLocal->setChecked( true ); + + chkEnabled->setChecked( true ); chkConfirmExecution->setChecked( false ); @@ -170,6 +173,9 @@ case KrAction::Terminal: radioTerminal->setChecked( true ); break; + case KrAction::RunInTE: + radioTE->setChecked( true ); + break; default: // case KrAction::Normal: radioNormal->setChecked( true ); break; @@ -179,6 +185,8 @@ radioUrl->setChecked( true ); else radioLocal->setChecked( true ); + + chkEnabled->setChecked( _action->isVisible() ); chkConfirmExecution->setChecked( _action->confirmExecution() ); @@ -257,6 +265,8 @@ _action->setExecType( KrAction::CollectOutput ); else if ( radioTerminal->isChecked() ) _action->setExecType( KrAction::Terminal ); + else if ( radioTE->isChecked() ) + _action->setExecType( KrAction::RunInTE ); else _action->setExecType( KrAction::Normal ); @@ -264,6 +274,9 @@ _action->setAcceptURLs( true ); else _action->setAcceptURLs( false ); + + _action->setEnabled( chkEnabled->isChecked() ); + _action->setVisible( chkEnabled->isChecked() ); _action->setConfirmExecution( chkConfirmExecution->isChecked() ); Modified: trunk/krusader_kde4/krusader/ActionMan/actionproperty.ui =================================================================== --- trunk/krusader_kde4/krusader/ActionMan/actionproperty.ui 2008-07-29 20:08:07 UTC (rev 6049) +++ trunk/krusader_kde4/krusader/ActionMan/actionproperty.ui 2008-07-29 20:40:39 UTC (rev 6050) @@ -389,7 +389,20 @@ </item> </layout> </item> - <item rowspan="2" row="9" column="0" colspan="2" > + <item row="11" column="2" colspan="2" > + <widget class="QCheckBox" name="chkEnabled" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="whatsThis" > + <string>If not checked, the action is not shown in the menus.</string> + </property> + <property name="text" > + <string>Enabled</string> + </property> + </widget> + </item> + <item rowspan="3" row="9" column="0" colspan="2" > <widget class="KButtonGroup" name="bgExecType" > <property name="sizePolicy" > <sizepolicy vsizetype="Minimum" hsizetype="Preferred" > @@ -401,7 +414,7 @@ <string>Execution mode</string> </property> <layout class="QGridLayout" > - <item row="2" column="0" > + <item row="3" column="0" > <widget class="QRadioButton" name="radioCollectOutput" > <property name="whatsThis" > <string>Collect the output of the executed program.</string> @@ -411,7 +424,7 @@ </property> </widget> </item> - <item row="3" column="0" > + <item row="4" column="0" > <widget class="QCheckBox" name="chkSeparateStdError" > <property name="enabled" > <bool>false</bool> @@ -444,6 +457,16 @@ </property> </widget> </item> + <item row="2" column="0" > + <widget class="QRadioButton" name="radioTE" > + <property name="whatsThis" > + <string>Run the command in the embedded terminal emulator.</string> + </property> + <property name="text" > + <string>Run in the embedded terminal emulator</string> + </property> + </widget> + </item> </layout> </widget> </item> Modified: trunk/krusader_kde4/krusader/UserAction/kraction.cpp =================================================================== --- trunk/krusader_kde4/krusader/UserAction/kraction.cpp 2008-07-29 20:08:07 UTC (rev 6049) +++ trunk/krusader_kde4/krusader/UserAction/kraction.cpp 2008-07-29 20:40:39 UTC (rev 6050) @@ -413,7 +413,14 @@ setName( element.attribute( "name" ).toLatin1() ); */ + QString attr; + attr = element.attribute( "enabled", "true" ); // default: "true" + if ( attr == "false" ) { + setEnabled( false ); + setVisible( false ); + } + for ( QDomNode node = element.firstChild(); !node.isNull(); node = node.nextSibling() ) { QDomElement e = node.toElement(); if ( e.isNull() ) @@ -459,6 +466,10 @@ QDomElement KrAction::xmlDump( QDomDocument& doc ) const { QDomElement actionElement = doc.createElement("action"); actionElement.setAttribute( "name", _name ); + + if ( ! isVisible() ) { + actionElement.setAttribute( "enabled", "false" ); + } #define TEXT_ELEMENT( TAGNAME, TEXT ) \ { \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-07-30 18:20:19
|
Revision: 6051 http://krusader.svn.sourceforge.net/krusader/?rev=6051&view=rev Author: vaclavjuza Date: 2008-07-30 18:20:25 +0000 (Wed, 30 Jul 2008) Log Message: ----------- FIXED: [Debian: 492955] useraction's availability section was dumped to "command" element. (thanks Iv?\195?\161n Forcada Atienza) Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/UserAction/kraction.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-07-29 20:40:39 UTC (rev 6050) +++ trunk/krusader_kde4/ChangeLog 2008-07-30 18:20:25 UTC (rev 6051) @@ -1,6 +1,8 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: [Debian: 492955] useraction's availability section was dumped to + "command" element. (thanks Iván Forcada Atienza) FIXED: Do not duplicate menu entries in UserAction menu while still not crashing when configuring toolbars. Modified: trunk/krusader_kde4/krusader/UserAction/kraction.cpp =================================================================== --- trunk/krusader_kde4/krusader/UserAction/kraction.cpp 2008-07-29 20:40:39 UTC (rev 6050) +++ trunk/krusader_kde4/krusader/UserAction/kraction.cpp 2008-07-30 18:20:25 UTC (rev 6051) @@ -611,7 +611,7 @@ } //KrAction::readAvailability QDomElement KrAction::dumpAvailability( QDomDocument& doc ) const { - QDomElement availabilityElement = doc.createElement("command"); + QDomElement availabilityElement = doc.createElement("availability"); # define LIST_ELEMENT( TAGNAME, LIST ) \ { \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-10 16:02:33
|
Revision: 6056 http://krusader.svn.sourceforge.net/krusader/?rev=6056&view=rev Author: ckarai Date: 2008-08-10 16:02:40 +0000 (Sun, 10 Aug 2008) Log Message: ----------- FIXED: crash at viewing folders Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/KViewer/panelviewer.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-06 10:51:56 UTC (rev 6055) +++ trunk/krusader_kde4/ChangeLog 2008-08-10 16:02:40 UTC (rev 6056) @@ -1,6 +1,7 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: Viewing directories are disabled to prevent KDE 4 crash FIXED: [Debian: 492955] useraction's availability section was dumped to "command" element. (thanks Iván Forcada Atienza) FIXED: Do not duplicate menu entries in UserAction menu while still not crashing when Modified: trunk/krusader_kde4/krusader/KViewer/panelviewer.cpp =================================================================== --- trunk/krusader_kde4/krusader/KViewer/panelviewer.cpp 2008-08-06 10:51:56 UTC (rev 6055) +++ trunk/krusader_kde4/krusader/KViewer/panelviewer.cpp 2008-08-10 16:02:40 UTC (rev 6056) @@ -68,6 +68,11 @@ if( mode == KrViewer::Generic ){ KMimeType::Ptr mt = KMimeType::findByUrl( curl ); cmimetype = mt ? mt->name() : QString(); + // KDE 4 HACK : START + // KDE 4 crashes at viewing directories + if( cmimetype == "inode/directory" ) + return 0; + // KDE 4 HACK : END if( mimes->find( cmimetype ) == mimes->end() ) { cpart = getPart( cmimetype ); mimes->insert( cmimetype, cpart ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-10 21:42:20
|
Revision: 6057 http://krusader.svn.sourceforge.net/krusader/?rev=6057&view=rev Author: ckarai Date: 2008-08-10 21:42:27 +0000 (Sun, 10 Aug 2008) Log Message: ----------- FIXED: [ 2014344 ] CTRL-C (copy) does not work in internal editor Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/KViewer/krviewer.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-10 16:02:40 UTC (rev 6056) +++ trunk/krusader_kde4/ChangeLog 2008-08-10 21:42:27 UTC (rev 6057) @@ -1,6 +1,7 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: [ 2014344 ] CTRL-C (copy) does not work in internal editor FIXED: Viewing directories are disabled to prevent KDE 4 crash FIXED: [Debian: 492955] useraction's availability section was dumped to "command" element. (thanks Iván Forcada Atienza) Modified: trunk/krusader_kde4/krusader/KViewer/krviewer.cpp =================================================================== --- trunk/krusader_kde4/krusader/KViewer/krviewer.cpp 2008-08-10 16:02:40 UTC (rev 6056) +++ trunk/krusader_kde4/krusader/KViewer/krviewer.cpp 2008-08-10 21:42:27 UTC (rev 6057) @@ -95,8 +95,20 @@ //no point in detaching only one tab.. detachAction->setEnabled(false); viewerMenu->addSeparator(); - viewerMenu->addAction( printAction->icon(), printAction->text(), this, SLOT( print() ))->setShortcut( printAction->shortcut().primary() ); - viewerMenu->addAction( copyAction->icon(), copyAction->text(), this, SLOT( copy() ))->setShortcut( copyAction->shortcut().primary() ); + QList<QAction *> actList = menuBar()->actions(); + bool hasPrint = false, hasCopy = false; + foreach( QAction *a, actList ) { + if( a->shortcut().matches( printAction->shortcut().primary() ) != QKeySequence::NoMatch ) + hasPrint = true; + if( a->shortcut().matches( copyAction->shortcut().primary() ) != QKeySequence::NoMatch ) + hasCopy = true; + } + QAction *printAct = viewerMenu->addAction( printAction->icon(), printAction->text(), this, SLOT( print() )); + if( hasPrint ) + printAct->setShortcut( printAction->shortcut().primary() ); + QAction *copyAct = viewerMenu->addAction( copyAction->icon(), copyAction->text(), this, SLOT( copy() )); + if( hasCopy ) + copyAct->setShortcut( copyAction->shortcut().primary() ); viewerMenu->addSeparator(); ( tabClose = viewerMenu->addAction( i18n( "&Close current tab" ), this, SLOT( tabCloseRequest() )))->setShortcut( Qt::Key_Escape ); ( closeAct = viewerMenu->addAction( i18n( "&Quit" ), this, SLOT( close() )))->setShortcut( Qt::CTRL + Qt::Key_Q ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-11 06:05:49
|
Revision: 6058 http://krusader.svn.sourceforge.net/krusader/?rev=6058&view=rev Author: ckarai Date: 2008-08-11 06:05:57 +0000 (Mon, 11 Aug 2008) Log Message: ----------- FIXED: [ 1980765 ] error at creating ../dir directory Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Panel/panelfunc.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-10 21:42:27 UTC (rev 6057) +++ trunk/krusader_kde4/ChangeLog 2008-08-11 06:05:57 UTC (rev 6058) @@ -1,6 +1,7 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: [ 1980765 ] error at creating ../dir directory FIXED: [ 2014344 ] CTRL-C (copy) does not work in internal editor FIXED: Viewing directories are disabled to prevent KDE 4 crash FIXED: [Debian: 492955] useraction's availability section was dumped to Modified: trunk/krusader_kde4/krusader/Panel/panelfunc.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/panelfunc.cpp 2008-08-10 21:42:27 UTC (rev 6057) +++ trunk/krusader_kde4/krusader/Panel/panelfunc.cpp 2008-08-11 06:05:57 UTC (rev 6058) @@ -493,6 +493,12 @@ QStringList dirTree = dirName.split( "/" ); for ( QStringList::Iterator it = dirTree.begin(); it != dirTree.end(); ++it ) { + if( *it == "." ) + continue; + if( *it == ".." ) { + immediateOpenUrl( *it ); + continue; + } // check if the name is already taken if ( files() ->vfs_search( *it ) ) { // if it is the last dir to be created - quit This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-12 18:11:51
|
Revision: 6059 http://krusader.svn.sourceforge.net/krusader/?rev=6059&view=rev Author: ckarai Date: 2008-08-12 18:12:01 +0000 (Tue, 12 Aug 2008) Log Message: ----------- FIXED: [ 2023599 ] start root mode Krusader (thanks to gladiac) Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/krslots.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-11 06:05:57 UTC (rev 6058) +++ trunk/krusader_kde4/ChangeLog 2008-08-12 18:12:01 UTC (rev 6059) @@ -1,6 +1,7 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: [ 2023599 ] start root mode Krusader works again (thanks to gladiac) FIXED: [ 1980765 ] error at creating ../dir directory FIXED: [ 2014344 ] CTRL-C (copy) does not work in internal editor FIXED: Viewing directories are disabled to prevent KDE 4 crash Modified: trunk/krusader_kde4/krusader/krslots.cpp =================================================================== --- trunk/krusader_kde4/krusader/krslots.cpp 2008-08-11 06:05:57 UTC (rev 6058) +++ trunk/krusader_kde4/krusader/krslots.cpp 2008-08-12 18:12:01 UTC (rev 6059) @@ -547,8 +547,8 @@ KProcess proc; proc << KrServices::fullPathName( "kdesu" ) << KrServices::fullPathName( "krusader" ) - << "--left=" + MAIN_VIEW->left->func->files()->vfs_getOrigin().url() - << "--right=" + MAIN_VIEW->right->func->files()->vfs_getOrigin().url(); + + " --left=" + MAIN_VIEW->left->func->files()->vfs_getOrigin().url() + + " --right=" + MAIN_VIEW->right->func->files()->vfs_getOrigin().url(); if (!proc.startDetached()) KMessageBox::error(0,i18n("Error executing %1!", proc.program()[0])); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-12 19:45:44
|
Revision: 6060 http://krusader.svn.sourceforge.net/krusader/?rev=6060&view=rev Author: ckarai Date: 2008-08-12 19:45:52 +0000 (Tue, 12 Aug 2008) Log Message: ----------- FIXED: icons for symlinks are corrupted Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Panel/krview.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-12 18:12:01 UTC (rev 6059) +++ trunk/krusader_kde4/ChangeLog 2008-08-12 19:45:52 UTC (rev 6060) @@ -1,6 +1,7 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: icons for symlinks are corrupted FIXED: [ 2023599 ] start root mode Krusader works again (thanks to gladiac) FIXED: [ 1980765 ] error at creating ../dir directory FIXED: [ 2014344 ] CTRL-C (copy) does not work in internal editor Modified: trunk/krusader_kde4/krusader/Panel/krview.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/krview.cpp 2008-08-12 18:12:01 UTC (rev 6059) +++ trunk/krusader_kde4/krusader/Panel/krview.cpp 2008-08-12 19:45:52 UTC (rev 6060) @@ -118,7 +118,8 @@ if ( vf->vfile_isSymLink() ) { QPixmap link( link_xpm ); // bitBlt ( &icon, 0, icon.height() - 11, &link, 0, 21, 10, 11, Qt::CopyROP, false ); - QPainter( &icon ).drawPixmap( 0, icon.height() - 11, link, 0, 21, 10, 11 ); + QPainter painter( &icon ); + painter.drawPixmap( 0, icon.height() - 11, link, 0, 21, 10, 11 ); icon.setMask( icon.createHeuristicMask( false ) ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-12 21:26:26
|
Revision: 6061 http://krusader.svn.sourceforge.net/krusader/?rev=6061&view=rev Author: ckarai Date: 2008-08-12 21:26:34 +0000 (Tue, 12 Aug 2008) Log Message: ----------- FIXED: [ 2017011 ] Crash when changing the Qt theme Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/GUI/krlistwidget.cpp trunk/krusader_kde4/krusader/GUI/krstyleproxy.cpp trunk/krusader_kde4/krusader/GUI/krstyleproxy.h trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp trunk/krusader_kde4/krusader/Panel/krview.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-12 19:45:52 UTC (rev 6060) +++ trunk/krusader_kde4/ChangeLog 2008-08-12 21:26:34 UTC (rev 6061) @@ -1,6 +1,7 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: [ 2017011 ] Crash when changing the Qt theme FIXED: icons for symlinks are corrupted FIXED: [ 2023599 ] start root mode Krusader works again (thanks to gladiac) FIXED: [ 1980765 ] error at creating ../dir directory Modified: trunk/krusader_kde4/krusader/GUI/krlistwidget.cpp =================================================================== --- trunk/krusader_kde4/krusader/GUI/krlistwidget.cpp 2008-08-12 19:45:52 UTC (rev 6060) +++ trunk/krusader_kde4/krusader/GUI/krlistwidget.cpp 2008-08-12 21:26:34 UTC (rev 6061) @@ -34,7 +34,7 @@ #include <qevent.h> KrListWidget::KrListWidget( QWidget * parent ) : QListWidget( parent ) { - setStyle( new KrStyleProxy( style() ) ); + setStyle( new KrStyleProxy() ); } bool KrListWidget::event ( QEvent * event ) Modified: trunk/krusader_kde4/krusader/GUI/krstyleproxy.cpp =================================================================== --- trunk/krusader_kde4/krusader/GUI/krstyleproxy.cpp 2008-08-12 19:45:52 UTC (rev 6060) +++ trunk/krusader_kde4/krusader/GUI/krstyleproxy.cpp 2008-08-12 21:26:34 UTC (rev 6061) @@ -32,25 +32,22 @@ #include <qpen.h> #include <qpainter.h> #include <QStyleOptionViewItem> +#include <qapplication.h> -KrStyleProxy::KrStyleProxy( QStyle * style ) { - _style = style; -} - void KrStyleProxy::drawComplexControl ( ComplexControl control, const QStyleOptionComplex * option, QPainter * painter, const QWidget * widget ) const { - _style->drawComplexControl( control, option, painter, widget ); + QApplication::style()->drawComplexControl( control, option, painter, widget ); } void KrStyleProxy::drawControl ( ControlElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget ) const { - _style->drawControl( element, option, painter, widget ); + QApplication::style()->drawControl( element, option, painter, widget ); } void KrStyleProxy::drawItemPixmap ( QPainter * painter, const QRect & rectangle, int alignment, const QPixmap & pixmap ) const { - _style->drawItemPixmap( painter, rectangle, alignment, pixmap ); + QApplication::style()->drawItemPixmap( painter, rectangle, alignment, pixmap ); } void KrStyleProxy::drawItemText ( QPainter * painter, const QRect & rectangle, int alignment, const QPalette & palette, bool enabled, const QString & text, QPalette::ColorRole textRole ) const { - _style->drawItemText( painter, rectangle, alignment, palette, enabled, text, textRole ); + QApplication::style()->drawItemText( painter, rectangle, alignment, palette, enabled, text, textRole ); } void KrStyleProxy::drawPrimitive ( PrimitiveElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget ) const { @@ -78,69 +75,69 @@ } } else - _style->drawPrimitive( element, option, painter, widget ); + QApplication::style()->drawPrimitive( element, option, painter, widget ); } QPixmap KrStyleProxy::generatedIconPixmap ( QIcon::Mode iconMode, const QPixmap & pixmap, const QStyleOption * option ) const { - return _style->generatedIconPixmap( iconMode, pixmap, option ); + return QApplication::style()->generatedIconPixmap( iconMode, pixmap, option ); } QStyle::SubControl KrStyleProxy::hitTestComplexControl ( ComplexControl control, const QStyleOptionComplex * option, const QPoint & position, const QWidget * widget ) const { - return _style->hitTestComplexControl ( control, option, position, widget ); + return QApplication::style()->hitTestComplexControl ( control, option, position, widget ); } QRect KrStyleProxy::itemPixmapRect ( const QRect & rectangle, int alignment, const QPixmap & pixmap ) const { - return _style->itemPixmapRect ( rectangle, alignment, pixmap ); + return QApplication::style()->itemPixmapRect ( rectangle, alignment, pixmap ); } QRect KrStyleProxy::itemTextRect ( const QFontMetrics & metrics, const QRect & rectangle, int alignment, bool enabled, const QString & text ) const { - return _style->itemTextRect ( metrics, rectangle, alignment, enabled, text ); + return QApplication::style()->itemTextRect ( metrics, rectangle, alignment, enabled, text ); } int KrStyleProxy::pixelMetric ( PixelMetric metric, const QStyleOption * option, const QWidget * widget ) const { - return _style->pixelMetric ( metric, option, widget ); + return QApplication::style()->pixelMetric ( metric, option, widget ); } void KrStyleProxy::polish ( QWidget * widget ) { - _style->polish( widget ); + QApplication::style()->polish( widget ); } void KrStyleProxy::polish ( QApplication * application ) { - _style->polish( application ); + QApplication::style()->polish( application ); } void KrStyleProxy::polish ( QPalette & palette ) { - _style->polish( palette ); + QApplication::style()->polish( palette ); } QSize KrStyleProxy::sizeFromContents ( ContentsType type, const QStyleOption * option, const QSize & contentsSize, const QWidget * widget ) const { - return _style->sizeFromContents ( type, option, contentsSize, widget ); + return QApplication::style()->sizeFromContents ( type, option, contentsSize, widget ); } QPalette KrStyleProxy::standardPalette () const { - return _style->standardPalette (); + return QApplication::style()->standardPalette (); } int KrStyleProxy::styleHint ( StyleHint hint, const QStyleOption * option, const QWidget * widget, QStyleHintReturn * returnData ) const { - return _style->styleHint( hint, option, widget, returnData ); + return QApplication::style()->styleHint( hint, option, widget, returnData ); } QRect KrStyleProxy::subControlRect ( ComplexControl control, const QStyleOptionComplex * option, SubControl subControl, const QWidget * widget ) const { - return _style->subControlRect ( control, option, subControl, widget ); + return QApplication::style()->subControlRect ( control, option, subControl, widget ); } QRect KrStyleProxy::subElementRect ( SubElement element, const QStyleOption * option, const QWidget * widget ) const { - return _style->subElementRect ( element, option, widget ); + return QApplication::style()->subElementRect ( element, option, widget ); } QPixmap KrStyleProxy::standardPixmap(QStyle::StandardPixmap pixmap, const QStyleOption* option, const QWidget*widget) const { - return _style->standardPixmap ( pixmap, option, widget ); + return QApplication::style()->standardPixmap ( pixmap, option, widget ); } void KrStyleProxy::unpolish ( QWidget * widget ) { - _style->unpolish( widget ); + QApplication::style()->unpolish( widget ); } void KrStyleProxy::unpolish ( QApplication * application ) { - _style->unpolish( application ); + QApplication::style()->unpolish( application ); } Modified: trunk/krusader_kde4/krusader/GUI/krstyleproxy.h =================================================================== --- trunk/krusader_kde4/krusader/GUI/krstyleproxy.h 2008-08-12 19:45:52 UTC (rev 6060) +++ trunk/krusader_kde4/krusader/GUI/krstyleproxy.h 2008-08-12 21:26:34 UTC (rev 6061) @@ -39,7 +39,7 @@ class KrStyleProxy: public QStyle { public: - KrStyleProxy( QStyle * style ); + KrStyleProxy() {} virtual void drawComplexControl( ComplexControl control, const QStyleOptionComplex * option, QPainter * painter, const QWidget * widget = 0 ) const; virtual void drawControl ( ControlElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget = 0 ) const; virtual void drawItemPixmap ( QPainter * painter, const QRect & rectangle, int alignment, const QPixmap & pixmap ) const; @@ -61,9 +61,6 @@ virtual QPixmap standardPixmap(QStyle::StandardPixmap pixmap, const QStyleOption* option, const QWidget*widget = 0) const; virtual void unpolish ( QWidget * widget ); virtual void unpolish ( QApplication * application ); - -protected: - QStyle * _style; }; Modified: trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp =================================================================== --- trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp 2008-08-12 19:45:52 UTC (rev 6060) +++ trunk/krusader_kde4/krusader/GUI/krtreewidget.cpp 2008-08-12 21:26:34 UTC (rev 6061) @@ -43,7 +43,7 @@ _stretchingColumn = -1; - setStyle( new KrStyleProxy( style() ) ); + setStyle( new KrStyleProxy() ); } bool KrTreeWidget::event ( QEvent * event ) Modified: trunk/krusader_kde4/krusader/Panel/krview.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/krview.cpp 2008-08-12 19:45:52 UTC (rev 6060) +++ trunk/krusader_kde4/krusader/Panel/krview.cpp 2008-08-12 21:26:34 UTC (rev 6061) @@ -120,7 +120,7 @@ // bitBlt ( &icon, 0, icon.height() - 11, &link, 0, 21, 10, 11, Qt::CopyROP, false ); QPainter painter( &icon ); painter.drawPixmap( 0, icon.height() - 11, link, 0, 21, 10, 11 ); - icon.setMask( icon.createHeuristicMask( false ) ); + //icon.setMask( icon.createHeuristicMask( false ) ); } return icon; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-12 22:46:59
|
Revision: 6064 http://krusader.svn.sourceforge.net/krusader/?rev=6064&view=rev Author: ckarai Date: 2008-08-12 22:47:05 +0000 (Tue, 12 Aug 2008) Log Message: ----------- Bookmark fixes Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/BookMan/krbookmark.cpp trunk/krusader_kde4/krusader/BookMan/krbookmarkhandler.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-12 21:42:09 UTC (rev 6063) +++ trunk/krusader_kde4/ChangeLog 2008-08-12 22:47:05 UTC (rev 6064) @@ -1,6 +1,8 @@ ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + FIXED: "local network" bookmark didn't work + FIXED: bookmark menu was not always closed after opening a bookmark FIXED: [ 2017011 ] Crash when changing the Qt theme FIXED: icons for symlinks are corrupted FIXED: [ 2023599 ] start root mode Krusader works again (thanks to gladiac) Modified: trunk/krusader_kde4/krusader/BookMan/krbookmark.cpp =================================================================== --- trunk/krusader_kde4/krusader/BookMan/krbookmark.cpp 2008-08-12 21:42:09 UTC (rev 6063) +++ trunk/krusader_kde4/krusader/BookMan/krbookmark.cpp 2008-08-12 22:47:05 UTC (rev 6064) @@ -88,7 +88,7 @@ KrBookmark *bm = getExistingBookmark ( i18n ( NAME_LAN ), collection ); if ( !bm ) { - bm = new KrBookmark ( i18n ( NAME_LAN ), KUrl("lan:/"), collection ); + bm = new KrBookmark ( i18n ( NAME_LAN ), KUrl("remote:/"), collection ); bm->setIcon ( krLoader->loadIcon ( "network-wired", KIconLoader::Small ) ); } return bm; Modified: trunk/krusader_kde4/krusader/BookMan/krbookmarkhandler.cpp =================================================================== --- trunk/krusader_kde4/krusader/BookMan/krbookmarkhandler.cpp 2008-08-12 21:42:09 UTC (rev 6063) +++ trunk/krusader_kde4/krusader/BookMan/krbookmarkhandler.cpp 2008-08-12 22:47:05 UTC (rev 6064) @@ -593,6 +593,8 @@ // bookmark is opened in a new tab. ugly, but easier than overloading // KAction and KActionCollection. void KrBookmarkHandler::slotActivated(const KUrl& url) { + if( _mainBookmarkPopup && !_mainBookmarkPopup->isHidden() ) + _mainBookmarkPopup->close(); if (_middleClick) SLOTS->newTab(url); else SLOTS->refresh(url); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-20 20:10:16
|
Revision: 6066 http://krusader.svn.sourceforge.net/krusader/?rev=6066&view=rev Author: ckarai Date: 2008-08-20 20:10:18 +0000 (Wed, 20 Aug 2008) Log Message: ----------- Fixes + architectural changes Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.cpp trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.h trunk/krusader_kde4/krusader/GUI/mediabutton.cpp trunk/krusader_kde4/krusader/GUI/mediabutton.h trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp trunk/krusader_kde4/krusader/Panel/krbriefview.cpp trunk/krusader_kde4/krusader/Panel/krbriefview.h trunk/krusader_kde4/krusader/Panel/krbriefviewitem.h trunk/krusader_kde4/krusader/Panel/krdetailedview.cpp trunk/krusader_kde4/krusader/Panel/krdetailedview.h trunk/krusader_kde4/krusader/Panel/krdetailedviewitem.h trunk/krusader_kde4/krusader/Panel/krinterview.cpp trunk/krusader_kde4/krusader/Panel/krinterview.h trunk/krusader_kde4/krusader/Panel/krview.cpp trunk/krusader_kde4/krusader/Panel/krview.h trunk/krusader_kde4/krusader/Panel/krviewitem.cpp trunk/krusader_kde4/krusader/Panel/krviewitem.h trunk/krusader_kde4/krusader/Panel/listpanel.cpp trunk/krusader_kde4/krusader/Synchronizer/synchronizergui.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/ChangeLog 2008-08-20 20:10:18 UTC (rev 6066) @@ -1,6 +1,14 @@ + ADDED: [ 1704953 ] highlight quick search match ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" + ADDED: the description of a dir contains its size if it is known + ARCH: MediaButton uses Solid for medium detection + ARCH: QuickSearch is moved to KrView from Detailed/Brief views + ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + + FIXED: KDE4 workaround: no colors for synchronizer + FIXED: MediaButton doesn't notice unmounted pen drives+CD/DVD-s FIXED: "local network" bookmark didn't work FIXED: bookmark menu was not always closed after opening a bookmark FIXED: [ 2017011 ] Crash when changing the Qt theme Modified: trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.cpp =================================================================== --- trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.cpp 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.cpp 2008-08-20 20:10:18 UTC (rev 6066) @@ -42,6 +42,7 @@ #include <kdebug.h> #include <QKeyEvent> #include <QPaintEvent> +#include <kcolorscheme.h> ///////////////////////////////////////////////////////////////////////////// /////////////////////// Pie related widgets ///////////////////////////////// @@ -218,7 +219,10 @@ //////////////////////////////////////////////////// /////////////////// KrQuickSearch ///////////////// //////////////////////////////////////////////////// -KrQuickSearch::KrQuickSearch( QWidget *parent ) : KLineEdit( parent ) {} +KrQuickSearch::KrQuickSearch( QWidget *parent ) : KLineEdit( parent ) +{ + setMatch( true ); +} void KrQuickSearch::myKeyPressEvent( QKeyEvent *e ) { switch ( e->key() ) { @@ -248,6 +252,39 @@ } } +void KrQuickSearch::setMatch( bool match ) { + KConfigGroup gc( krConfig, "Colors"); + QString foreground, background; + QColor fore, back; + if( match ) + { + foreground = "Quicksearch Match Foreground"; + background = "Quicksearch Match Background"; + fore = Qt::black; + back = QColor( 192, 255, 192 ); + } else { + foreground = "Quicksearch Non-match Foreground"; + background = "Quicksearch Non-match Background"; + fore = Qt::black; + back = QColor(255,192,192); + } + + if( gc.readEntry( foreground, QString() ) == "KDE default" ) + fore = KColorScheme(QPalette::Active, KColorScheme::View).foreground().color(); + else if( !gc.readEntry( foreground, QString() ).isEmpty() ) + fore = gc.readEntry( foreground, fore ); + + if( gc.readEntry( background, QString() ) == "KDE default" ) + back = KColorScheme(QPalette::Active, KColorScheme::View).background().color(); + else if( !gc.readEntry( background, QString() ).isEmpty() ) + back = gc.readEntry( background, back ); + + QPalette pal = palette(); + pal.setColor( QPalette::Base, back); + pal.setColor( QPalette::Text, fore); + setPalette( pal ); +} + #include "krspecialwidgets.moc" Modified: trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.h =================================================================== --- trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.h 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/krusader/Dialogs/krspecialwidgets.h 2008-08-20 20:10:18 UTC (rev 6066) @@ -107,6 +107,7 @@ KrQuickSearch(QWidget *parent); void addText(const QString &str) { setText(text()+str); } void myKeyPressEvent(QKeyEvent *e); + void setMatch( bool match ); void myInputMethodEvent(QInputMethodEvent* e) { inputMethodEvent(e); } Modified: trunk/krusader_kde4/krusader/GUI/mediabutton.cpp =================================================================== --- trunk/krusader_kde4/krusader/GUI/mediabutton.cpp 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/krusader/GUI/mediabutton.cpp 2008-08-20 20:10:18 UTC (rev 6066) @@ -29,53 +29,28 @@ ***************************************************************************/ #include "mediabutton.h" -#include "../krusader.h" -#include "../krservices.h" -#include "../kicons.h" #include "../krslots.h" #include "../MountMan/kmountman.h" -#include <qfile.h> -#include <qfontmetrics.h> -#include <qtextstream.h> -#include <QPixmap> #include <QMouseEvent> #include <QEvent> #include <klocale.h> -#include <kiconloader.h> - -#include <kdeversion.h> -#include <kio/job.h> #include <kmessagebox.h> -#include <kmimetype.h> -#include <kprotocolinfo.h> -#include <kfileitem.h> -#include <kprocess.h> #include <kdiskfreespace.h> +#include <kio/global.h> #include <qcursor.h> +#include <kmountpoint.h> +#include <solid/deviceinterface.h> +#include <solid/storageaccess.h> +#include <solid/storagevolume.h> +#include <solid/opticaldisc.h> +#include <solid/opticaldrive.h> +#include <solid/devicenotifier.h> -#ifdef Q_OS_LINUX -// For CD/DVD drive detection -#include <fcntl.h> -#include <sys/ioctl.h> -#include <unistd.h> -#include <stdint.h> -#define CDROM_GET_CAPABILITY 0x5331 -#define CDSL_CURRENT ((int) (~0U>>1)) -#define CDC_DVD_R 0x10000 /* drive can write DVD-R */ -#define CDC_DVD_RAM 0x20000 /* drive can write DVD-RAM */ -#define CDC_CD_R 0x2000 /* drive is a CD-R */ -#define CDC_CD_RW 0x4000 /* drive is a CD-RW */ -#define CDC_DVD 0x8000 /* drive is a DVD */ -#include <qfile.h> -#endif - - - MediaButton::MediaButton( QWidget *parent ) : QToolButton( parent ), - popupMenu( 0 ), rightMenu( 0 ), hasMedia( false ), waitingForMount( -1 ), mountCheckerTimer() - { + popupMenu( 0 ), rightMenu( 0 ), openInNewTab( false ) +{ KIconLoader * iconLoader = new KIconLoader(); QPixmap icon = iconLoader->loadIcon( "blockdevice", KIconLoader::Toolbar, 16 ); @@ -95,318 +70,192 @@ connect( popupMenu, SIGNAL( aboutToShow() ), this, SLOT( slotAboutToShow() ) ); connect( popupMenu, SIGNAL( aboutToHide() ), this, SLOT( slotAboutToHide() ) ); connect( popupMenu, SIGNAL( triggered( QAction * ) ), this, SLOT( slotPopupActivated( QAction * ) ) ); - + + Solid::DeviceNotifier *notifier = Solid::DeviceNotifier::instance(); + connect(notifier, SIGNAL(deviceAdded(const QString&)), + this, SLOT(slotDeviceAdded(const QString&))); + connect(notifier, SIGNAL(deviceRemoved(const QString&)), + this, SLOT(slotDeviceRemoved(const QString&))); + connect( &mountCheckerTimer, SIGNAL( timeout() ), this, SLOT( slotTimeout() ) ); } MediaButton::~MediaButton() { - busy = false; } void MediaButton::slotAboutToShow() { emit aboutToShow(); - hasMedia = KProtocolInfo::isKnownProtocol( QString( "media" ) ); - KConfigGroup group( krConfig, "Advanced" ); - if( group.readEntry( "DontUseMediaProt", !hasMedia ) ) - hasMedia = false; - popupMenu->clear(); - urls.clear(); - mediaUrls.clear(); - iconNames.clear(); - quasiMounted.clear(); - waitingForMount = -1; + udiNameMap.clear(); - if( hasMedia ) - createListWithMedia(); - else - createListWithoutMedia(); - - mountCheckerTimer.setSingleShot( true ); - mountCheckerTimer.start( 1000 ); + createMediaList(); } void MediaButton::slotAboutToHide() { if( rightMenu ) rightMenu->close(); - - if( waitingForMount < 0 ) - mountCheckerTimer.stop(); + mountCheckerTimer.stop(); } -void MediaButton::createListWithMedia() { - KIO::ListJob *job = KIO::listDir( KUrl( "media:/" ), KIO::HideProgressInfo ); - connect( job, SIGNAL( entries( KIO::Job*, const KIO::UDSEntryList& ) ), - this, SLOT( slotEntries( KIO::Job*, const KIO::UDSEntryList& ) ) ); - connect( job, SIGNAL( result( KJob* ) ), - this, SLOT( slotListResult( KJob* ) ) ); - busy = true; +void MediaButton::createMediaList() { + // devices detected by solid + storageDevices = Solid::Device::listFromType( Solid::DeviceInterface::StorageAccess ); - if( !busy ) - qApp->processEvents(); -} - -void MediaButton::slotEntries( KIO::Job *, const KIO::UDSEntryList& entries ) -{ - KMountPoint::List mountList = KMountPoint::currentMountPoints(); + for( int p = storageDevices.count()-1 ; p >= 0; p-- ) { + Solid::Device device = storageDevices[ p ]; + QString udi = device.udi(); + + QString name; + KIcon kdeIcon; + if( !getNameAndIcon( device, name, kdeIcon ) ) + continue; + + QAction * act = popupMenu->addAction( kdeIcon, name ); + act->setData( QVariant( udi ) ); + udiNameMap[ udi ] = name; + + connect(device.as<Solid::StorageAccess>(), SIGNAL(accessibilityChanged(bool, const QString &)), + this, SLOT(slotAccessibilityChanged(bool, const QString &))); + } - KIO::UDSEntryList::const_iterator it = entries.begin(); - KIO::UDSEntryList::const_iterator end = entries.end(); + KMountPoint::List possibleMountList = KMountPoint::possibleMountPoints(); + KMountPoint::List currentMountList = KMountPoint::currentMountPoints(); - while( it != end ) - { - KUrl url; - QString text; - QString mime; - QString iconName; - QString localPath; - bool mounted = false; - - if( (*it).contains( KIO::UDSEntry::UDS_NAME ) ) - text = QUrl::fromPercentEncoding( (*it).stringValue( KIO::UDSEntry::UDS_NAME ).toLatin1() ); - if( (*it).contains( KIO::UDSEntry::UDS_URL ) ) - url = KUrl( (*it).stringValue( KIO::UDSEntry::UDS_URL ) ); - if( (*it).contains( KIO::UDSEntry::UDS_MIME_TYPE ) ) - { - mime = (*it).stringValue( KIO::UDSEntry::UDS_MIME_TYPE ); - if( !mime.endsWith( "unmounted" ) ) - mounted = true; - } - if( (*it).contains( KIO::UDSEntry::UDS_LOCAL_PATH ) ) - localPath = (*it).stringValue( KIO::UDSEntry::UDS_LOCAL_PATH ); - - if( text != "." && text != ".." ) { - int index = popupMenu->actions().count(); - KMimeType::Ptr mt = KMimeType::mimeType( mime ); - QPixmap pixmap; - if( mt ) { - iconName = mt->iconName(); - pixmap = FL_LOADICON( mt->iconName() ); - } + for (KMountPoint::List::iterator it = possibleMountList.begin(); it != possibleMountList.end(); ++it) { + if( (*it)->mountType() == "nfs" || (*it)->mountType() == "smb" ) { + QString path = (*it)->mountPoint(); + bool mounted = false; - mediaUrls.append( url ); - - if( mounted && !localPath.isEmpty() ) - { - url = KUrl( localPath ); - if( !text.contains( url.path() ) ) - text += " [" + url.path() + "]"; + for (KMountPoint::List::iterator it2 = currentMountList.begin(); it2 != currentMountList.end(); ++it2) { + if(( (*it2)->mountType() == "nfs" || (*it2)->mountType() == "smb" ) && + (*it)->mountPoint() == (*it2)->mountPoint() ) { + mounted = true; + break; + } } - else if( mounted ) - { - url = getLocalPath( url, &mountList ); - if( url.isLocalFile() && !text.contains( url.path() ) ) - text += " [" + url.path() + "]"; - } - QAction *act = popupMenu->addAction( pixmap, text ); - act->setData( QVariant( index ) ); - idActionMap[ index ] = act; - - urls.append( url ); - iconNames.append( iconName ); - quasiMounted.append( false ); + QString name = i18n( "Remote Share" ) + " [" + (*it)->mountPoint() + "]"; + QStringList overlays; + if ( mounted ) + overlays << "emblem-mounted"; + KIcon kdeIcon("network-wired", 0, overlays); + QAction * act = popupMenu->addAction( kdeIcon, name ); + QString udi = "remote:" + (*it)->mountPoint(); + act->setData( QVariant( udi ) ); } - ++it; } + + mountCheckerTimer.setSingleShot( true ); + mountCheckerTimer.start( 1000 ); } -void MediaButton::slotListResult( KJob * ) { - busy = false; -} - -KUrl MediaButton::getLocalPath( const KUrl &url, KMountPoint::List *mountList ) { - KMountPoint::List mountListRef; - if( mountList == 0 ) { - mountListRef = KMountPoint::currentMountPoints(); - mountList = &mountListRef; - } +bool MediaButton::getNameAndIcon( Solid::Device & device, QString &name, KIcon &kicon) { + Solid::StorageAccess *access = device.as<Solid::StorageAccess>(); + if( access == 0 ) + return false; + + QString udi = device.udi(); + QString label = i18n( "Unknown" ); + bool mounted = access->isAccessible(); + QString path = access->filePath(); + QString type = i18n( "Unknown" ); + QString icon = device.icon(); + QString fstype; + QString size; - for (KMountPoint::List::iterator it = mountList->begin(); it != mountList->end(); ++it) { - QString name = (*it)->mountedFrom(); - name = name.mid( name.lastIndexOf( "/" ) + 1 ); - if( name == url.fileName() ) { - QString point = (*it)->mountPoint(); - if( !point.isEmpty() ) - return KUrl( point ); - } + Solid::StorageVolume * vol = device.as<Solid::StorageVolume> (); + if( vol ) { + label = vol->label(); + fstype = vol->fsType(); + size = KIO::convertSize( vol->size() ); } - return url; -} - - -void MediaButton::createListWithoutMedia() { - /* WORKAROUND CODE START */ - /* 1. the menu is drawn when we know all the mount points - 2. the menu is corrected, when the HDD volume sizes arrive from df + bool printSize = false; - when the volume sizes are added to the items, some cases widget resize - is necessary. If transparency is set for the widget, QT produces weird - looking widgets, and that's why this workaround is used. - Here we add additional spaces to the mounted HDD elements for avoiding - the buggy widget resize. These are extra spaces. */ - - extraSpaces = ""; - QFontMetrics fm( popupMenu->font() ); - int requiredWidth = fm.width( "999.9 GB " ); - while( fm.width( extraSpaces ) < requiredWidth ) - extraSpaces+=" "; - /* WORKAROUND CODE END */ + if( icon == "media-floppy" ) + type = i18n( "Floppy" ); + else if( icon == "drive-optical" ) + type = i18n( "CD/DVD-ROM" ); + else if( icon == "drive-removable-media-usb-pendrive" ) + type = i18n( "USB pen drive" ), printSize = true; + else if( icon == "drive-removable-media-usb" ) + type = i18n( "USB device" ), printSize = true; + else if( icon == "drive-removable-media" ) + type = i18n( "Removable media" ), printSize = true; + else if( icon == "drive-harddisk" ) + type = i18n( "Hard Disk" ), printSize = true; + else if( icon == "camera-photo" ) + type = i18n( "Camera" ); + else if( icon == "media-optical-video" ) + type = i18n( "Video CD/DVD-ROM" ); + else if( icon == "media-optical-audio" ) + type = i18n( "Audio CD/DVD-ROM" ); + else if( icon == "media-optical" ) + type = i18n( "Recordable CD/DVD-ROM" ); - KMountPoint::List possibleMountList = KMountPoint::possibleMountPoints(); - for (KMountPoint::List::iterator it = possibleMountList.begin(); it != possibleMountList.end(); ++it) { - addMountPoint( &(*(*it)), false ); - } + if( printSize && !size.isEmpty() ) + name += size + " "; - KMountPoint::List mountList = KMountPoint::currentMountPoints(); - for (KMountPoint::List::iterator it = mountList.begin(); it != mountList.end(); ++it) { - addMountPoint( &(*(*it)), true ); - } -} - -QString MediaButton::detectType( KMountPoint *mp ) -{ - QString typeName = QString(); -#ifdef Q_OS_LINUX - // Guessing device types by mount point is not exactly accurate... - // Do something accurate first, and fall back if necessary. - - bool isCd=false; - QString devname=mp->mountedFrom().section('/', -1); - if(devname.startsWith("scd") || devname.startsWith("sr")) - { - // SCSI CD/DVD drive - isCd=true; - } - else if(devname.startsWith("hd")) - { - // IDE device -- we can't tell if this is a - // CD/DVD drive or harddisk by just looking at the - // filename - QFile m(QString("/proc/ide/") + devname + "/media"); - if(m.open(QIODevice::ReadOnly)) - { - QTextStream in(&m); - QString buf=in.readLine(); - if(buf.contains("cdrom")) - isCd=true; - m.close(); - } - } - if(isCd) - { - int device=::open((const char *)QFile::encodeName(mp->mountedFrom()), O_RDONLY | O_NONBLOCK ); - if(device>=0) - { - int drv=::ioctl(device, CDROM_GET_CAPABILITY, CDSL_CURRENT); - if(drv>=0) - { - if((drv & CDC_DVD_R) || (drv & CDC_DVD_RAM)) - typeName = "dvdwriter"; - else if((drv & CDC_CD_R) || (drv & CDC_CD_RW)) - typeName = "cdwriter"; - else if(drv & CDC_DVD) - typeName = "dvd"; - else - typeName = "cdrom"; - } - - ::close(device); - } - } - if( !typeName.isNull() ) - return typeName; - -#elif defined(__FreeBSD__) - if (-1!=mp->mountedFrom().indexOf("/acd",0,Qt::CaseInsensitive)) typeName="cdrom"; - else if (-1!=mp->mountedFrom().indexOf("/scd",0,Qt::CaseInsensitive)) typeName="cdrom"; - else if (-1!=mp->mountedFrom().indexOf("/ad",0,Qt::CaseInsensitive)) typeName="hdd"; - else if (-1!=mp->mountedFrom().indexOf("/da",0,Qt::CaseInsensitive)) typeName="hdd"; - else if (-1!=mp->mountedFrom().indexOf("/afd",0,Qt::CaseInsensitive)) typeName="zip"; + if( !label.isEmpty() ) + name += label + " "; else -#endif - - /* Guessing of cdrom and cd recorder devices */ - if (-1!=mp->mountPoint().indexOf("cdrom",0,Qt::CaseInsensitive)) typeName="cdrom"; - else if (-1!=mp->mountedFrom().indexOf("cdrom",0,Qt::CaseInsensitive)) typeName="cdrom"; - else if (-1!=mp->mountPoint().indexOf("cdwriter",0,Qt::CaseInsensitive)) typeName="cdwriter"; - else if (-1!=mp->mountedFrom().indexOf("cdwriter",0,Qt::CaseInsensitive)) typeName="cdwriter"; - else if (-1!=mp->mountedFrom().indexOf("cdrw",0,Qt::CaseInsensitive)) typeName="cdwriter"; - else if (-1!=mp->mountPoint().indexOf("cdrw",0,Qt::CaseInsensitive)) typeName="cdwriter"; - else if (-1!=mp->mountedFrom().indexOf("cdrecorder",0,Qt::CaseInsensitive)) typeName="cdwriter"; - else if (-1!=mp->mountPoint().indexOf("cdrecorder",0,Qt::CaseInsensitive)) typeName="cdwriter"; - else if (-1!=mp->mountedFrom().indexOf("dvdrecorder",0,Qt::CaseInsensitive)) typeName="dvdwriter"; - else if (-1!=mp->mountPoint().indexOf("dvdrecorder",0,Qt::CaseInsensitive)) typeName="dvdwriter"; - else if (-1!=mp->mountPoint().indexOf("dvdwriter",0,Qt::CaseInsensitive)) typeName="dvdwriter"; - else if (-1!=mp->mountedFrom().indexOf("dvdwriter",0,Qt::CaseInsensitive)) typeName="dvdwriter"; - else if (-1!=mp->mountPoint().indexOf("dvd",0,Qt::CaseInsensitive)) typeName="dvd"; - else if (-1!=mp->mountedFrom().indexOf("dvd",0,Qt::CaseInsensitive)) typeName="dvd"; - else if (-1!=mp->mountedFrom().indexOf("/dev/scd",0,Qt::CaseInsensitive)) typeName="cdrom"; - else if (-1!=mp->mountedFrom().indexOf("/dev/sr",0,Qt::CaseInsensitive)) typeName="cdrom"; + name += type + " "; - /* Guessing of floppy types */ - else if (-1!=mp->mountedFrom().indexOf("fd",0,Qt::CaseInsensitive)) { - if (-1!=mp->mountedFrom().indexOf("360",0,Qt::CaseInsensitive)) typeName="floppy5"; - if (-1!=mp->mountedFrom().indexOf("1200",0,Qt::CaseInsensitive)) typeName="floppy5"; - else typeName="floppy"; - } - else if (-1!=mp->mountPoint().indexOf("floppy",0,Qt::CaseInsensitive)) typeName="floppy"; + if( !fstype.isEmpty() ) + name += "(" + fstype + ") "; + if( !path.isEmpty() ) + name += "[" + path + "] "; - else if (-1!=mp->mountPoint().indexOf("zip",0,Qt::CaseInsensitive)) typeName="zip"; - else if (-1!=mp->mountType().indexOf("nfs",0,Qt::CaseInsensitive)) typeName="nfs"; - else if (-1!=mp->mountType().indexOf("smb",0,Qt::CaseInsensitive)) typeName="smb"; - else if (-1!=mp->mountedFrom().indexOf("//",0,Qt::CaseInsensitive)) typeName="smb"; - else typeName="hdd"; + name = name.trimmed(); - return typeName; + QStringList overlays; + if ( mounted ) { + overlays << "emblem-mounted"; + } else { + overlays << QString(); // We have to guarantee the placement of the next emblem + } + if (vol && vol->usage()==Solid::StorageVolume::Encrypted) { + overlays << "security-high"; + } + kicon = KIcon(icon, 0, overlays); + return true; } void MediaButton::slotPopupActivated( QAction * action ) { - if( action && action->data().canConvert<int>() ) + if( action && action->data().canConvert<QString>() ) { - int elem = action->data().toInt(); - if( !quasiMounted[ elem ] && iconNames[ elem ].endsWith( "_unmounted" ) ) { - mount( elem ); - waitingForMount = elem; - maxMountWait = 20; - newTabAfterMount = false; - mountCheckerTimer.setSingleShot( true ); - mountCheckerTimer.start( 1000 ); - return; - } - emit openUrl( urls[ elem ] ); - } -} - -void MediaButton::gettingSpaceData(const QString &mountPoint, quint64 kBSize, quint64, quint64 ) { - KUrl mediaURL = KUrl( mountPoint ); - - KIO::filesize_t size = kBSize; - size *= 1024; - QString sizeText = KIO::convertSize( size ); - - for( int i=0; i != urls.size(); i++ ) { - if( mediaURL.equals( urls[ i ], KUrl::CompareWithoutTrailingSlash ) ) { - if( kBSize == 0 ) { // if df gives 0, it means the device is quasy umounted - QString iconName = iconNames[ i ]; - if( iconNames[ i ].endsWith( "_mounted" ) ) { - quasiMounted[ i ] = true; - iconNames[ i ] = iconNames[ i ].replace( "_mounted", "_unmounted" ); + QString id = action->data().toString(); + if( id.startsWith( "remote:" ) ) + { + QString mountPoint = id.mid( 7 ); + + bool mounted = false; + KMountPoint::List currentMountList = KMountPoint::currentMountPoints(); + for (KMountPoint::List::iterator it = currentMountList.begin(); it != currentMountList.end(); ++it) { + if(( (*it)->mountType() == "nfs" || (*it)->mountType() == "smb" ) && + (*it)->mountPoint() == mountPoint ) { + mounted = true; + break; } - - KMimeType::Ptr mt = KMimeType::mimeType( iconNames[ i ] ); - QPixmap pixmap; - if( mt ) - pixmap = FL_LOADICON( mt->iconName() ); - - idActionMap[ i ]->setIcon( pixmap ); } - else if( iconNames[ i ].contains( "hdd_" ) ) - idActionMap[ i ]->setText( sizeText + " " + idActionMap[ i ]->text().trimmed() ); + + if( !mounted ) + mount( id, true, false ); + else + emit openUrl( KUrl( mountPoint ) ); return; } + Solid::Device device( id ); + + Solid::StorageAccess *access = device.as<Solid::StorageAccess>(); + if( access && !access->isAccessible() ) { + mount( id, true ); + return; + } + + if( access && !access->filePath().isEmpty() ) + emit openUrl( KUrl( access->filePath() ) ); } } @@ -417,102 +266,6 @@ } } -void MediaButton::addMountPoint( KMountPoint * mp, bool isMounted ) { - QString mountString = isMounted ? "_mounted" : "_unmounted"; - if( mp->mountPoint() == "/dev/swap" || - mp->mountPoint() == "/dev/pts" || - mp->mountPoint().startsWith( "/sys/kernel" ) || - mp->mountPoint().indexOf( "/proc" ) == 0 ) - return; - if( mp->mountType() == "swap" || - mp->mountType() == "sysfs" || - mp->mountType() == "tmpfs" || - mp->mountType() == "kernfs" || - mp->mountType() == "usbfs" || - mp->mountType() == "unknown" || - mp->mountType() == "none" || - mp->mountType() == "sunrpc" ) - return; - if( mp->mountedFrom() == "none" || - mp->mountedFrom() == "tmpfs" || - mp->mountedFrom().indexOf( "shm" ) != -1 ) - return; - - int overwrite = -1; - KUrl mountURL = KUrl( mp->mountPoint() ); - - for( int i=0; i != urls.size(); i++ ) - if( urls[ i ].equals( mountURL, KUrl::CompareWithoutTrailingSlash ) ) { - overwrite = i; - break; - } - - QString name; - QString type = detectType( mp ); - - /* WORKAROUND CODE START */ - /* add spaces to avoid widget resize in gettingSpaceData, - which is buggy in QT when transparency is set */ - QString extSpc = ( isMounted && type == "hdd" ) ? extraSpaces : ""; - /* WORKAROUND CODE END */ - - QString iconBase = "kr_"; - QString iconName = iconBase + type + mountString; - - if( type == "hdd" ) - name = i18n( "Hard Disk" ) ; - else if( type == "cdrom" ) - name = i18n( "CD-ROM" ); - else if( type == "cdwriter" ) - name = i18n( "CD Recorder" ); - else if( type == "dvdwriter" ) { - iconName = iconBase + "cdwriter" + mountString; - name = i18n( "DVD Recorder" ); - } - else if( type == "dvd" ) - name = i18n( "DVD" ); - else if( type == "smb" ) { - iconName = iconBase + "nfs" + mountString; - name = i18n( "Remote Share" ); - } - else if( type == "nfs" ) - name = i18n( "Remote Share" ); - else if( type == "floppy" ) - name = i18n( "Floppy" ); - else if( type == "floppy5" ) - name = i18n( "Floppy" ); - else if( type == "zip" ) - name = i18n( "Zip Disk" ); - else { - iconName = iconBase + "hdd" + mountString; - name = i18n( "Unknown" ); - } - - if( isMounted ) { - KDiskFreeSpace *sp = KDiskFreeSpace::findUsageInfo( mp->mountPoint() ); - connect( sp, SIGNAL( foundMountPoint( const QString &, quint64, quint64, quint64 ) ), - this, SLOT( gettingSpaceData( const QString&, quint64, quint64, quint64 ) ) ); - } - - QPixmap pixmap = FL_LOADICON( iconName ); - - if( overwrite == -1 ) { - int index = popupMenu->actions().count(); - urls.append( KUrl( mp->mountPoint() ) ); - iconNames.append( iconName ); - mediaUrls.append( KUrl() ); - quasiMounted.append( false ); - QAction * act = popupMenu->addAction( pixmap, name + " [" + mp->mountPoint() + "]" + extSpc ); - act->setData( QVariant( index ) ); - idActionMap[ index ] = act; - } - else { - iconNames[ overwrite ] = iconName; - idActionMap[ overwrite ]->setIcon( pixmap ); - idActionMap[ overwrite ]->setText( name + " [" + mp->mountPoint() + "]" + extSpc ); - } -} - bool MediaButton::eventFilter( QObject *o, QEvent *e ) { if( o == popupMenu ) { if( e->type() == QEvent::MouseButtonPress || e->type() == QEvent::MouseButtonRelease ) { @@ -520,10 +273,10 @@ if( m->button() == Qt::RightButton ) { if( e->type() == QEvent::MouseButtonPress ) { QAction * act = popupMenu->actionAt( m->pos() ); - int id = -1; - if( act && act->data().canConvert<int>() ) - id = act->data().toInt(); - if( id != -1 ) + QString id; + if( act && act->data().canConvert<QString>() ) + id = act->data().toString(); + if( !id.isEmpty() ) rightClickMenu( id ); } m->accept(); @@ -534,14 +287,40 @@ return false; } -void MediaButton::rightClickMenu( int index ) { +void MediaButton::rightClickMenu( QString udi ) { if( rightMenu ) rightMenu->close(); - QString iconName = iconNames[ index ]; - bool ejectable = iconName.contains( "dvd_" ) || iconName.contains( "dvdwriter_" ) || iconName.contains( "cdrom_" ) || iconName.contains( "cdwriter_" ); - bool mounted = iconName.contains( "_mounted" ); + bool network = udi.startsWith( "remote:" ); + bool ejectable = false; + bool mounted = false; + KUrl openURL; + if( network ) + { + QString mountPoint = udi.mid( 7 ); + openURL = KUrl( mountPoint ); + KMountPoint::List currentMountList = KMountPoint::currentMountPoints(); + for (KMountPoint::List::iterator it = currentMountList.begin(); it != currentMountList.end(); ++it) { + if(( (*it)->mountType() == "nfs" || (*it)->mountType() == "smb" ) && + (*it)->mountPoint() == mountPoint ) { + mounted = true; + break; + } + } + } else { + Solid::Device device( udi ); + + Solid::StorageAccess *access = device.as<Solid::StorageAccess>(); + Solid::OpticalDisc *optdisc = device.as<Solid::OpticalDisc>(); + if( access ) + openURL = KUrl( access->filePath() ); + if( access && access->isAccessible() ) + mounted = true; + if( optdisc ) + ejectable = true; + } + QMenu * myMenu = rightMenu = new QMenu( popupMenu ); QAction * actOpen = myMenu->addAction( i18n( "Open" ) ); actOpen->setData( QVariant( 1 ) ); @@ -577,144 +356,226 @@ case 1: case 2: popupMenu->close(); - if( mounted || quasiMounted[ index ] ) { + if( mounted ) { if( result == 1 ) - emit openUrl( urls[ index ] ); + emit openUrl( openURL ); else - SLOTS->newTab( urls[ index ] ); + SLOTS->newTab( openURL ); } else { - mount( index ); // mount first, when mounted open the tab - waitingForMount = index; - maxMountWait = 20; - newTabAfterMount = ( result == 2 ); - mountCheckerTimer.setSingleShot( true ); - mountCheckerTimer.start( 1000 ); + mount( udi, true, result == 2 ); // mount first, when mounted open the tab } break; case 3: - mount( index ); + mount( udi ); break; case 4: - umount( index ); + umount( udi ); break; case 5: - eject( index ); + eject( udi ); break; default: break; } } -bool MediaButton::mount( int index ) { - if ( index < iconNames.count() ) { - if( !mediaUrls[ index ].isEmpty() ) { - KProcess proc; - proc << KrServices::fullPathName( "kio_media_mounthelper" ) << "-m" << mediaUrls[ index ].url(); - proc.startDetached(); - } else { - krMtMan.mount( urls[ index ].path(), false ); - } +void MediaButton::mount( QString udi, bool open, bool newtab ) { + if( udi.startsWith( "remote:" ) ) { + QString mp = udi.mid( 7 ); + krMtMan.mount( mp, true ); + if( newtab ) + SLOTS->newTab( KUrl( mp ) ); + else + emit openUrl( KUrl( mp ) ); + return; } - return false; + Solid::Device device( udi ); + Solid::StorageAccess *access = device.as<Solid::StorageAccess>(); + if( access && !access->isAccessible() ) { + if( open ) + udiToOpen = device.udi(), openInNewTab = newtab; + connect( access, SIGNAL( setupDone(Solid::ErrorType, QVariant, const QString &) ), + this, SLOT( slotSetupDone(Solid::ErrorType, QVariant, const QString &) ) ); + access->setup(); + } } -bool MediaButton::umount( int index ) { - if ( index < iconNames.count() ) { - if( !mediaUrls[ index ].isEmpty() ) { - KProcess proc; - proc << KrServices::fullPathName( "kio_media_mounthelper" ) << "-u" << mediaUrls[ index ].url(); - proc.startDetached(); +void MediaButton::slotSetupDone(Solid::ErrorType error, QVariant errorData, const QString &udi) { + if ( error == Solid::NoError ) { + if( udi == udiToOpen ) { + Solid::StorageAccess *access = Solid::Device( udi ).as<Solid::StorageAccess>(); + if( access && access->isAccessible() ) { + if( openInNewTab ) + SLOTS->newTab( KUrl( access->filePath() ) ); + else + emit openUrl( KUrl( access->filePath() ) ); + } + udiToOpen = QString(), openInNewTab = false; + } + } else { + if( udi == udiToOpen ) + udiToOpen = QString(), openInNewTab = false; + QString name; + if( udiNameMap.contains( udi ) ) + name = udiNameMap[ udi ]; + + if (errorData.isValid()) { + KMessageBox::sorry( this, i18n("An error occurred while accessing '%1', the system responded: %2", + name, errorData.toString())); } else { - krMtMan.unmount( urls[ index ].path(), false ); + KMessageBox::sorry( this, i18n("An error occurred while accessing '%1'", + name)); } } - return false; } -bool MediaButton::eject( int index ) { - if ( index < iconNames.count() ) { - if( !mediaUrls[ index ].isEmpty() ) { - KProcess proc; - proc << KrServices::fullPathName( "kio_media_mounthelper" ) << "-e" << mediaUrls[ index ].url(); - proc.startDetached(); - } else { - krMtMan.eject( urls[ index ].path() ); +void MediaButton::umount( QString udi ) { + if( udi.startsWith( "remote:" ) ) { + krMtMan.unmount( udi.mid( 7 ), false ); + return; + } + Solid::Device device( udi ); + Solid::StorageAccess *access = device.as<Solid::StorageAccess>(); + if( access && access->isAccessible() ) { + connect( access, SIGNAL( teardownDone(Solid::ErrorType, QVariant, const QString &) ), + this, SLOT( slotTeardownDone(Solid::ErrorType, QVariant, const QString &) ) ); + access->teardown(); + } +} + +void MediaButton::slotTeardownDone(Solid::ErrorType error, QVariant errorData, const QString &udi) { + if (error != Solid::NoError && errorData.isValid()) { + KMessageBox::sorry( this, errorData.toString()); + } +} + +void MediaButton::eject( QString udi ) { + Solid::Device device( udi ); + Solid::OpticalDrive *drive = device.parent().as<Solid::OpticalDrive>(); + + if (drive!=0) { + connect(drive, SIGNAL(ejectDone(Solid::ErrorType, QVariant, const QString &)), + this, SLOT(slotTeardownDone(Solid::ErrorType, QVariant, const QString &))); + + drive->eject(); + } +} + +void MediaButton::slotAccessibilityChanged(bool accessible, const QString & udi) { + QList<QAction *> actionList = popupMenu->actions(); + foreach( QAction * act, actionList ) { + if( act && act->data().canConvert<QString>() && act->data().toString() == udi ) { + Solid::Device device(udi); + + QString name; + KIcon kdeIcon; + if( getNameAndIcon( device, name, kdeIcon ) ) { + act->setText( name ); + act->setIcon( kdeIcon ); + } + break; } } - return false; } -void MediaButton::slotTimeout() { - if( isHidden() && ( waitingForMount < 0 ) ) +void MediaButton::slotDeviceAdded(const QString& udi) { + if( popupMenu->isHidden() ) return; - KMountPoint::List mountList = KMountPoint::currentMountPoints(); + Solid::Device device( udi ); + Solid::StorageAccess *access = device.as<Solid::StorageAccess>(); + if( access == 0 ) + return; - for( int index = 0; index < urls.count(); index++ ) { - bool mounted = false; + QString name; + KIcon kdeIcon; + if( !getNameAndIcon( device, name, kdeIcon ) ) + return; - QString text = idActionMap[ index ]->text(); + QAction * act = popupMenu->addAction( kdeIcon, name ); + act->setData( QVariant( udi ) ); + udiNameMap[ udi ] = name; - if( mediaUrls[ index ].isEmpty() ) { - for (KMountPoint::List::iterator it = mountList.begin(); it != mountList.end(); ++it) - if( (*it)->mountPoint() == urls[ index ].path() ) { - mounted = true;; + connect(device.as<Solid::StorageAccess>(), SIGNAL(accessibilityChanged(bool, const QString &)), + this, SLOT(slotAccessibilityChanged(bool, const QString &))); +} + +void MediaButton::slotDeviceRemoved(const QString& udi) { + if( popupMenu->isHidden() ) + return; + + QList<QAction *> actionList = popupMenu->actions(); + foreach( QAction * act, actionList ) { + if( act && act->data().canConvert<QString>() && act->data().toString() == udi ) { + popupMenu->removeAction( act ); + delete act; + break; + } + } +} + +void MediaButton::slotTimeout() { + if( isHidden() ) + return; + + KMountPoint::List possibleMountList = KMountPoint::possibleMountPoints(); + KMountPoint::List currentMountList = KMountPoint::currentMountPoints(); + QList<QAction *> actionList = popupMenu->actions(); + + foreach( QAction * act, actionList ) { + if( act && act->data().canConvert<QString>() && act->data().toString().startsWith( "remote:" ) ) { + QString mountPoint = act->data().toString().mid( 7 ); + bool available = false; + + for (KMountPoint::List::iterator it = possibleMountList.begin(); it != possibleMountList.end(); ++it) { + if(( (*it)->mountType() == "nfs" || (*it)->mountType() == "smb" ) && + (*it)->mountPoint() == mountPoint ) { + available = true; break; } - } else { - KUrl uri = getLocalPath( mediaUrls[ index ], &mountList ); - if( uri.isLocalFile() ) { - urls[ index ] = uri; - mounted = true; - - if( !text.contains( uri.path() ) ) - { - if( text.endsWith( "]" ) ) - { - int ndx = text.lastIndexOf( " [" ); - if( ndx >0 ) - text.truncate( ndx ); - } - - text += " [" + uri.path() + "]"; - } } - else - { - if( text.endsWith( "]" ) ) - { - int ndx = text.lastIndexOf( " [" ); - if( ndx >0 ) - text.truncate( ndx ); - } + + if( !available ) { + popupMenu->removeAction( act ); + delete act; } } - - if( quasiMounted[ index ] ) // mounted but not listed with DF - mounted = false; - - if( iconNames[ index ].contains( "_mounted" ) && !mounted ) - iconNames[ index ] = iconNames[ index ].replace( "_mounted", "_unmounted" ); - if( iconNames[ index ].contains( "_unmounted" ) && mounted ) - iconNames[ index ] = iconNames[ index ].replace( "_unmounted", "_mounted" ); - - QPixmap pixmap = FL_LOADICON( iconNames[ index ] ); - idActionMap[ index ]->setIcon( pixmap ); - idActionMap[ index ]->setText( text ); - - if( ((int)index == waitingForMount) && mounted ) { - waitingForMount = -1; - if( newTabAfterMount ) - SLOTS->newTab( urls[ index ] ); - else - emit openUrl( urls[ index ] ); - } } - if( waitingForMount >= 0 ) { // maximum wait for mounting expired ? - if( --maxMountWait < 0 ) { - waitingForMount = -1; - return; + for (KMountPoint::List::iterator it = possibleMountList.begin(); it != possibleMountList.end(); ++it) { + if( (*it)->mountType() == "nfs" || (*it)->mountType() == "smb" ) { + QString path = (*it)->mountPoint(); + bool mounted = false; + QString udi = "remote:" + path; + + QAction * correspondingAct = 0; + foreach( QAction * act, actionList ) { + if(act && act->data().canConvert<QString>() && act->data().toString() == udi ) { + correspondingAct = act; + break; + } + } + for (KMountPoint::List::iterator it2 = currentMountList.begin(); it2 != currentMountList.end(); ++it2) { + if(( (*it2)->mountType() == "nfs" || (*it2)->mountType() == "smb" ) && + path == (*it2)->mountPoint() ) { + mounted = true; + break; + } + } + + QString name = i18n( "Remote Share" ) + " [" + (*it)->mountPoint() + "]"; + QStringList overlays; + if ( mounted ) + overlays << "emblem-mounted"; + KIcon kdeIcon("network-wired", 0, overlays); + + if( !correspondingAct ) { + QAction * act = popupMenu->addAction( kdeIcon, name ); + act->setData( QVariant( udi ) ); + } else { + correspondingAct->setText( name ); + correspondingAct->setIcon( kdeIcon ); + } } } @@ -722,5 +583,4 @@ mountCheckerTimer.start( 1000 ); } - #include "mediabutton.moc" Modified: trunk/krusader_kde4/krusader/GUI/mediabutton.h =================================================================== --- trunk/krusader_kde4/krusader/GUI/mediabutton.h 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/krusader/GUI/mediabutton.h 2008-08-20 20:10:18 UTC (rev 6066) @@ -36,11 +36,11 @@ #include <QEvent> #include <QMenu> #include <kurl.h> -#include <kio/jobclasses.h> #include <qlist.h> -#include <kmountpoint.h> -#include <qtimer.h> #include <qmap.h> +#include <solid/device.h> +#include <solid/solidnamespace.h> +#include <qtimer.h> /** *@author Csaba Karai @@ -48,6 +48,7 @@ class QMenu; class KMountPoint; +class KIcon; class MediaButton : public QToolButton { Q_OBJECT @@ -55,17 +56,15 @@ MediaButton(QWidget *parent=0); ~MediaButton(); - QString detectType( KMountPoint *mp ); - public slots: void slotAboutToShow(); void slotAboutToHide(); - void slotTimeout(); void slotPopupActivated( QAction * ); - void gettingSpaceData(const QString &mountPoint, quint64 kBSize, quint64 kBUsed, quint64 kBAvail); + void slotAccessibilityChanged(bool, const QString &); + void slotDeviceAdded(const QString&); + void slotDeviceRemoved(const QString&); void showMenu(); - void slotEntries( KIO::Job*, const KIO::UDSEntryList& ); - void slotListResult( KJob* ); + void slotTimeout(); signals: void openUrl(const KUrl&); @@ -73,40 +72,30 @@ protected: bool eventFilter( QObject *o, QEvent *e ); + bool getNameAndIcon( Solid::Device &, QString &, KIcon &); private: - void createListWithMedia(); - void createListWithoutMedia(); + void createMediaList(); - KUrl getLocalPath( const KUrl &, KMountPoint::List * list = 0 ); - bool mount( int ); - bool umount( int ); - bool eject( int ); + QList<Solid::Device> storageDevices; - void rightClickMenu( int ); + void mount( QString, bool open=false, bool newtab = false ); + void umount( QString ); + void eject( QString ); - void addMountPoint( KMountPoint *mp, bool isMounted ); + void rightClickMenu( QString ); - QMenu *popupMenu; - QMenu *rightMenu; +private slots: + void slotSetupDone(Solid::ErrorType error, QVariant errorData, const QString &udi); + void slotTeardownDone(Solid::ErrorType error, QVariant errorData, const QString &udi); - bool hasMedia; - bool busy; - - int waitingForMount; - bool newTabAfterMount; - int maxMountWait; - - QList<KUrl> urls; - QList<KUrl> mediaUrls; - QList<QString> iconNames; - QList<bool> quasiMounted; - - QString extraSpaces; //prevents from increasing the size of the widget - +private: + QMenu *popupMenu; + QMenu *rightMenu; + QString udiToOpen; + bool openInNewTab; + QMap<QString, QString> udiNameMap; QTimer mountCheckerTimer; - - QMap<int,QAction *> idActionMap; }; #endif /* MEDIABUTTON_H */ Modified: trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp 2008-08-20 20:10:18 UTC (rev 6066) @@ -48,23 +48,13 @@ QGroupBox *generalGrp = createFrame( i18n( "General" ), this ); QGridLayout *generalGrid = createGridLayout( generalGrp ); - bool dontUseMedia = false; - - bool isMediaProtocolPresent = KProtocolInfo::isKnownProtocol( QString( "media" ) ); - if( !isMediaProtocolPresent ) - dontUseMedia = true; - KONFIGURATOR_CHECKBOX_PARAM generalSettings[] = // cfg_class cfg_name default text restart tooltip {{"Advanced","PreserveAttributes", _PreserveAttributes, i18n( "Preserve attributes for local copy/move (slower)" ), false, i18n( "Krusader will try to preserve all attributes (time, owner, group) of the local files according to the source depending on your permissions:<ul><li>User preserving if you are root</li><li>Group preserving if you are root or member of the group</li><li>Preserving the timestamp</li></ul><b>Note</b>: This can slow down the copy process." ) }, - {"Advanced","AutoMount", _AutoMount, i18n( "Automount filesystems" ), false, i18n( "When stepping into a directory which is defined as a mount point in the <b>fstab</b>, try mounting it with the defined parameters." )}, - {"Advanced","DontUseMediaProt", dontUseMedia, i18n( "Don't use KDE's media protocol for media button (if it's buggy or missing)" ), false, i18n( "Select if your media protocol is buggy (in some older KDE versions), or not present (no kdebase package installed)." )}}; + {"Advanced","AutoMount", _AutoMount, i18n( "Automount filesystems" ), false, i18n( "When stepping into a directory which is defined as a mount point in the <b>fstab</b>, try mounting it with the defined parameters." )} }; - KonfiguratorCheckBoxGroup *generals = createCheckBoxGroup( 1, 0, generalSettings, 3, generalGrp ); + KonfiguratorCheckBoxGroup *generals = createCheckBoxGroup( 1, 0, generalSettings, 2, generalGrp ); - if( !isMediaProtocolPresent ) - generals->find( "DontUseMediaProt" )->setEnabled( false ); - generalGrid->addWidget( generals, 1, 0 ); addLabel( generalGrid, 2, 0, i18n( "MountMan won't (un)mount the following mount-points:" ), Modified: trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp 2008-08-20 20:10:18 UTC (rev 6066) @@ -204,6 +204,22 @@ colorsGrid->addWidget(createSpacer(colorsGrp), itemList.count() - offset, 1); + colorsGrp = new QWidget( colorTabWidget ); + colorTabWidget->addTab( colorsGrp, i18n( "Other" ) ); + + colorsGrid = new QGridLayout( colorsGrp ); + colorsGrid->setSpacing( 0 ); + colorsGrid->setContentsMargins( 2, 2, 2, 2 ); + + offset = endOfPanelColors = itemList.count(); + + addColorSelector( "Quicksearch Match Foreground", i18n( "Quicksearch, match foreground:" ), Qt::black, QString(), &KDEDefaultFore, 1 ); + addColorSelector( "Quicksearch Match Background", i18n( "Quicksearch, non-match background:" ), QColor( 192, 255, 192 ), QString(), &KDEDefaultBase, 1 ); + addColorSelector( "Quicksearch Non-match Foreground", i18n( "Quicksearch, non-match foreground:" ), Qt::black, QString(), &KDEDefaultFore, 1 ); + addColorSelector( "Quicksearch Non-match Background", i18n( "Quicksearch, non-match background:" ), QColor(255,192,192), QString(), &KDEDefaultBase, 1 ); + + colorsGrid->addWidget(createSpacer(colorsGrp), itemList.count() - offset, 1); + colorsFrameGrid->addWidget( colorTabWidget, 0, 0 ); hbox->addWidget( colorsFrameGrp ); @@ -502,6 +518,14 @@ getColorSelector( "Synchronizer RightCopy Background" )->getColor() ); pwDelete->setColor( getColorSelector( "Synchronizer Delete Foreground" )->getColor(), getColorSelector( "Synchronizer Delete Background" )->getColor() ); + }else if( currentPage == 3 ) + { + PreviewItem *pwNonMatch = new PreviewItem( preview, i18n( "Quicksearch non-match" ) ); + PreviewItem *pwMatch = new PreviewItem( preview, i18n( "Quicksearch match" ) ); + pwMatch->setColor ( getColorSelector( "Quicksearch Match Foreground" )->getColor(), + getColorSelector( "Quicksearch Match Background" )->getColor() ); + pwNonMatch->setColor ( getColorSelector( "Quicksearch Non-match Foreground" )->getColor(), + getColorSelector( "Quicksearch Non-match Background" )->getColor() ); } } @@ -588,6 +612,10 @@ serializeItem(stream, "Synchronizer RightCopy Background"); serializeItem(stream, "Synchronizer Delete Foreground"); serializeItem(stream, "Synchronizer Delete Background"); + serializeItem(stream, "Quicksearch Match Foreground"); + serializeItem(stream, "Quicksearch Match Background"); + serializeItem(stream, "Quicksearch Non-match Foreground" ); + serializeItem(stream, "Quicksearch Non-match Background" ); stream << QString("") << QString(""); } @@ -629,7 +657,7 @@ { stream << QString(name); if( strcmp( name, "KDE Default" ) == 0 || strcmp( name, "Enable Alternate Background" ) == 0 || - strcmp( name, "Show Current Item Always" ) == 0 || strcmp( name, "Dim Inactive Colors" ) ) + strcmp( name, "Show Current Item Always" ) == 0 || strcmp( name, "Dim Inactive Colors" ) == 0 ) { bool bValue = generals->find( name )->isChecked(); stream << QString( bValue ? "true" : "false" ); Modified: trunk/krusader_kde4/krusader/Panel/krbriefview.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/krbriefview.cpp 2008-08-14 17:49:47 UTC (rev 6065) +++ trunk/krusader_kde4/krusader/Panel/krbriefview.cpp 2008-08-20 20:10:18 UTC (rev 6066) @@ -129,16 +129,6 @@ header->installEventFilter( this ); header->show(); - - // connect quicksearch - connect( op(), SIGNAL( quickSearch( const QString& ) ), - this, SLOT( quickSearch( const QString& ) ) ); - connect( op(), SIGNAL( quickSearch( const QString& , int ) ), - this, SLOT( quickSearch( const QString& , int ) ) ); - connect( op(), SIGNAL( stopQuickSearch( QKeyEvent* ) ), - this, SLOT( stopQuickSearch( QKeyEvent* ) ) ); - connect( op(), SIGNAL( handleQuickSearchEvent( QKeyEvent* ) ), - this, SLOT( handleQuickSearchEvent( QKeyEvent* ) ) ); } KrBriefView::~KrBriefView() { @@ -363,18 +353,6 @@ void KrBriefView::prepareForPassive() { KrView::prepareForPassive(); CANCEL_TWO_CLICK_RENAME; - KConfigGroup grpSvr( _config, "Look&Feel" ); - if ( grpSvr.readEntry( "New Style Quicksearch", _NewStyleQuicksearch ) ) { - if ( MAIN_VIEW ) { - if ( ACTIVE_PANEL ) { - if ( ACTIVE_PANEL->quickSearch ) { - if ( ACTIVE_PANEL->quickSearch->isShown() ) { - stopQuickSearch( 0 ); - } - } - } - } - } } void KrBriefView::slotItemDescription( Q3IconViewItem * item ) { @@ -385,34 +363,7 @@ op()->emitItemDescription(desc); } -void KrBriefView::handleQuickSearchEvent( QKeyEvent * e ) { - switch ( e->key() ) { - case Qt::Key_Insert: - { - QKeyEvent ev = QKeyEvent( QKeyEvent::KeyPress, Qt::Key_Space, 0, 0 ); - K3IconView::keyPressEvent( & ev ); - ev = QKeyEvent( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0 ); - keyPressEvent( & ev ); - break; - } - case Qt::Key_Home: - { - Q3IconView::setCurrentItem( firstItem() ); - QKeyEvent ev = QKeyEvent( QKeyEvent::KeyPress, Qt::Key_Down, 0, 0 ); - keyPressEvent( & ev ); - break; - } - case Qt::Key_End: - { - Q3IconView::setCurrentItem( firstItem() ); - QKeyEvent ev = QKeyEvent( QKeyEvent::KeyPress, Qt::Key_Up, 0, 0 ); - keyPressEvent( & ev ); - break; - } - } -} - void KrBriefView::slotCurrentChanged( Q3IconViewItem * item ) { CANCEL_TWO_CLICK_RENAME; if ( !item ) @@ -529,7 +480,7 @@ if ( ACTIVE_PANEL ) { if ( ACTIVE_PANEL->quickSearch ) { if ( ACTIVE_PANEL->quickSearch->isShown() ) { - stopQuickSearch( 0 ); + op()->stopQuickSearch( 0 ); } } } @@ -776,159 +727,25 @@ // TODO: the following 3 functions should somehow fit into this one. Csaba, did you implement this one? } -#if 0 -void KrBriefView::imStartEvent(QIMEvent* e) -{ - if ( ACTIVE_PANEL->quickSearch->isShown() ) { - ACTIVE_PANEL->quickSearch->myIMStartEvent( e ); - return ; - }else { - KConfigGroup grpSvr( _config, "Look&Feel" ); - if ( !grpSvr.readEntry( "New Style Quicksearch", _NewStyleQuicksearch ) ) - K3IconView::imStartEvent( e ); - else { - // first, show the quicksearch if its hidden - if ( ACTIVE_PANEL->quickSearch->isHidden() ) { - ACTIVE_PANEL->quickSearch->show(); - // hack: if the pressed key requires a scroll down, the selected - // item is "below" the quick search window, as the icon view will - // realize its new size after the key processing. The following line - // will resize the icon view immediately. - ACTIVE_PANEL->layout->activate(); - // second, we need to disable the dirup action - hack! - krDirUp->setEnabled( false ); - } - // now, send the key to the quicksearch - ACTIVE_PANEL->quickSearch->myIMStartEvent( e ); - } - } -} +int KrBriefView::itemsPerPage() { + Q3IconViewItem * item = firstItem(); + if( item == 0 ) + return 0; -void KrBriefView::imEndEvent(QIMEvent* e) -{ - if ( ACTIVE_PANEL->quickSearch->isShown() ) { - ACTIVE_PANEL->quickSearch->myIMEndEvent( e ); - return ; - } -} + QRect r( item->rect() ); + if( r.height() == 0 ) + return 0; -void KrBriefView::imComposeEvent(QIMEvent* e) -{ - if ( ACTIVE_PANEL->quickSearch->isShown() ) { - ACTIVE_PANEL->quickSearch->myIMComposeEvent( e ); - return ; - } + return visibleHeight() / r.height(); } -#endif void KrBriefView::keyPressEvent( QKeyEvent * e ) { if ( !e || !firstItem() ) return ; // subclass bug - if ( ACTIVE_PANEL->quickSearch->isShown() ) { - ACTIVE_PANEL->quickSearch->myKeyPressEvent( e ); - return ; - } + if(( e->key() != Qt::Key_Left && e->key() != Qt::Key_Right ) && + ( handleKeyEvent( e ) ) ) // did the view class handled the event? + return; switch ( e->key() ) { - case Qt::Key_Up : - if ( e->modifiers() == Qt::ControlModifier ) { // let the panel handle it - jump to the Location Bar - e->ignore(); - break; - } else if (!KrSelectionMode::getSelectionHandler()->useQTSelection()) { - Q3IconViewItem * i = currentItem(); - if ( !i ) break; - if ( e->modifiers() == Qt::ShiftModifier ) setSelected( i, !i->isSelected(), true ); - i = i->prevItem(); - if ( i ) { - Q3IconView::setCurrentItem( i ); - Q3IconView::ensureItemVisible( i ); - } - } else K3IconView::keyPressEvent(e); - break; - case Qt::Key_Down : - if ( e->modifiers() == Qt::ControlModifier || e->modifiers() == ( Qt::ControlModifier | Qt::ShiftModifier ) ) { // let the panel handle it - jump to command line - e->ignore(); - break; - } else if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){ - Q3IconViewItem * i = currentItem(); - if ( !i ) break; - if ( e->modifiers() == Qt::ShiftModifier ) setSelected( i, !i->isSelected(), true ); - i = i->nextItem(); - if ( i ) {Q3IconView::setCurrentItem( i ); Q3IconView::ensureItemVisible( i ); } - } else K3IconView::keyPressEvent(e); - break; - case Qt::Key_Next: if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){ - Q3IconViewItem * i = currentItem(), *j; - if ( !i ) break; - QRect r( i->rect() ); - if ( !r.height() ) break; - for ( int page = visibleHeight() / r.height() - 1; page > 0 && ( j = i->nextItem() ); --page ) - i = j; - if ( i ) {Q3IconView::setCurrentItem( i ); Q3IconView::ensureItemVisible( i ); } - } else K3IconView::keyPressEvent(e); - break; - case Qt::Key_Prior: if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){ - Q3IconViewItem * i = currentItem(), *j; - if ( !i ) break; - QRect r( i->rect() ); - if ( !r.height() ) break; - for ( int page = visibleHeight() / r.height() - 1; page > 0 && ( j = i->prevItem() ); --page ) - i = j; - if ( i ) {Q3IconView::setCurrentItem( i ); Q3IconView::ensureItemVisible( i ); } - } else K3IconView::keyPressEvent(e); - break; - case Qt::Key_Home: if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){ - if ( e->modifiers() & Qt::ShiftModifier ) /* Shift+Home */ - { - clearSelection(); - K3IconView::keyPressEvent( e ); - op()->emitSelectionChanged(); - arrangeItemsInGrid(); - break; - } else { - Q3IconViewItem * i = firstItem(); - if ( i ) {Q3IconView::setCurrentItem( i ); Q3IconView::ensureItemVisible( i ); } - } - } else K3IconView::keyPressEvent(e); - break; - case Qt::Key_End: if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){ - if ( e->modifiers() & Qt::ShiftModifier ) /* Shift+End */ - { - clearSelection(); - K3IconView::keyPressEvent( e ); - op()->emitSelectionChanged(); - arrangeItemsInGrid(); - break; - } else { - Q3IconViewItem *i = firstItem(), *j; - while ( ( j = i->nextItem() ) ) - i = j; - while ( ( j = i->nextItem() ) ) - i = j; - if ( i ) {Q3IconView::setCurrentItem( i ); Q3IconView::ensureItemVisible( i ); } - break; - } - } else K3IconView::keyPressEvent(e); - break; - case Qt::Key_Enter : - case Qt::Key_Return : { - if ( e->modifiers() & Qt::ControlModifier ) // let the panel handle it - e->ignore(); - else { - KrViewItem * i = getCurrentKrViewItem(); - QString tmp = i->name(); - op()->emitExecuted(tmp); - } - break; - } - case Qt::Key_QuoteLeft : // Terminal Emulator bugfix - if ( e->modifiers() == Qt::ControlModifier ) { // let the panel handle it - e->ignore(); - break; - } else { // a normal click - do a lynx-like moving thing - SLOTS->home(); // ask krusader to move up a directory - return ; // safety - } - break; case Qt::Key_Right : if ( e->modifiers() == Qt::ControlModifier ) { // let the panel handle it e->ignore(); @@ -971,14 +788,6 @@ } } else K3IconView::keyPressEvent(e); break; - case Qt::Key_Backspace : // Terminal Emulator bugfix - if ( e->modifiers() == Qt::ControlModifier || e->modifiers() == Qt::ShiftModifier ) { // let the panel handle it - e->ignore(); - break; - } else { // a normal click - do a lynx-like moving thing - SLOTS->dirUp(); // ask krusader to move up a directory - return ; // safety - } case Qt::Key_Left : if ( e->modifiers() == Qt::ControlModifier ) { // let the panel handle it e->ignore(); @@ -1020,108 +829,9 @@ } } else K3IconView::keyPressEvent(e); break; - - case Qt::Key_Delete : // kill file - SLOTS->deleteFiles( e->modifiers() == Qt::ShiftModifier || e->modifiers() == Qt::ControlModifier ); - - break ; - case Qt::Key_Insert : { - { - Q3IconViewItem *i = currentItem(); - if( !i ) - break; - - if (KrSelectionMode::getSelectionHandler()->insertMovesDown()) - { - setSelected( i, !i->isSelected(), true ); - if( i->nextItem() ) - { - Q3IconView::setCurrentItem( i->nextItem() ); - Q3IconView::ensureItemVisible( i->nextItem() ); - } - } - else - { - setSelected( i, !i->isSelected(), true ); - } - } - break ; - } - case Qt::Key_Space : { - { - Q3IconViewItem *i = currentItem(); - if( !i ) - break; - - if (KrSelectionMode::getSelectionHandler()->spaceMovesDown()) - { - setSelected( i, !i->isSelected(), true ); - if( i->nextItem() ) - { - Q3IconView::setCurrentItem( i->nextItem() ); - Q3IconView::ensureItemVisible( i->nextItem() ); - } - } - else - { - setSelected( i, !i->isSelected(), true ); - } - } - break ; - } - case Qt::Key_A : // mark all - if ( e->modifiers() == Qt::ControlModifier ) { - K3IconView::keyPressEvent( e ); - updateView(); - break; - } default: - if ( e->key() == Qt::Key_Escape ) { - Q3IconView::keyPressEvent( e ); return ; // otherwise the selection gets lost??!?? - } - // if the ke... [truncated message content] |
From: <ck...@us...> - 2008-08-20 21:33:05
|
Revision: 6067 http://krusader.svn.sourceforge.net/krusader/?rev=6067&view=rev Author: ckarai Date: 2008-08-20 21:33:13 +0000 (Wed, 20 Aug 2008) Log Message: ----------- FIXED: [ 1988893 ] konsole is started in a wrong directory Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/defaults.h trunk/krusader_kde4/krusader/krslots.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-20 20:10:18 UTC (rev 6066) +++ trunk/krusader_kde4/ChangeLog 2008-08-20 21:33:13 UTC (rev 6067) @@ -7,6 +7,9 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: [ 1988893 ] konsole is started in a wrong directory + please set "konsole --workdir %d" for the terminal (Konfigurator) + as Krusader won't fix your config automatically FIXED: KDE4 workaround: no colors for synchronizer FIXED: MediaButton doesn't notice unmounted pen drives+CD/DVD-s FIXED: "local network" bookmark didn't work Modified: trunk/krusader_kde4/krusader/defaults.h =================================================================== --- trunk/krusader_kde4/krusader/defaults.h 2008-08-20 20:10:18 UTC (rev 6066) +++ trunk/krusader_kde4/krusader/defaults.h 2008-08-20 21:33:13 UTC (rev 6067) @@ -126,7 +126,7 @@ // Move To Trash ////// #define _MoveToTrash false // Terminal /////////// -#define _Terminal "konsole --workdir ." +#define _Terminal "konsole --workdir %d" // Send CDs /////////// #define _SendCDs true // Editor ///////////// Modified: trunk/krusader_kde4/krusader/krslots.cpp =================================================================== --- trunk/krusader_kde4/krusader/krslots.cpp 2008-08-20 20:10:18 UTC (rev 6066) +++ trunk/krusader_kde4/krusader/krslots.cpp 2008-08-20 21:33:13 UTC (rev 6067) @@ -478,7 +478,11 @@ proc.setWorkingDirectory( dir ); KConfigGroup group( krConfig, "General"); QString term = group.readEntry("Terminal",_Terminal); - proc << KrServices::separateArgs( term ); + QStringList sepdArgs = KrServices::separateArgs( term ); + for( int i=0; i != sepdArgs.size(); i++ ) + if( sepdArgs[ i ] == "%d" ) + sepdArgs[ i ] = dir; + proc << sepdArgs; if( !args.isEmpty() ) { proc << "-e" << args; // FIXME this depends on term!! But works in konsole, xterm and gnome-terminal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-21 21:32:05
|
Revision: 6068 http://krusader.svn.sourceforge.net/krusader/?rev=6068&view=rev Author: ckarai Date: 2008-08-21 21:32:15 +0000 (Thu, 21 Aug 2008) Log Message: ----------- FIXED: [ 2062651 ] Ctrl+Up selects the URL in the origin editbox Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Panel/listpanel.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-20 21:33:13 UTC (rev 6067) +++ trunk/krusader_kde4/ChangeLog 2008-08-21 21:32:15 UTC (rev 6068) @@ -7,6 +7,7 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: [ 2062651 ] Ctrl+Up selects the URL in the origin editbox FIXED: [ 1988893 ] konsole is started in a wrong directory please set "konsole --workdir %d" for the terminal (Konfigurator) as Krusader won't fix your config automatically Modified: trunk/krusader_kde4/krusader/Panel/listpanel.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/listpanel.cpp 2008-08-20 21:33:13 UTC (rev 6067) +++ trunk/krusader_kde4/krusader/Panel/listpanel.cpp 2008-08-21 21:32:15 UTC (rev 6068) @@ -941,6 +941,7 @@ case Qt::Key_Up : if ( e->modifiers() == Qt::ControlModifier ) { // give the keyboard focus to the command line origin->lineEdit()->setFocus(); + origin->lineEdit()->selectAll(); return ; } else e->ignore(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-22 20:51:31
|
Revision: 6070 http://krusader.svn.sourceforge.net/krusader/?rev=6070&view=rev Author: ckarai Date: 2008-08-22 20:51:40 +0000 (Fri, 22 Aug 2008) Log Message: ----------- FIXED: [ 1845105 ] mimetype magic can be disabled again Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/VFS/vfile.cpp trunk/krusader_kde4/krusader/VFS/vfile.h trunk/krusader_kde4/krusader/krslots.cpp trunk/krusader_kde4/krusader/krusader.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-21 21:41:41 UTC (rev 6069) +++ trunk/krusader_kde4/ChangeLog 2008-08-22 20:51:40 UTC (rev 6070) @@ -7,6 +7,7 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: [ 1845105 ] mimetype magic can be disabled again FIXED: [ 2062651 ] Ctrl+Up selects the URL in the origin editbox FIXED: [ 1988893 ] konsole is started in a wrong directory please set "konsole --workdir %d" for the terminal (Konfigurator) Modified: trunk/krusader_kde4/krusader/VFS/vfile.cpp =================================================================== --- trunk/krusader_kde4/krusader/VFS/vfile.cpp 2008-08-21 21:41:41 UTC (rev 6069) +++ trunk/krusader_kde4/krusader/VFS/vfile.cpp 2008-08-22 20:51:40 UTC (rev 6070) @@ -47,6 +47,7 @@ #include <kdebug.h> bool vfile::vfile_userDefinedFolderIcons = true; +bool vfile::vfile_useMimeTypeMagic = true; vfile::vfile(const QString& name, // useful construtor const KIO::filesize_t size, Modified: trunk/krusader_kde4/krusader/VFS/vfile.h =================================================================== --- trunk/krusader_kde4/krusader/VFS/vfile.h 2008-08-21 21:41:41 UTC (rev 6069) +++ trunk/krusader_kde4/krusader/VFS/vfile.h 2008-08-22 20:51:40 UTC (rev 6070) @@ -124,6 +124,7 @@ virtual ~vfile(){} inline static void vfile_loadUserDefinedFolderIcons( bool load ) { vfile_userDefinedFolderIcons = load; } + inline static void vfile_enableMimeTypeMagic( bool enable ) { vfile_useMimeTypeMagic = enable; } private: void vfile_loadACL(); @@ -153,12 +154,13 @@ QString vfile_def_acl; //< ACL default string static bool vfile_userDefinedFolderIcons; + static bool vfile_useMimeTypeMagic; }; QString vfile::vfile_getIcon(){ if( vfile_icon.isEmpty() ){ - QString mime = this->vfile_getMime(); + QString mime = this->vfile_getMime( !vfile_useMimeTypeMagic ); if ( mime == "Broken Link !" ) vfile_icon = "file-broken"; else if( vfile_icon.isEmpty() ) { Modified: trunk/krusader_kde4/krusader/krslots.cpp =================================================================== --- trunk/krusader_kde4/krusader/krslots.cpp 2008-08-21 21:41:41 UTC (rev 6069) +++ trunk/krusader_kde4/krusader/krslots.cpp 2008-08-22 20:51:40 UTC (rev 6070) @@ -326,10 +326,12 @@ void KRslots::runKonfigurator(bool firstTime) { KConfigGroup group( krConfig, "Look&Feel"); + KConfigGroup groupgen( krConfig, "General"); int size = (group.readEntry("Filelist Icon Size",_FilelistIconSize)).toInt(); Konfigurator *konfigurator = new Konfigurator(firstTime); + vfile::vfile_enableMimeTypeMagic( groupgen.readEntry( "Mimetype Magic", _MimetypeMagic ) ); if( konfigurator->isGUIRestartNeeded() ) { vfile::vfile_loadUserDefinedFolderIcons( group.readEntry( "Load User Defined Folder Icons", _UserDefinedFolderIcons ) ); Modified: trunk/krusader_kde4/krusader/krusader.cpp =================================================================== --- trunk/krusader_kde4/krusader/krusader.cpp 2008-08-21 21:41:41 UTC (rev 6069) +++ trunk/krusader_kde4/krusader/krusader.cpp 2008-08-22 20:51:40 UTC (rev 6070) @@ -282,8 +282,10 @@ initChecksumModule(); KConfigGroup gl( krConfig, "Look&Feel"); + KConfigGroup glgen( krConfig, "General"); int defaultType = gl.readEntry( "Default Panel Type", KrViewFactory::defaultViewId() ); vfile::vfile_loadUserDefinedFolderIcons( gl.readEntry( "Load User Defined Folder Icons", _UserDefinedFolderIcons ) ); + vfile::vfile_enableMimeTypeMagic( glgen.readEntry( "Mimetype Magic", _MimetypeMagic ) ); KConfigGroup gs( krConfig, "Startup" ); QStringList leftTabs = gs.readPathEntry( "Left Tab Bar",QStringList() ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-08-23 09:57:45
|
Revision: 6071 http://krusader.svn.sourceforge.net/krusader/?rev=6071&view=rev Author: ckarai Date: 2008-08-23 09:57:54 +0000 (Sat, 23 Aug 2008) Log Message: ----------- FIXED: [ 1671543 ] horizontal/vertical mode fix in the Window menu Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/krusader.cpp trunk/krusader_kde4/krusader/krusader.h trunk/krusader_kde4/krusader/krusaderview.cpp trunk/krusader_kde4/krusader/krusaderview.h Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-22 20:51:40 UTC (rev 6070) +++ trunk/krusader_kde4/ChangeLog 2008-08-23 09:57:54 UTC (rev 6071) @@ -7,6 +7,7 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: [ 1671543 ] horizontal/vertical mode fix in the Window menu FIXED: [ 1845105 ] mimetype magic can be disabled again FIXED: [ 2062651 ] Ctrl+Up selects the URL in the origin editbox FIXED: [ 1988893 ] konsole is started in a wrong directory Modified: trunk/krusader_kde4/krusader/krusader.cpp =================================================================== --- trunk/krusader_kde4/krusader/krusader.cpp 2008-08-22 20:51:40 UTC (rev 6070) +++ trunk/krusader_kde4/krusader/krusader.cpp 2008-08-23 09:57:54 UTC (rev 6071) @@ -188,7 +188,7 @@ KAction *Krusader::actView5 = 0; KToggleAction *Krusader::actToggleTerminal = 0; -KToggleAction *Krusader::actVerticalMode = 0; +KAction *Krusader::actVerticalMode = 0; KAction *Krusader::actSelectNewerAndSingle = 0; KAction *Krusader::actSelectSingle = 0; KAction *Krusader::actSelectNewer = 0; @@ -753,7 +753,7 @@ NEW_KACTION(t14, i18n( "Right Media" ), 0, Qt::CTRL + Qt::SHIFT + Qt::Key_Right, SLOTS, SLOT( openRightMedia() ), "right media" ); NEW_KACTION(t15, i18n( "New Symlink..." ), 0, Qt::CTRL + Qt::ALT + Qt::Key_S, SLOTS, SLOT( newSymlink() ), "new symlink"); NEW_KTOGGLEACTION(t16, i18n( "Toggle Popup Panel" ), 0, Qt::ALT + Qt::Key_Down, SLOTS, SLOT( togglePopupPanel() ), "toggle popup panel" ); - NEW_KTOGGLEACTION(actVerticalMode, i18n( "Vertical Mode" ), "view_top_bottom", Qt::ALT + Qt::CTRL + Qt::Key_R, MAIN_VIEW, SLOT( toggleVerticalMode() ), "toggle vertical mode" ); + NEW_KACTION(actVerticalMode, i18n( "Vertical Mode" ), "view-split-top-bottom", Qt::ALT + Qt::CTRL + Qt::Key_R, MAIN_VIEW, SLOT( toggleVerticalMode() ), "toggle vertical mode" ); NEW_KACTION(actNewTab, i18n( "New Tab" ), "tab-new", Qt::ALT + Qt::CTRL + Qt::Key_N, SLOTS, SLOT( newTab() ), "new tab" ); NEW_KACTION(actDupTab, i18n( "Duplicate Current Tab" ), "tab_duplicate", Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_N, SLOTS, SLOT( duplicateTab() ), "duplicate tab" ); NEW_KACTION(actCloseTab, i18n( "Close Current Tab" ), "tab-close", Qt::CTRL + Qt::Key_W, SLOTS, SLOT( closeTab() ), "close tab" ); @@ -828,7 +828,7 @@ mainView->right->view->saveSettings(); cfg = config->group( "Startup" ); - cfg.writeEntry( "Vertical Mode", actVerticalMode->isChecked()); + cfg.writeEntry( "Vertical Mode", mainView->isVertical()); config->sync(); } @@ -866,7 +866,7 @@ cfg.writeEntry( "Show FN Keys", actToggleFnkeys->isChecked() ); cfg.writeEntry( "Show Cmd Line", actToggleCmdline->isChecked() ); cfg.writeEntry( "Show Terminal Emulator", actToggleTerminal->isChecked() ); - cfg.writeEntry( "Vertical Mode", actVerticalMode->isChecked()); + cfg.writeEntry( "Vertical Mode", mainView->isVertical()); cfg.writeEntry( "Start To Tray", isHidden()); } @@ -1112,7 +1112,6 @@ } // set vertical mode if (cfg.readEntry( "Vertical Mode", false)) { - actVerticalMode->setChecked(true); mainView->toggleVerticalMode(); } if ( cfg.readEntry( "Show Terminal Emulator", _ShowTerminalEmulator ) ) { Modified: trunk/krusader_kde4/krusader/krusader.h =================================================================== --- trunk/krusader_kde4/krusader/krusader.h 2008-08-22 20:51:40 UTC (rev 6070) +++ trunk/krusader_kde4/krusader/krusader.h 2008-08-23 09:57:54 UTC (rev 6071) @@ -1,4 +1,3 @@ - /*************************************************************************** krusader.h ------------------- @@ -137,10 +136,10 @@ static KAction *actSelectColorMask, *actMultiRename, *actAllFilter, *actOpenLeftBm, *actOpenRightBm; static KAction *actNewTab, *actDupTab, *actCloseTab, *actPreviousTab, *actNextTab, *actSplit; static KAction *actCombine, *actUserMenu, *actManageUseractions, *actSyncDirs, *actSyncBrowse; - static KAction *actF2, *actF3, *actF4, *actF5, *actF6, *actF7, *actF8, *actF9, *actF10; + static KAction *actF2, *actF3, *actF4, *actF5, *actF6, *actF7, *actF8, *actF9, *actF10, *actVerticalMode; static KAction *actPopularUrls, *actLocationBar, *actJumpBack, *actSetJumpBack, *actCreateChecksum, *actMatchChecksum; static KAction *actView0, *actView1, *actView2, *actView3, *actView4, *actView5, *actCopy, *actPaste; - static KToggleAction *actToggleTerminal, *actVerticalMode; + static KToggleAction *actToggleTerminal; static KAction *actSelectNewerAndSingle, *actSelectNewer, *actSelectSingle, *actSelectDifferentAndSingle, *actSelectDifferent; /** actions for setting the execution mode of commands from commanddline */ Modified: trunk/krusader_kde4/krusader/krusaderview.cpp =================================================================== --- trunk/krusader_kde4/krusader/krusaderview.cpp 2008-08-22 20:51:40 UTC (rev 6070) +++ trunk/krusader_kde4/krusader/krusaderview.cpp 2008-08-23 09:57:54 UTC (rev 6071) @@ -298,9 +298,15 @@ } void KrusaderView::toggleVerticalMode() { - if (horiz_splitter->orientation() == Qt::Vertical) + if (horiz_splitter->orientation() == Qt::Vertical) { horiz_splitter->setOrientation(Qt::Horizontal); - else horiz_splitter->setOrientation(Qt::Vertical); + Krusader::actVerticalMode->setText( i18n( "Vertical Mode" ) ); + Krusader::actVerticalMode->setIcon( KIcon( "view-split-top-bottom" ) ); + } else { + horiz_splitter->setOrientation(Qt::Vertical); + Krusader::actVerticalMode->setText( i18n( "Horizontal Mode" ) ); + Krusader::actVerticalMode->setIcon( KIcon( "view-split-left-right" ) ); + } } #include "krusaderview.moc" Modified: trunk/krusader_kde4/krusader/krusaderview.h =================================================================== --- trunk/krusader_kde4/krusader/krusaderview.h 2008-08-22 20:51:40 UTC (rev 6070) +++ trunk/krusader_kde4/krusader/krusaderview.h 2008-08-23 09:57:54 UTC (rev 6071) @@ -67,6 +67,7 @@ inline PanelManager *activeManager() const { return (activePanel==left ? leftMng : rightMng); } inline PanelManager *inactiveManager() const { return (activePanel==left ? rightMng : leftMng); } QList<int> getTerminalEmulatorSplitterSizes(); + inline bool isVertical() const { return horiz_splitter != 0 ? horiz_splitter->orientation() == Qt::Vertical : false; } public slots: void slotCurrentChanged(QString p); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-08-24 13:15:26
|
Revision: 6072 http://krusader.svn.sourceforge.net/krusader/?rev=6072&view=rev Author: vaclavjuza Date: 2008-08-24 13:15:36 +0000 (Sun, 24 Aug 2008) Log Message: ----------- FIXED: [ 2023623 ] Krusader kept running after closing the main window Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/krusader.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-23 09:57:54 UTC (rev 6071) +++ trunk/krusader_kde4/ChangeLog 2008-08-24 13:15:36 UTC (rev 6072) @@ -7,6 +7,7 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: [ 2023623 ] Krusader kept running after closing the main window FIXED: [ 1671543 ] horizontal/vertical mode fix in the Window menu FIXED: [ 1845105 ] mimetype magic can be disabled again FIXED: [ 2062651 ] Ctrl+Up selects the URL in the origin editbox Modified: trunk/krusader_kde4/krusader/krusader.cpp =================================================================== --- trunk/krusader_kde4/krusader/krusader.cpp 2008-08-23 09:57:54 UTC (rev 6071) +++ trunk/krusader_kde4/krusader/krusader.cpp 2008-08-24 13:15:36 UTC (rev 6072) @@ -225,8 +225,6 @@ // parse command line arguments KCmdLineArgs * args = KCmdLineArgs::parsedArgs(); - KGlobal::ref(); // FIX: krusader exits at closing the viewer when minimized to tray - // create the "krusader" App = this; slot = new KRslots(this); @@ -385,6 +383,7 @@ status->setWhatsThis( i18n( "Statusbar will show basic information " "about file below mouse pointer." ) ); + KGlobal::ref(); // FIX: krusader exits at closing the viewer when minimized to tray // This enables Krusader to show a tray icon sysTray = new KSystemTrayIcon( this ); // Krusader::privIcon() returns either "krusader_blue" or "krusader_red" if the user got root-privileges @@ -499,7 +498,7 @@ bool showTrayIcon = group.readEntry( "Minimize To Tray", _MinimizeToTray ); bool singleInstanceMode = group.readEntry( "Single Instance Mode", _SingleInstanceMode ); - if( showTrayIcon && !singleInstanceMode ) + if( showTrayIcon && !singleInstanceMode && sysTray) sysTray->hide(); show(); // needed to make sure krusader is removed from // the taskbar when minimizing (system tray issue) @@ -508,7 +507,8 @@ void Krusader::hideEvent ( QHideEvent *e ) { if( isExiting ) { KParts::MainWindow::hideEvent( e ); - sysTray->hide(); + if (sysTray) + sysTray->hide(); return; } KConfigGroup group( config, "Look&Feel"); @@ -526,7 +526,8 @@ #else if ( showTrayIcon && !isModalTopWidget ) { #endif - sysTray->show(); + if ( sysTray ) + sysTray->show(); hide(); // needed to make sure krusader is removed from // the taskbar when minimizing (system tray issue) } else KParts::MainWindow::hideEvent( e ); @@ -892,14 +893,16 @@ bool minimizeToTray = group.readEntry( "Minimize To Tray", _MinimizeToTray ); bool singleInstanceMode = group.readEntry( "Single Instance Mode", _SingleInstanceMode ); - if( !isHidden() ) { - if( singleInstanceMode && minimizeToTray ) - sysTray->show(); - else - sysTray->hide(); - } else { - if( minimizeToTray ) - sysTray->show(); + if ( sysTray ) { + if( !isHidden() ) { + if( singleInstanceMode && minimizeToTray ) + sysTray->show(); + else + sysTray->hide(); + } else { + if( minimizeToTray ) + sysTray->show(); + } } } @@ -925,6 +928,9 @@ dbus.unregisterObject( "/Instances/" + Krusader::AppName ); KGlobal::deref(); // FIX: krusader exits at closing the viewer when minimized to tray + sysTray->hide(); + delete sysTray; // In KDE 4.1, KGlobal::ref() and deref() is done in KSystray constructor/destructor + sysTray=NULL; KGlobal::deref(); // and close the application return isExiting = true; // this will also kill the pending jobs } @@ -1028,8 +1034,15 @@ dbus.unregisterObject( "/Instances/" + Krusader::AppName ); KGlobal::deref(); // FIX: krusader exits at closing the viewer when minimized to tray + sysTray->hide(); + delete sysTray; // In KDE 4.1, KGlobal::ref() and deref() is done in KSystray constructor/destructor + sysTray=NULL; KGlobal::deref(); // and close the application return false; // don't let the main widget close. It stops the pendig copies! + //FIXME: The above intention does not work (at least in KDE 4.1), because the job + //progress window (class KWidgetJobTracker::Private::ProgressWidget) + //is closed above among other top level windows, and when closed + //stops the copy. } else return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-08-24 19:38:32
|
Revision: 6073 http://krusader.svn.sourceforge.net/krusader/?rev=6073&view=rev Author: vaclavjuza Date: 2008-08-24 19:38:40 +0000 (Sun, 24 Aug 2008) Log Message: ----------- FIXED: [ 2041732 ] Krusader 2.0.0 beta1 missing title bar under Compiz (thanks to Danny Baumann for the patch) Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/krusader.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-24 13:15:36 UTC (rev 6072) +++ trunk/krusader_kde4/ChangeLog 2008-08-24 19:38:40 UTC (rev 6073) @@ -7,6 +7,8 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: [ 2041732 ] Krusader 2.0.0 beta1 missing title bar under Compiz + (thanks to Danny Baumann for the patch) FIXED: [ 2023623 ] Krusader kept running after closing the main window FIXED: [ 1671543 ] horizontal/vertical mode fix in the Window menu FIXED: [ 1845105 ] mimetype magic can be disabled again Modified: trunk/krusader_kde4/krusader/krusader.cpp =================================================================== --- trunk/krusader_kde4/krusader/krusader.cpp 2008-08-24 13:15:36 UTC (rev 6072) +++ trunk/krusader_kde4/krusader/krusader.cpp 2008-08-24 19:38:40 UTC (rev 6073) @@ -218,7 +218,8 @@ #endif // construct the views, statusbar and menu bars and prepare Krusader to start -Krusader::Krusader() : KParts::MainWindow(0,Qt::Window|Qt::WindowContextHelpButtonHint), +Krusader::Krusader() : KParts::MainWindow(0, + Qt::Window | Qt::WindowTitleHint | Qt::WindowContextHelpButtonHint), status(NULL), sysTray( 0 ), isStarting( true ), isExiting( false ), directExit( false ) { setAttribute(Qt::WA_DeleteOnClose); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-08-25 19:04:19
|
Revision: 6074 http://krusader.svn.sourceforge.net/krusader/?rev=6074&view=rev Author: vaclavjuza Date: 2008-08-25 19:04:04 +0000 (Mon, 25 Aug 2008) Log Message: ----------- FIXED: [ 2027518 ] Does not build with -DBUILD_SHARED_LIBS:BOOL=ON (thanks to Funda Wang) Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/ActionMan/CMakeLists.txt trunk/krusader_kde4/krusader/BookMan/CMakeLists.txt trunk/krusader_kde4/krusader/Dialogs/CMakeLists.txt trunk/krusader_kde4/krusader/DiskUsage/CMakeLists.txt trunk/krusader_kde4/krusader/Filter/CMakeLists.txt trunk/krusader_kde4/krusader/GUI/CMakeLists.txt trunk/krusader_kde4/krusader/KViewer/CMakeLists.txt trunk/krusader_kde4/krusader/Konfigurator/CMakeLists.txt trunk/krusader_kde4/krusader/KrJS/CMakeLists.txt trunk/krusader_kde4/krusader/Locate/CMakeLists.txt trunk/krusader_kde4/krusader/MountMan/CMakeLists.txt trunk/krusader_kde4/krusader/Panel/CMakeLists.txt trunk/krusader_kde4/krusader/Queue/CMakeLists.txt trunk/krusader_kde4/krusader/Search/CMakeLists.txt trunk/krusader_kde4/krusader/Splitter/CMakeLists.txt trunk/krusader_kde4/krusader/Synchronizer/CMakeLists.txt trunk/krusader_kde4/krusader/UserAction/CMakeLists.txt trunk/krusader_kde4/krusader/UserMenu/CMakeLists.txt trunk/krusader_kde4/krusader/VFS/CMakeLists.txt Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/ChangeLog 2008-08-25 19:04:04 UTC (rev 6074) @@ -7,6 +7,8 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: [ 2027518 ] Does not build with -DBUILD_SHARED_LIBS:BOOL=ON + (thanks to Funda Wang) FIXED: [ 2041732 ] Krusader 2.0.0 beta1 missing title bar under Compiz (thanks to Danny Baumann for the patch) FIXED: [ 2023623 ] Krusader kept running after closing the main window Modified: trunk/krusader_kde4/krusader/ActionMan/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/ActionMan/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/ActionMan/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -13,7 +13,7 @@ kde4_add_ui_files(ActionMan_SRCS actionproperty.ui) -kde4_add_library(ActionMan ${ActionMan_SRCS} ) +kde4_add_library(ActionMan STATIC ${ActionMan_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/BookMan/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/BookMan/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/BookMan/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -11,7 +11,7 @@ krbookmarkhandler.cpp kraddbookmarkdlg.cpp ) -kde4_add_library(BookMan ${BookMan_SRCS} ) +kde4_add_library(BookMan STATIC ${BookMan_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/Dialogs/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Dialogs/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Dialogs/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -20,7 +20,7 @@ percentalsplitter.cpp krkeydialog.cpp ) -kde4_add_library(Dialogs ${Dialogs_SRCS} ) +kde4_add_library(Dialogs STATIC ${Dialogs_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/DiskUsage/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/DiskUsage/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/DiskUsage/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -14,7 +14,7 @@ dulines.cpp dufilelight.cpp ) -kde4_add_library(DiskUsage ${DiskUsage_SRCS} ${radialMap_SRCS} ${filelightParts_SRCS} ) +kde4_add_library(DiskUsage STATIC ${DiskUsage_SRCS} ${radialMap_SRCS} ${filelightParts_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/Filter/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Filter/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Filter/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -10,7 +10,7 @@ filtertabs.cpp filterdialog.cpp ) -kde4_add_library(Filter ${Filter_SRCS} ) +kde4_add_library(Filter STATIC ${Filter_SRCS} ) target_link_libraries(Filter Dialogs ) Modified: trunk/krusader_kde4/krusader/GUI/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/GUI/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/GUI/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -20,7 +20,7 @@ kcmdmodebutton.cpp terminaldock.cpp ) -kde4_add_library(GUI ${GUI_SRCS} ) +kde4_add_library(GUI STATIC ${GUI_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/KViewer/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/KViewer/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/KViewer/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -10,7 +10,7 @@ panelviewer.cpp diskusageviewer.cpp ) -kde4_add_library(KViewer ${KViewer_SRCS} ) +kde4_add_library(KViewer STATIC ${KViewer_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/Konfigurator/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Konfigurator/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -20,7 +20,7 @@ krresulttabledialog.cpp searchobject.cpp ) -kde4_add_library(Konfigurator ${Konfigurator_SRCS} ) +kde4_add_library(Konfigurator STATIC ${Konfigurator_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/KrJS/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/KrJS/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/KrJS/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -7,7 +7,7 @@ set( KrJS_SRCS krjs.cpp ) -kde4_add_library(KrJS ${KrJS_SRCS} ) +kde4_add_library(KrJS STATIC ${KrJS_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/Locate/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Locate/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Locate/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -7,7 +7,7 @@ set( Locate_SRCS locate.cpp ) -kde4_add_library(Locate ${Locate_SRCS} ) +kde4_add_library(Locate STATIC ${Locate_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/MountMan/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/MountMan/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/MountMan/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -9,7 +9,7 @@ kmountman.cpp ) -kde4_add_library(MountMan ${MountMan_SRCS} ) +kde4_add_library(MountMan STATIC ${MountMan_SRCS} ) target_link_libraries(MountMan Dialogs ) Modified: trunk/krusader_kde4/krusader/Panel/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Panel/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Panel/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -23,7 +23,7 @@ krinterview.cpp krviewfactory.cpp ) -kde4_add_library(Panel ${Panel_SRCS} ) +kde4_add_library(Panel STATIC ${Panel_SRCS} ) target_link_libraries(Panel Dialogs GUI KViewer ${KDE4_KFILE_LIBS} ${KDE4_KDE3SUPPORT_LIBRARY} ) Modified: trunk/krusader_kde4/krusader/Queue/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Queue/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Queue/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -9,7 +9,7 @@ queue_mgr.cpp queuewidget.cpp ) -kde4_add_library(Queue ${Queue_SRCS} ) +kde4_add_library(Queue STATIC ${Queue_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/Search/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Search/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Search/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -8,7 +8,7 @@ krsearchmod.cpp krsearchdialog.cpp ) -kde4_add_library(Search ${Search_SRCS} ) +kde4_add_library(Search STATIC ${Search_SRCS} ) target_link_libraries(Search Dialogs ) Modified: trunk/krusader_kde4/krusader/Splitter/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Splitter/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Splitter/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -10,7 +10,7 @@ splitter.cpp combiner.cpp ) -kde4_add_library(Splitter ${Splitter_SRCS} ) +kde4_add_library(Splitter STATIC ${Splitter_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/Synchronizer/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/Synchronizer/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/Synchronizer/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -12,7 +12,7 @@ synchronizertask.cpp synchronizerdirlist.cpp ) -kde4_add_library(Synchronizer ${Synchronizer_SRCS} ) +kde4_add_library(Synchronizer STATIC ${Synchronizer_SRCS} ) target_link_libraries(Synchronizer Dialogs ) Modified: trunk/krusader_kde4/krusader/UserAction/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/UserAction/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/UserAction/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -11,7 +11,7 @@ kractionbase.cpp useraction.cpp ) -kde4_add_library(UserAction ${UserAction_SRCS} ) +kde4_add_library(UserAction STATIC ${UserAction_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/UserMenu/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/UserMenu/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/UserMenu/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -7,7 +7,7 @@ set( UserMenu_SRCS usermenu.cpp ) -kde4_add_library(UserMenu ${UserMenu_SRCS} ) +kde4_add_library(UserMenu STATIC ${UserMenu_SRCS} ) ########### install files ############### Modified: trunk/krusader_kde4/krusader/VFS/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/VFS/CMakeLists.txt 2008-08-24 19:38:40 UTC (rev 6073) +++ trunk/krusader_kde4/krusader/VFS/CMakeLists.txt 2008-08-25 19:04:04 UTC (rev 6074) @@ -18,7 +18,7 @@ krquery.cpp preserveattrcopyjob.cpp ) -kde4_add_library(VFS ${VFS_SRCS} ) +kde4_add_library(VFS STATIC ${VFS_SRCS} ) ########### install files ############### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-08-31 22:45:58
|
Revision: 6075 http://krusader.svn.sourceforge.net/krusader/?rev=6075&view=rev Author: vaclavjuza Date: 2008-08-31 22:45:54 +0000 (Sun, 31 Aug 2008) Log Message: ----------- Konfigurator has scrollbars if necessary Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp trunk/krusader_kde4/krusader/Konfigurator/kgarchives.cpp trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp trunk/krusader_kde4/krusader/Konfigurator/kggeneral.cpp trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp trunk/krusader_kde4/krusader/Konfigurator/kgstartup.cpp trunk/krusader_kde4/krusader/Konfigurator/kguseractions.cpp trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.cpp trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.h Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/ChangeLog 2008-08-31 22:45:54 UTC (rev 6075) @@ -7,6 +7,7 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: Konfigurator has scrollbars if necessary. FIXED: [ 2027518 ] Does not build with -DBUILD_SHARED_LIBS:BOOL=ON (thanks to Funda Wang) FIXED: [ 2041732 ] Krusader 2.0.0 beta1 missing title bar under Compiz Modified: trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/kgadvanced.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -40,12 +40,15 @@ KgAdvanced::KgAdvanced( bool first, QWidget* parent ) : KonfiguratorPage( first, parent ) { - QGridLayout *kgAdvancedLayout = new QGridLayout( this ); + QWidget *innerWidget = new QFrame( this ); + setWidget( innerWidget ); + setWidgetResizable( true ); + QGridLayout *kgAdvancedLayout = new QGridLayout( innerWidget ); kgAdvancedLayout->setSpacing( 6 ); // -------------------------- GENERAL GROUPBOX ---------------------------------- - QGroupBox *generalGrp = createFrame( i18n( "General" ), this ); + QGroupBox *generalGrp = createFrame( i18n( "General" ), innerWidget ); QGridLayout *generalGrid = createGridLayout( generalGrp ); KONFIGURATOR_CHECKBOX_PARAM generalSettings[] = @@ -71,7 +74,7 @@ // ----------------------- CONFIRMATIONS GROUPBOX ------------------------------- - QGroupBox *confirmGrp = createFrame( i18n( "Confirmations" ), this ); + QGroupBox *confirmGrp = createFrame( i18n( "Confirmations" ), innerWidget ); QGridLayout *confirmGrid = createGridLayout( confirmGrp ); addLabel( confirmGrid, 0, 0, "\n"+i18n( "Request user confirmation for the following operations:" )+"\n", @@ -95,7 +98,7 @@ // ------------------------ FINE-TUNING GROUPBOX -------------------------------- - QGroupBox *fineTuneGrp = createFrame( i18n( "Fine-Tuning" ), this ); + QGroupBox *fineTuneGrp = createFrame( i18n( "Fine-Tuning" ), innerWidget ); QGridLayout *fineTuneGrid = createGridLayout( fineTuneGrp ); fineTuneGrid->setAlignment( Qt::AlignLeft | Qt::AlignTop ); Modified: trunk/krusader_kde4/krusader/Konfigurator/kgarchives.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kgarchives.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/kgarchives.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -43,12 +43,15 @@ KgArchives::KgArchives( bool first, QWidget* parent ) : KonfiguratorPage( first, parent ) { - QGridLayout *kgArchivesLayout = new QGridLayout( this ); + QWidget *innerWidget = new QFrame( this ); + setWidget( innerWidget ); + setWidgetResizable( true ); + QGridLayout *kgArchivesLayout = new QGridLayout( innerWidget ); kgArchivesLayout->setSpacing( 6 ); // -------------------------- GENERAL GROUPBOX ---------------------------------- - QGroupBox *generalGrp = createFrame( i18n( "General" ), this ); + QGroupBox *generalGrp = createFrame( i18n( "General" ), innerWidget ); QGridLayout *generalGrid = createGridLayout( generalGrp ); addLabel( generalGrid, 0, 0, i18n( "Krusader transparently handles the following types of archives:" ), @@ -94,7 +97,7 @@ // ------------------------ FINE-TUNING GROUPBOX -------------------------------- - QGroupBox *fineTuneGrp = createFrame( i18n( "Fine-Tuning" ), this ); + QGroupBox *fineTuneGrp = createFrame( i18n( "Fine-Tuning" ), innerWidget ); QGridLayout *fineTuneGrid = createGridLayout( fineTuneGrp ); KONFIGURATOR_CHECKBOX_PARAM finetuners[] = Modified: trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/kgcolors.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -45,12 +45,15 @@ KgColors::KgColors( bool first, QWidget* parent ) : KonfiguratorPage( first, parent ), offset( 0 ) { - QGridLayout *kgColorsLayout = new QGridLayout( this ); + QWidget *innerWidget = new QFrame( this ); + setWidget( innerWidget ); + setWidgetResizable( true ); + QGridLayout *kgColorsLayout = new QGridLayout( innerWidget ); kgColorsLayout->setSpacing( 6 ); // -------------------------- GENERAL GROUPBOX ---------------------------------- - QGroupBox *generalGrp = createFrame( i18n( "General" ), this ); + QGroupBox *generalGrp = createFrame( i18n( "General" ), innerWidget ); QGridLayout *generalGrid = createGridLayout( generalGrp ); generalGrid->setSpacing( 0 ); @@ -73,7 +76,7 @@ connect( generals->find( "Dim Inactive Colors" ), SIGNAL( stateChanged( int ) ), this, SLOT( slotDisable() ) ); kgColorsLayout->addWidget( generalGrp, 0 ,0, 1, 3 ); - QWidget *hboxWidget = new QWidget( this ); + QWidget *hboxWidget = new QWidget( innerWidget ); QHBoxLayout *hbox = new QHBoxLayout( hboxWidget ); // -------------------------- COLORS GROUPBOX ---------------------------------- @@ -249,14 +252,14 @@ kgColorsLayout->addWidget( hboxWidget, 1 , 0, 1, 3 ); - importBtn = new KPushButton(i18n("Import color-scheme"),this); + importBtn = new KPushButton(i18n("Import color-scheme"),innerWidget); kgColorsLayout->addWidget(importBtn,2,0); - exportBtn = new KPushButton(i18n("Export color-scheme"),this); + exportBtn = new KPushButton(i18n("Export color-scheme"),innerWidget); kgColorsLayout->addWidget(exportBtn,2,1); - kgColorsLayout->addWidget(createSpacer(this), 2,2); + kgColorsLayout->addWidget(createSpacer(innerWidget), 2,2); connect(importBtn, SIGNAL(clicked()), this, SLOT(slotImportColors())); connect(exportBtn, SIGNAL(clicked()), this, SLOT(slotExportColors())); - + slotDisable(); } Modified: trunk/krusader_kde4/krusader/Konfigurator/kggeneral.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kggeneral.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/kggeneral.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -48,12 +48,15 @@ if( first ) slotFindTools(); - QGridLayout *kgGeneralLayout = new QGridLayout( this ); + QWidget *innerWidget = new QFrame( this ); + setWidget( innerWidget ); + setWidgetResizable( true ); + QGridLayout *kgGeneralLayout = new QGridLayout( innerWidget ); kgGeneralLayout->setSpacing( 6 ); // -------------------------- GENERAL GROUPBOX ---------------------------------- - QGroupBox *generalGrp = createFrame( i18n( "General" ), this ); + QGroupBox *generalGrp = createFrame( i18n( "General" ), innerWidget ); QGridLayout *generalGrid = createGridLayout( generalGrp ); KONFIGURATOR_NAME_VALUE_TIP deleteMode[] = Modified: trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -33,6 +33,7 @@ #include "../defaults.h" #include "../Dialogs/krdialogs.h" #include <qtabwidget.h> +#include <QFrame> #include <QGridLayout> #include <QLabel> #include <QVBoxLayout> @@ -55,10 +56,11 @@ KgLookFeel::KgLookFeel( bool first, QWidget* parent ) : KonfiguratorPage( first, parent ) { - QGridLayout *kgLookAndFeelLayout = new QGridLayout( this ); + QWidget *innerWidget = this; + QGridLayout *kgLookAndFeelLayout = new QGridLayout( innerWidget ); kgLookAndFeelLayout->setSpacing( 6 ); - tabWidget = new QTabWidget( this ); + tabWidget = new QTabWidget( innerWidget ); setupOperationTab(); setupPanelTab(); @@ -72,8 +74,12 @@ // ---------------------------- OPERATION TAB ------------------------------------- // --------------------------------------------------------------------------------------- void KgLookFeel::setupOperationTab() { - QWidget *tab = new QWidget( tabWidget ); - tabWidget->addTab( tab, i18n( "Operation" ) ); + QScrollArea *scrollArea = new QScrollArea( tabWidget ); + QWidget *tab = new QWidget( scrollArea ); + scrollArea->setFrameStyle( QFrame::NoFrame ); + scrollArea->setWidget( tab ); + scrollArea->setWidgetResizable( true ); + tabWidget->addTab( scrollArea, i18n( "Operation" ) ); QGridLayout *lookAndFeelLayout = new QGridLayout( tab ); lookAndFeelLayout->setSpacing( 6 ); @@ -120,8 +126,12 @@ // ---------------------------- PANEL TAB ------------------------------------- // ---------------------------------------------------------------------------------- void KgLookFeel::setupPanelTab() { - QWidget* tab_panel = new QWidget( tabWidget ); - tabWidget->addTab( tab_panel, i18n( "Panel" ) ); + QScrollArea *scrollArea = new QScrollArea( tabWidget ); + QWidget *tab_panel = new QWidget( scrollArea ); + scrollArea->setFrameStyle( QFrame::NoFrame ); + scrollArea->setWidget( tab_panel ); + scrollArea->setWidgetResizable( true ); + tabWidget->addTab( scrollArea, i18n( "Panel" ) ); QGridLayout *panelLayout = new QGridLayout( tab_panel ); panelLayout->setSpacing( 6 ); @@ -221,8 +231,12 @@ // -------------------------- Panel Toolbar TAB ---------------------------------- // ----------------------------------------------------------------------------------- void KgLookFeel::setupPanelToolbarTab() { - QWidget *tab_4 = new QWidget( tabWidget ); - tabWidget->addTab( tab_4, i18n( "Panel Toolbar" ) ); + QScrollArea *scrollArea = new QScrollArea( tabWidget ); + QWidget *tab_4 = new QWidget( scrollArea ); + scrollArea->setFrameStyle( QFrame::NoFrame ); + scrollArea->setWidget( tab_4 ); + scrollArea->setWidgetResizable( true ); + tabWidget->addTab( scrollArea, i18n( "Panel Toolbar" ) ); QBoxLayout * panelToolbarVLayout = new QVBoxLayout( tab_4 ); panelToolbarVLayout->setSpacing( 6 ); @@ -266,8 +280,12 @@ // -------------------------- Mouse TAB ---------------------------------- // --------------------------------------------------------------------------- void KgLookFeel::setupMouseModeTab() { - QWidget *tab_mouse = new QWidget( tabWidget ); - tabWidget->addTab( tab_mouse, i18n( "Selection Mode" ) ); + QScrollArea *scrollArea = new QScrollArea( tabWidget ); + QWidget *tab_mouse = new QWidget( scrollArea ); + scrollArea->setFrameStyle( QFrame::NoFrame ); + scrollArea->setWidget( tab_mouse ); + scrollArea->setWidgetResizable( true ); + tabWidget->addTab( scrollArea, i18n( "Selection Mode" ) ); QGridLayout *mouseLayout = new QGridLayout( tab_mouse ); mouseLayout->setSpacing( 6 ); mouseLayout->setContentsMargins( 11, 11, 11, 11 ); Modified: trunk/krusader_kde4/krusader/Konfigurator/kgstartup.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kgstartup.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/kgstartup.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -40,12 +40,15 @@ KgStartup::KgStartup( bool first, QWidget* parent ) : KonfiguratorPage( first, parent ), profileCombo( 0 ) { - QGridLayout *kgStartupLayout = new QGridLayout( this ); + QWidget *innerWidget = new QFrame( this ); + setWidget( innerWidget ); + setWidgetResizable( true ); + QGridLayout *kgStartupLayout = new QGridLayout( innerWidget ); kgStartupLayout->setSpacing( 6 ); // --------------------------- PANELS GROUPBOX ---------------------------------- - QGroupBox *panelsGrp = createFrame( i18n( "General" ), this ); + QGroupBox *panelsGrp = createFrame( i18n( "General" ), innerWidget ); QGridLayout *panelsGrid = createGridLayout( panelsGrp ); QString s = "<p><img src='toolbar|kr_profile'></p>" + i18n( "Defines the panel profile used at startup. A panel profile contains:<ul><li>all the tabs paths</li><li>the current tab</li><li>the active panel</li></ul><b><Last session></b> is a special panel profile which is saved automatically when Krusader is closed."); @@ -81,7 +84,7 @@ // ------------------------ USERINTERFACE GROUPBOX ------------------------------ - QGroupBox *uiGrp = createFrame( i18n( "User Interface" ), this ); + QGroupBox *uiGrp = createFrame( i18n( "User Interface" ), innerWidget ); QGridLayout *uiGrid = createGridLayout( uiGrp ); KONFIGURATOR_CHECKBOX_PARAM uiCheckBoxes[] = Modified: trunk/krusader_kde4/krusader/Konfigurator/kguseractions.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kguseractions.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/kguseractions.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -43,10 +43,13 @@ KgUserActions::KgUserActions( bool first, QWidget* parent ) : KonfiguratorPage( first, parent ) { - QGridLayout *kgUserActionLayout = new QGridLayout( this ); + QWidget *innerWidget = new QFrame( this ); + setWidget( innerWidget ); + setWidgetResizable( true ); + QGridLayout *kgUserActionLayout = new QGridLayout( innerWidget ); // ============= Info Group ============= - QGroupBox *InfoGroup = createFrame( i18n( "Information" ), this ); + QGroupBox *InfoGroup = createFrame( i18n( "Information" ), innerWidget ); QGridLayout *InfoGrid = createGridLayout( InfoGroup ); // terminal for the UserActions @@ -62,7 +65,7 @@ kgUserActionLayout->addWidget( InfoGroup, 0 ,0 ); // ============= Terminal Group ============= - QGroupBox *terminalGroup = createFrame( i18n( "Terminal execution" ), this ); + QGroupBox *terminalGroup = createFrame( i18n( "Terminal execution" ), innerWidget ); QGridLayout *terminalGrid = createGridLayout( terminalGroup ); // terminal for the UserActions @@ -76,7 +79,7 @@ kgUserActionLayout->addWidget( terminalGroup, 1 ,0 ); // ============= Outputcollection Group ============= - QGroupBox *outputGroup = createFrame( i18n( "Output collection" ), this ); + QGroupBox *outputGroup = createFrame( i18n( "Output collection" ), innerWidget ); QGridLayout *outputGrid = createGridLayout( outputGroup ); QWidget *hboxWidget = new QWidget( outputGroup ); Modified: trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -81,6 +81,7 @@ connect( this, SIGNAL( user1Clicked() ), this, SLOT( slotUser1() ) ); createLayout( startPage ); + setInitialSize( QSize( 1000, 700 ) ); exec(); } Modified: trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.cpp 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.cpp 2008-08-31 22:45:54 UTC (rev 6075) @@ -32,13 +32,14 @@ #include <qlayout.h> #include <QHBoxLayout> #include <QGridLayout> -#include <QFrame> +#include <QScrollArea> #include <QLabel> #include "../krusader.h" KonfiguratorPage::KonfiguratorPage( bool firstTime, QWidget* parent ) : - QFrame( parent ), firstCall( firstTime ) + QScrollArea( parent ), firstCall( firstTime ) { + setFrameStyle( QFrame::NoFrame ); } bool KonfiguratorPage::apply() Modified: trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.h =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.h 2008-08-25 19:04:04 UTC (rev 6074) +++ trunk/krusader_kde4/krusader/Konfigurator/konfiguratorpage.h 2008-08-31 22:45:54 UTC (rev 6075) @@ -32,11 +32,11 @@ #define __KONFIGURATOR_PAGE_H__ #include "konfiguratoritems.h" -#include <qframe.h> #include <qgroupbox.h> #include <qlabel.h> #include <qlayout.h> #include <QGridLayout> +#include <QScrollArea> struct KONFIGURATOR_CHECKBOX_PARAM; struct KONFIGURATOR_NAME_VALUE_TIP; @@ -48,7 +48,7 @@ * * @short The base class of a page in Konfigurator */ -class KonfiguratorPage : public QFrame +class KonfiguratorPage : public QScrollArea { Q_OBJECT This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-09-02 22:02:55
|
Revision: 6077 http://krusader.svn.sourceforge.net/krusader/?rev=6077&view=rev Author: vaclavjuza Date: 2008-09-02 22:02:41 +0000 (Tue, 02 Sep 2008) Log Message: ----------- ADDED: Konfigurator mouse selection mode: Possibility to select a predefined mode and change a detail. Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.h trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.h trunk/krusader_kde4/krusader/Panel/krselectionmode.cpp trunk/krusader_kde4/krusader/Panel/krselectionmode.h Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-09-01 22:51:25 UTC (rev 6076) +++ trunk/krusader_kde4/ChangeLog 2008-09-02 22:02:41 UTC (rev 6077) @@ -1,3 +1,5 @@ + ADDED: Konfigurator mouse selection mode: Possibility to select a predefined + mode and change a detail. ADDED: [ 1704953 ] highlight quick search match ADDED: Useractions: added checkbox "enabled" and run mode option "Run in embedded terminal emulator" Modified: trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp 2008-09-01 22:51:25 UTC (rev 6076) +++ trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.cpp 2008-09-02 22:02:41 UTC (rev 6077) @@ -373,6 +373,9 @@ mouseCheckboxes = createCheckBoxGroup(1, 0, mouseCheckboxesParam, 11 /*count*/, mouseDetailGroup, PAGE_MOUSE); mouseDetailGrid->addWidget( mouseCheckboxes, 1, 0 ); + for ( int i = 0; i < mouseCheckboxes->count(); i++ ) + connect( mouseCheckboxes->find( i ), SIGNAL( clicked() ), SLOT( slotMouseCheckBoxChanged() ) ); + mouseLayout->addWidget( mouseDetailGroup, 1,0 ); // Disable the details-button if not in custom-mode @@ -407,20 +410,29 @@ } void KgLookFeel::slotSelectionModeChanged() { - bool enable = mouseRadio->find( i18n("Custom Selection Mode") )->isChecked(); - mouseCheckboxes->find( "QT Selection" )->setEnabled( enable ); - mouseCheckboxes->find( "Left Selects" )->setEnabled( enable ); - mouseCheckboxes->find( "Left Preserves" )->setEnabled( enable ); - mouseCheckboxes->find( "ShiftCtrl Left Selects" )->setEnabled( enable ); - mouseCheckboxes->find( "Right Selects" )->setEnabled( enable ); - mouseCheckboxes->find( "Right Preserves" )->setEnabled( enable ); - mouseCheckboxes->find( "ShiftCtrl Right Selects" )->setEnabled( enable ); - mouseCheckboxes->find( "Space Moves Down" )->setEnabled( enable ); - mouseCheckboxes->find( "Space Calc Space" )->setEnabled( enable ); - mouseCheckboxes->find( "Insert Moves Down" )->setEnabled( enable ); - mouseCheckboxes->find( "Immediate Context Menu" )->setEnabled( enable ); + KrSelectionMode *selectionMode = + KrSelectionMode::getSelectionHandlerForMode( mouseRadio->selectedIndex() ); + if ( selectionMode == NULL ) //User mode + return; + selectionMode->init(); + mouseCheckboxes->find( "QT Selection" )->setChecked( selectionMode->useQTSelection() ); + mouseCheckboxes->find( "Left Selects" )->setChecked( selectionMode->leftButtonSelects() ); + mouseCheckboxes->find( "Left Preserves" )->setChecked( selectionMode->leftButtonPreservesSelection() ); + mouseCheckboxes->find( "ShiftCtrl Left Selects" )->setChecked( selectionMode->shiftCtrlLeftButtonSelects() ); + mouseCheckboxes->find( "Right Selects" )->setChecked( selectionMode->rightButtonSelects() ); + mouseCheckboxes->find( "Right Preserves" )->setChecked( selectionMode->rightButtonPreservesSelection() ); + mouseCheckboxes->find( "ShiftCtrl Right Selects" )->setChecked( selectionMode->shiftCtrlRightButtonSelects() ); + mouseCheckboxes->find( "Space Moves Down" )->setChecked( selectionMode->spaceMovesDown() ); + mouseCheckboxes->find( "Space Calc Space" )->setChecked( selectionMode->spaceCalculatesDiskSpace() ); + mouseCheckboxes->find( "Insert Moves Down" )->setChecked( selectionMode->insertMovesDown() ); + mouseCheckboxes->find( "Immediate Context Menu" )->setChecked( selectionMode->showContextMenu() == -1 ); } +void KgLookFeel::slotMouseCheckBoxChanged() +{ + mouseRadio->selectButton( "3" ); //custom selection mode +} + int KgLookFeel::activeSubPage() { return tabWidget->currentIndex(); } Modified: trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.h =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.h 2008-09-01 22:51:25 UTC (rev 6076) +++ trunk/krusader_kde4/krusader/Konfigurator/kglookfeel.h 2008-09-02 22:02:41 UTC (rev 6077) @@ -57,6 +57,7 @@ void slotDisable(); void slotEnablePanelToolbar(); void slotSelectionModeChanged(); + void slotMouseCheckBoxChanged(); private: void setupOperationTab(); Modified: trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp 2008-09-01 22:51:25 UTC (rev 6076) +++ trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp 2008-09-02 22:02:41 UTC (rev 6077) @@ -277,7 +277,7 @@ ext->setChanged( false ); } -void KonfiguratorRadioButtons::slotApply(QObject *,QString cls, QString name) +int KonfiguratorRadioButtons::selectedIndex() { int cnt = 0; @@ -288,14 +288,22 @@ if( btn->isChecked() ) { - KConfigGroup( krConfig, cls ).writeEntry( name, radioValues[ cnt ] ); - break; + return cnt; } cnt++; } + return -1; } +void KonfiguratorRadioButtons::slotApply(QObject *,QString cls, QString name) +{ + int cnt = selectedIndex(); + + if (cnt >= 0) + KConfigGroup( krConfig, cls ).writeEntry( name, radioValues[ cnt ] ); +} + void KonfiguratorRadioButtons::slotSetDefaults(QObject *) { selectButton( defaultValue ); Modified: trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.h =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.h 2008-09-01 22:51:25 UTC (rev 6076) +++ trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.h 2008-09-02 22:02:41 UTC (rev 6077) @@ -156,6 +156,7 @@ QWidget( parent ) {}; void add( KonfiguratorCheckBox * ); + int count() { return checkBoxList.count(); }; KonfiguratorCheckBox * find( int index ); KonfiguratorCheckBox * find( QString name ); @@ -182,6 +183,7 @@ void selectButton( QString value ); int count() { return radioButtons.count(); } + int selectedIndex(); QRadioButton* find( int index ); QRadioButton* find( QString name ); Modified: trunk/krusader_kde4/krusader/Panel/krselectionmode.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/krselectionmode.cpp 2008-09-01 22:51:25 UTC (rev 6076) +++ trunk/krusader_kde4/krusader/Panel/krselectionmode.cpp 2008-09-02 22:02:41 UTC (rev 6077) @@ -10,29 +10,36 @@ TCSelectionMode tcSelectionMode; UserSelectionMode userSelectionMode; +KrSelectionMode* KrSelectionMode::getSelectionHandlerForMode(int mode) +{ + KrSelectionMode *res = NULL; + switch (mode) { + case 0: + res = &originalSelectionMode; + break; + case 1: + res = &konqSelectionMode; + break; + case 2: + res = &tcSelectionMode; + break; + default: + break; + } + return res; +} + KrSelectionMode* KrSelectionMode::getSelectionHandler() { if (__currentSelectionMode) { // don't check krConfig every time return __currentSelectionMode; } else { // nothing yet, set the correct one - KConfigGroup group( krConfig, "Look&Feel" ); - QString mode = group.readEntry("Mouse Selection", QString("") ); - switch (mode.toInt()) { - case 0: - __currentSelectionMode = &originalSelectionMode; - break; - case 1: - __currentSelectionMode = &konqSelectionMode; - break; - case 2: - __currentSelectionMode = &tcSelectionMode; - break; - case 3: - __currentSelectionMode = &userSelectionMode; - userSelectionMode.init(); - break; - default: - break; + KConfigGroup group( krConfig, "Look&Feel" ); + QString mode = group.readEntry("Mouse Selection", QString("") ); + __currentSelectionMode = getSelectionHandlerForMode( mode.toInt() ); + if ( __currentSelectionMode == NULL ) + { + __currentSelectionMode = &userSelectionMode; } // init and return __currentSelectionMode->init(); Modified: trunk/krusader_kde4/krusader/Panel/krselectionmode.h =================================================================== --- trunk/krusader_kde4/krusader/Panel/krselectionmode.h 2008-09-01 22:51:25 UTC (rev 6076) +++ trunk/krusader_kde4/krusader/Panel/krselectionmode.h 2008-09-02 22:02:41 UTC (rev 6077) @@ -13,6 +13,7 @@ */ class KrSelectionMode { public: + static KrSelectionMode * getSelectionHandlerForMode(int mode); static KrSelectionMode * getSelectionHandler(); static void resetSelectionHandler(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-09-04 23:21:45
|
Revision: 6078 http://krusader.svn.sourceforge.net/krusader/?rev=6078&view=rev Author: ckarai Date: 2008-09-04 23:21:55 +0000 (Thu, 04 Sep 2008) Log Message: ----------- FIXED: various konfigurator bugs Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Konfigurator/kgprotocols.cpp trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp trunk/krusader_kde4/krusader/Konfigurator/konfigurator.h trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-09-02 22:02:41 UTC (rev 6077) +++ trunk/krusader_kde4/ChangeLog 2008-09-04 23:21:55 UTC (rev 6078) @@ -9,6 +9,8 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: Konfigurator doesn't detect every mimetype for "zip" files + FIXED: Konfigurator keeps its original size FIXED: Konfigurator has scrollbars if necessary. FIXED: [ 2027518 ] Does not build with -DBUILD_SHARED_LIBS:BOOL=ON (thanks to Funda Wang) Modified: trunk/krusader_kde4/krusader/Konfigurator/kgprotocols.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/kgprotocols.cpp 2008-09-02 22:02:41 UTC (rev 6077) +++ trunk/krusader_kde4/krusader/Konfigurator/kgprotocols.cpp 2008-09-04 23:21:55 UTC (rev 6078) @@ -51,7 +51,7 @@ "application/x-gzip,application/x-jar," "application/x-lha,application/x-lha-compressed," "application/x-rar,application/x-rar-compressed," - "application/x-rpm,application/zip" + "application/x-rpm,application/zip," "application/x-zip,application/x-zip-compressed"; QString KgProtocols::defaultTarMimes = "application/x-tar,application/x-tarz," "application/x-compressed-tar," Modified: trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp 2008-09-02 22:02:41 UTC (rev 6077) +++ trunk/krusader_kde4/krusader/Konfigurator/konfigurator.cpp 2008-09-04 23:21:55 UTC (rev 6078) @@ -57,12 +57,13 @@ #include "kgcolors.h" #include "kguseractions.h" #include "kgprotocols.h" +#include <qevent.h> Konfigurator::Konfigurator( bool f, int startPage ) : KPageDialog( (QWidget *)0 ), firstTime(f), internalCall( false ), - restartGUI( false ) + restartGUI( false ), sizeX( -1 ), sizeY( -1 ) { setButtons( KDialog::Help | KDialog::User1 | KDialog::Apply | KDialog::Cancel ); - setDefaultButton( KDialog::User1 ); + setDefaultButton( KDialog::Apply ); setWindowTitle( i18n( "Konfigurator" ) ); setButtonGuiItem( KDialog::User1, KGuiItem( i18n("Defaults") ) ); setWindowModality( Qt::WindowModal ); @@ -81,10 +82,56 @@ connect( this, SIGNAL( user1Clicked() ), this, SLOT( slotUser1() ) ); createLayout( startPage ); - resize( 900, 900 ); + + KConfigGroup group( krConfig, "Konfigurator"); + int sx = group.readEntry( "Window Width", -1 ); + int sy = group.readEntry( "Window Height", -1 ); + + if( sx != -1 && sy != -1 ) + resize( sx, sy ); + else + resize( 900, 900 ); + + if( group.readEntry( "Window Maximized", false ) ) + showMaximized(); + else + show(); + exec(); } +void Konfigurator::resizeEvent( QResizeEvent *e ) +{ + if( !isMaximized() ) + { + sizeX = e->size().width(); + sizeY = e->size().height(); + } + + KDialog::resizeEvent( e ); +} + +void Konfigurator::closeDialog() +{ + KConfigGroup group( krConfig, "Konfigurator"); + + group.writeEntry("Window Width", sizeX ); + group.writeEntry("Window Height", sizeY ); + group.writeEntry("Window Maximized", isMaximized() ); +} + +void Konfigurator::reject() +{ + closeDialog(); + KDialog::reject(); +} + +void Konfigurator::accept() +{ + closeDialog(); + KDialog::accept(); +} + void Konfigurator::newPage(KonfiguratorPage *page, const QString &name, const QString &desc, const KIcon &kicon ) { KPageWidgetItem *item = new KPageWidgetItem( page, name ); @@ -177,6 +224,7 @@ { case KMessageBox::No: currentPg->loadInitialValues(); + currentPg->apply(); break; case KMessageBox::Yes: if( currentPg->apply() ) Modified: trunk/krusader_kde4/krusader/Konfigurator/konfigurator.h =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfigurator.h 2008-09-02 22:02:41 UTC (rev 6077) +++ trunk/krusader_kde4/krusader/Konfigurator/konfigurator.h 2008-09-04 23:21:55 UTC (rev 6078) @@ -41,6 +41,8 @@ class QLineEdit; class QString; +class QResizeEvent; +class QCloseEvent; class Konfigurator : public KPageDialog { @@ -52,10 +54,16 @@ bool isGUIRestartNeeded() { return restartGUI; } + virtual void accept(); + virtual void reject(); + protected: void newPage(KonfiguratorPage *, const QString &, const QString &, const KIcon & );// adds widget and connects to slot void createLayout( int startPage ); + void closeDialog(); + virtual void resizeEvent( QResizeEvent *e ); + protected slots: void slotUser1(); void slotApply(); // actually used for defaults @@ -71,6 +79,8 @@ bool internalCall; QTimer restoreTimer; bool restartGUI; + int sizeX; + int sizeY; }; #endif Modified: trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp =================================================================== --- trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp 2008-09-02 22:02:41 UTC (rev 6077) +++ trunk/krusader_kde4/krusader/Konfigurator/konfiguratoritems.cpp 2008-09-04 23:21:55 UTC (rev 6078) @@ -31,6 +31,7 @@ #include "konfiguratoritems.h" #include "../krusader.h" #include <klocale.h> +#include <klineedit.h> #include <qpainter.h> #include <qpen.h> #include <qcolordialog.h> @@ -376,7 +377,7 @@ void KonfiguratorURLRequester::loadInitialValue() { KConfigGroup group( krConfig, ext->getCfgClass() ); - setUrl( group.readEntry( ext->getCfgName(), defaultValue ) ); + lineEdit()->setText( group.readEntry( ext->getCfgName(), defaultValue ) ); ext->setChanged( false ); } @@ -388,7 +389,7 @@ void KonfiguratorURLRequester::slotSetDefaults(QObject *) { if( url() != defaultValue ) - setUrl( defaultValue ); + lineEdit()->setText( defaultValue ); } // KonfiguratorFontChooser class This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-09-14 20:57:34
|
Revision: 6079 http://krusader.svn.sourceforge.net/krusader/?rev=6079&view=rev Author: ckarai Date: 2008-09-14 20:57:43 +0000 (Sun, 14 Sep 2008) Log Message: ----------- bugfixes Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp trunk/krusader_kde4/krusader/VFS/CMakeLists.txt trunk/krusader_kde4/krusader/VFS/vfs.cpp trunk/krusader_kde4/krusader/krusader.h Added Paths: ----------- trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-09-04 23:21:55 UTC (rev 6078) +++ trunk/krusader_kde4/ChangeLog 2008-09-14 20:57:43 UTC (rev 6079) @@ -9,6 +9,8 @@ ARCH: QuickSearch is moved to KrView from Detailed/Brief views ARCH: Keyboard handling is moved to KrView from Detailed/Brief views + FIXED: calc space doesn't work on remote file systems + FIXED: searcher doesn't start because of corrupt config files FIXED: Konfigurator doesn't detect every mimetype for "zip" files FIXED: Konfigurator keeps its original size FIXED: Konfigurator has scrollbars if necessary. Modified: trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp =================================================================== --- trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp 2008-09-04 23:21:55 UTC (rev 6078) +++ trunk/krusader_kde4/krusader/Search/krsearchdialog.cpp 2008-09-14 20:57:43 UTC (rev 6079) @@ -331,11 +331,11 @@ setTabOrder( searcherTabs, resultsList ); KConfigGroup group( krConfig, "Search" ); - int sx = group.readEntry( "Window Width", -1 ); - int sy = group.readEntry( "Window Height", -1 ); + sizeX = group.readEntry( "Window Width", -1 ); + sizeY = group.readEntry( "Window Height", -1 ); - if( sx != -1 && sy != -1 ) - resize( sx, sy ); + if( sizeX != -1 && sizeY != -1 ) + resize( sizeX, sizeY ); if( group.readEntry( "Window Maximized", false ) ) showMaximized(); Modified: trunk/krusader_kde4/krusader/VFS/CMakeLists.txt =================================================================== --- trunk/krusader_kde4/krusader/VFS/CMakeLists.txt 2008-09-04 23:21:55 UTC (rev 6078) +++ trunk/krusader_kde4/krusader/VFS/CMakeLists.txt 2008-09-14 20:57:43 UTC (rev 6079) @@ -16,6 +16,7 @@ virtualcopyjob.cpp ftp_vfs.cpp krquery.cpp + kiojobwrapper.cpp preserveattrcopyjob.cpp ) kde4_add_library(VFS STATIC ${VFS_SRCS} ) Added: trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp =================================================================== --- trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp (rev 0) +++ trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp 2008-09-14 20:57:43 UTC (rev 6079) @@ -0,0 +1,100 @@ +/*************************************************************************** + kiojobwrapper.cpp + ------------------- + copyright : (C) 2008+ by Csaba Karai + email : kru...@us... + web site : http://krusader.sourceforge.net + --------------------------------------------------------------------------- + Description + *************************************************************************** + + A + + db dD d8888b. db db .d8888. .d8b. d8888b. d88888b d8888b. + 88 ,8P' 88 `8D 88 88 88' YP d8' `8b 88 `8D 88' 88 `8D + 88,8P 88oobY' 88 88 `8bo. 88ooo88 88 88 88ooooo 88oobY' + 88`8b 88`8b 88 88 `Y8b. 88~~~88 88 88 88~~~~~ 88`8b + 88 `88. 88 `88. 88b d88 db 8D 88 88 88 .8D 88. 88 `88. + YP YD 88 YD ~Y8888P' `8888Y' YP YP Y8888D' Y88888P 88 YD + + S o u r c e F i l e + + *************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "kiojobwrapper.h" +#include <qevent.h> +#include <kurl.h> +#include <kio/global.h> +#include <kio/jobclasses.h> +#include <kio/directorysizejob.h> +#include <kio/job.h> +#include <qapplication.h> +#include <iostream> + +class JobStartEvent : public QEvent { +public: + JobStartEvent( KIOJobWrapper * wrapperIn ) : QEvent( QEvent::User ), + m_wrapper( wrapperIn ) {} + virtual ~JobStartEvent() { delete m_wrapper; } + + KIOJobWrapper * wrapper() { return m_wrapper; } +private: + KIOJobWrapper * m_wrapper; +}; + +KrJobStarter * KrJobStarter::m_self = 0; + +bool KrJobStarter::event( QEvent * e ) { + if( e->type() == QEvent::User ) { + JobStartEvent *je = (JobStartEvent *)e; + je->wrapper()->createJob(); + return true; + } + return QObject::event( e ); +} + +void KIOJobWrapper::createJob() { + KIO::Job *job = 0; + switch( m_type ) { + case Stat: + job = KIO::stat( m_url ); + break; + case DirectorySize: + job = KIO::directorySize( m_url ); + break; + default: + fprintf( stderr, "Internal error: invalid job!\n" ); + break; + } + if( job ) { + for( int i=0; i != m_signals.count(); i++ ) + if( !m_receivers[ i ].isNull() ) + connect( job, m_signals[ i ], m_receivers[ i ], m_methods[ i ] ); + } +} + +KIOJobWrapper * KIOJobWrapper::stat( KUrl &url ) { + return new KIOJobWrapper( Stat, url ); +} + +KIOJobWrapper * KIOJobWrapper::directorySize( KUrl &url ) { + return new KIOJobWrapper( DirectorySize, url ); +} + +void KIOJobWrapper::start() { + KrJobStarter *self = KrJobStarter::self(); + QApplication::postEvent( self, new JobStartEvent( this ) ); +} + +void KIOJobWrapper::connectTo( const char * signal, const QObject * receiver, const char * method ) { + m_signals.append( signal ); + m_receivers.append( (QObject *)receiver ); + m_methods.append( method ); +} Added: trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h =================================================================== --- trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h (rev 0) +++ trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h 2008-09-14 20:57:43 UTC (rev 6079) @@ -0,0 +1,82 @@ +/*************************************************************************** + kiojobwrapper.h + ------------------- + copyright : (C) 2008+ by Csaba Karai + email : kru...@us... + web site : http://krusader.sourceforge.net + --------------------------------------------------------------------------- + Description + *************************************************************************** + + A + + db dD d8888b. db db .d8888. .d8b. d8888b. d88888b d8888b. + 88 ,8P' 88 `8D 88 88 88' YP d8' `8b 88 `8D 88' 88 `8D + 88,8P 88oobY' 88 88 `8bo. 88ooo88 88 88 88ooooo 88oobY' + 88`8b 88`8b 88 88 `Y8b. 88~~~88 88 88 88~~~~~ 88`8b + 88 `88. 88 `88. 88b d88 db 8D 88 88 88 .8D 88. 88 `88. + YP YD 88 YD ~Y8888P' `8888Y' YP YP Y8888D' Y88888P 88 YD + + H e a d e r F i l e + + *************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef __KIO_JOB_WRAPPER__ +#define __KIO_JOB_WRAPPER__ + +#include <qobject.h> +#include <kurl.h> +#include <qpointer.h> + +class QEvent; +class KJob; + +enum KIOJobWrapperType { + Stat = 1, + DirectorySize = 2, +}; + +class KIOJobWrapper : public QObject { + friend class KrJobStarter; +private: + KIOJobWrapperType m_type; + KUrl m_url; + + QList<const char *> m_signals; + QList<QPointer<QObject> > m_receivers; + QList<const char *> m_methods; + + KIOJobWrapper( KIOJobWrapperType type, KUrl &url ) { + m_type = type; + m_url = url; + } + + void createJob(); + +public: + void start(); + void connectTo( const char * signal, const QObject * receiver, const char * method ); + + static KIOJobWrapper * stat( KUrl &url ); + static KIOJobWrapper * directorySize( KUrl &url ); +}; + +class KrJobStarter : public QObject { + friend class KIOJobWrapper; +public: + KrJobStarter() { m_self = this;} +protected: + bool event( QEvent * e ); + + static KrJobStarter * self() { return m_self; } + static KrJobStarter * m_self; +}; + +#endif // __KIO_JOB_WRAPPER__ Modified: trunk/krusader_kde4/krusader/VFS/vfs.cpp =================================================================== --- trunk/krusader_kde4/krusader/VFS/vfs.cpp 2008-09-04 23:21:55 UTC (rev 6078) +++ trunk/krusader_kde4/krusader/VFS/vfs.cpp 2008-09-14 20:57:43 UTC (rev 6079) @@ -43,6 +43,7 @@ #include "vfs.h" #include "../krusader.h" #include "../defaults.h" +#include "kiojobwrapper.h" vfs::vfs(QObject* panel, bool quiet): vfs_busy(false), quietMode(quiet),disableRefresh(false),postponedRefreshURL(), invalidated(true),panelConnected(false),vfs_tempFilesP(0),vfileIterator(0),deletePossible( true ), @@ -290,9 +291,11 @@ return; } else { stat_busy = true; - KIO::StatJob* statJob = KIO::stat( url, false ); - connect( statJob, SIGNAL( result( KJob* ) ), this, SLOT( slotStatResultArrived( KJob* ) ) ); + KIOJobWrapper * statJob = KIOJobWrapper::stat( url ); + statJob->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( slotStatResultArrived( KJob* ) ) ); + statJob->start(); while ( !(*stop) && stat_busy ) {usleep(1000);} + if( entry.count() == 0 ) return; // statJob failed KFileItem kfi(entry, url, true ); if( kfi.isFile() || kfi.isLink() ) { @@ -302,8 +305,9 @@ } } - KIO::DirectorySizeJob* kds = KIO::directorySize( url ); - connect( kds, SIGNAL( result( KJob* ) ), this, SLOT( slotKdsResult( KJob* ) ) ); + KIOJobWrapper* kds = KIOJobWrapper::directorySize( url ); + kds->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( slotKdsResult( KJob* ) ) ); + kds->start(); while ( !(*stop) ){ // we are in a sepetate thread - so sleeping is OK usleep(1000); Modified: trunk/krusader_kde4/krusader/krusader.h =================================================================== --- trunk/krusader_kde4/krusader/krusader.h 2008-09-04 23:21:55 UTC (rev 6078) +++ trunk/krusader_kde4/krusader/krusader.h 2008-09-14 20:57:43 UTC (rev 6079) @@ -49,6 +49,7 @@ #include <QResizeEvent> #include <QHideEvent> #include <kdebug.h> +#include "VFS/kiojobwrapper.h" #ifdef __KJSEMBED__ class KrJS; @@ -187,6 +188,7 @@ bool isStarting; bool isExiting; bool directExit; + KrJobStarter jobStarter; }; // main modules This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ck...@us...> - 2008-09-16 20:13:16
|
Revision: 6082 http://krusader.svn.sourceforge.net/krusader/?rev=6082&view=rev Author: ckarai Date: 2008-09-16 20:13:25 +0000 (Tue, 16 Sep 2008) Log Message: ----------- ADDED: enqueue operation for copy / move (alpha without gui) Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/krusader/Dialogs/krdialogs.cpp trunk/krusader_kde4/krusader/Dialogs/krdialogs.h trunk/krusader_kde4/krusader/Panel/panelfunc.cpp trunk/krusader_kde4/krusader/Queue/queue.cpp trunk/krusader_kde4/krusader/Queue/queue.h trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp trunk/krusader_kde4/krusader/Queue/queue_mgr.h trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h trunk/krusader_kde4/krusader/VFS/virtualcopyjob.cpp trunk/krusader_kde4/krusader/VFS/virtualcopyjob.h Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/ChangeLog 2008-09-16 20:13:25 UTC (rev 6082) @@ -1,3 +1,4 @@ + ADDED: enqueue operation for copy / move (alpha without gui) ADDED: Konfigurator mouse selection mode: Possibility to select a predefined mode and change a detail. ADDED: [ 1704953 ] highlight quick search match Modified: trunk/krusader_kde4/krusader/Dialogs/krdialogs.cpp =================================================================== --- trunk/krusader_kde4/krusader/Dialogs/krdialogs.cpp 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/Dialogs/krdialogs.cpp 2008-09-16 20:13:25 UTC (rev 6082) @@ -79,7 +79,7 @@ return u; } -KUrl KChooseDir::getDir(QString text,const KUrl& url, const KUrl& cwd, bool &preserveAttrs ) { +KUrl KChooseDir::getDir(QString text,const KUrl& url, const KUrl& cwd, bool &queue, bool &preserveAttrs ) { KUrlRequesterDlgForCopy *dlg = new KUrlRequesterDlgForCopy( vfs::pathOrUrl( url, KUrl::AddTrailingSlash ),text, preserveAttrs, krApp ); dlg->urlRequester()->completionObject()->setDir(cwd.url()); KUrl u; @@ -98,11 +98,12 @@ } } preserveAttrs = dlg->preserveAttrs(); + queue = dlg->enqueue(); delete dlg; return u; } -KUrl KChooseDir::getDir(QString text,const KUrl& url, const KUrl& cwd, bool &preserveAttrs, KUrl &baseURL ) { +KUrl KChooseDir::getDir(QString text,const KUrl& url, const KUrl& cwd, bool &queue, bool &preserveAttrs, KUrl &baseURL ) { KUrlRequesterDlgForCopy *dlg = new KUrlRequesterDlgForCopy( vfs::pathOrUrl( url, KUrl::AddTrailingSlash ),text, preserveAttrs, krApp, true, baseURL ); dlg->urlRequester()->completionObject()->setDir(cwd.url()); KUrl u; @@ -127,17 +128,19 @@ } } preserveAttrs = dlg->preserveAttrs(); + queue = dlg->enqueue(); delete dlg; return u; } KUrlRequesterDlgForCopy::KUrlRequesterDlgForCopy( const QString& urlName, const QString& _text, bool presAttrs, QWidget *parent, bool modal, KUrl baseURL ) - : KDialog( parent ), baseUrlCombo( 0 ), copyDirStructureCB( 0 ) { + : KDialog( parent ), baseUrlCombo( 0 ), copyDirStructureCB( 0 ), queue( false ) { - setButtons( KDialog::Ok | KDialog::User1 | KDialog::Cancel ); + setButtons( KDialog::Ok | KDialog::User1 | KDialog::User2 | KDialog::Cancel ); setDefaultButton( KDialog::Ok ); - setButtonGuiItem( KDialog::User1, KStandardGuiItem::clear() ); + setButtonGuiItem( KDialog::User1, KGuiItem( i18n("F2 Queue") ) ); + setButtonGuiItem( KDialog::User2, KStandardGuiItem::clear() ); setWindowModality( modal ? Qt::WindowModal : Qt::NonModal ); showButtonSeparator( true ); @@ -192,13 +195,26 @@ SLOT(slotTextChanged(const QString&)) ); bool state = !urlName.isEmpty(); enableButtonOk( state ); - enableButton( KDialog::User1, state ); - connect( this, SIGNAL( user1Clicked() ), SLOT( slotClear() ) ); + enableButton( KDialog::User2, state ); + connect( this, SIGNAL( user2Clicked() ), SLOT( slotClear() ) ); + connect( this, SIGNAL( user1Clicked() ), SLOT( slotQueue() ) ); } KUrlRequesterDlgForCopy::KUrlRequesterDlgForCopy() { } +void KUrlRequesterDlgForCopy::keyPressEvent( QKeyEvent *e ) +{ + switch ( e->key() ) + { + case Qt::Key_F2: + slotQueue(); + return; + default: + QDialog::keyPressEvent( e ); + } +} + bool KUrlRequesterDlgForCopy::preserveAttrs() { return preserveAttrsCB->isChecked(); } @@ -212,9 +228,14 @@ void KUrlRequesterDlgForCopy::slotTextChanged(const QString & text) { bool state = !text.trimmed().isEmpty(); enableButtonOk( state ); - enableButton( KDialog::User1, state ); + enableButton( KDialog::User2, state ); } +void KUrlRequesterDlgForCopy::slotQueue() { + queue = true; + accept(); +} + void KUrlRequesterDlgForCopy::slotClear() { urlRequester_->clear(); } Modified: trunk/krusader_kde4/krusader/Dialogs/krdialogs.h =================================================================== --- trunk/krusader_kde4/krusader/Dialogs/krdialogs.h 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/Dialogs/krdialogs.h 2008-09-16 20:13:25 UTC (rev 6082) @@ -68,8 +68,8 @@ * this is used for completion of partial urls */ static KUrl getDir(QString text,const KUrl& url, const KUrl& cwd); - static KUrl getDir(QString text,const KUrl& url, const KUrl& cwd, bool & preserveAttrs ); - static KUrl getDir(QString text,const KUrl& url, const KUrl& cwd, bool & preserveAttrs, KUrl &baseURL ); + static KUrl getDir(QString text,const KUrl& url, const KUrl& cwd, bool & queue, bool & preserveAttrs ); + static KUrl getDir(QString text,const KUrl& url, const KUrl& cwd, bool & queue, bool & preserveAttrs, KUrl &baseURL ); }; class KUrlRequesterDlgForCopy : public KDialog { @@ -82,11 +82,17 @@ KUrl selectedURL() const; KUrl baseURL() const; bool preserveAttrs(); + bool enqueue() { return queue; } bool copyDirStructure(); KUrlRequester *urlRequester(); + +protected: + virtual void keyPressEvent( QKeyEvent *e ); + private slots: void slotClear(); + void slotQueue(); void slotTextChanged(const QString &); void slotDirStructCBChanged(); private: @@ -94,6 +100,7 @@ QComboBox *baseUrlCombo; QCheckBox *preserveAttrsCB; QCheckBox *copyDirStructureCB; + bool queue; }; class KRGetDate : public KDialog { Modified: trunk/krusader_kde4/krusader/Panel/panelfunc.cpp =================================================================== --- trunk/krusader_kde4/krusader/Panel/panelfunc.cpp 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/Panel/panelfunc.cpp 2008-09-16 20:13:25 UTC (rev 6082) @@ -391,6 +391,7 @@ void ListPanelFunc::moveFiles() { PreserveMode pmode = PM_DEFAULT; + bool queue = false; QStringList fileNames; panel->getSelectedNames( &fileNames ); @@ -418,7 +419,7 @@ // ask the user for the copy dest virtualBaseURL = getVirtualBaseURL(); - dest = KChooseDir::getDir(s, dest, panel->virtualPath(), preserveAttrs, virtualBaseURL); + dest = KChooseDir::getDir(s, dest, panel->virtualPath(), queue, preserveAttrs, virtualBaseURL); if ( dest.isEmpty() ) return ; // the user canceled if( preserveAttrs ) pmode = PM_PRESERVE_ATTR; @@ -435,7 +436,29 @@ // file above the current item; panel->prepareToDelete(); - if( !virtualBaseURL.isEmpty() ) { + if( queue ) { + KIOJobWrapper *job = 0; + if( !virtualBaseURL.isEmpty() ) { + job = KIOJobWrapper::virtualMove( &fileNames, files(), dest, virtualBaseURL, pmode, true ); + job->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( refresh() ) ); + if ( dest.equals( panel->otherPanel->virtualPath(), KUrl::CompareWithoutTrailingSlash ) ) + job->connectTo( SIGNAL( result( KJob* ) ), panel->otherPanel->func, SLOT( refresh() ) ); + } else { + // you can rename only *one* file not a batch, + // so a batch dest must alwayes be a directory + if ( fileNames.count() > 1 ) dest.adjustPath(KUrl::AddTrailingSlash); + job = KIOJobWrapper::move( pmode, *fileUrls, dest, true ); + job->setAutoErrorHandlingEnabled( true ); + // refresh our panel when done + job->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( refresh() ) ); + if ( dest.equals( panel->virtualPath(), KUrl::CompareWithoutTrailingSlash ) || + dest.upUrl().equals( panel->virtualPath(), KUrl::CompareWithoutTrailingSlash ) ) + // refresh our panel when done + job->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( refresh() ) ); + } + QueueManager::currentQueue()->enqueue( job ); + } + else if( !virtualBaseURL.isEmpty() ) { // keep the directory structure for virtual paths VirtualCopyJob *vjob = new VirtualCopyJob( &fileNames, files(), dest, virtualBaseURL, pmode, KIO::CopyJob::Move, true ); connect( vjob, SIGNAL( result( KJob* ) ), this, SLOT( refresh() ) ); @@ -557,6 +580,7 @@ void ListPanelFunc::copyFiles() { PreserveMode pmode = PM_DEFAULT; + bool queue = false; QStringList fileNames; panel->getSelectedNames( &fileNames ); @@ -579,7 +603,7 @@ // ask the user for the copy dest virtualBaseURL = getVirtualBaseURL(); - dest = KChooseDir::getDir(s, dest, panel->virtualPath(), preserveAttrs, virtualBaseURL ); + dest = KChooseDir::getDir(s, dest, panel->virtualPath(), queue, preserveAttrs, virtualBaseURL ); if ( dest.isEmpty() ) return ; // the user canceled if( preserveAttrs ) pmode = PM_PRESERVE_ATTR; @@ -589,7 +613,27 @@ KUrl::List* fileUrls = files() ->vfs_getFiles( &fileNames ); - if( !virtualBaseURL.isEmpty() ) { + if( queue ) { + KIOJobWrapper *job = 0; + if( !virtualBaseURL.isEmpty() ) { + job = KIOJobWrapper::virtualCopy( &fileNames, files(), dest, virtualBaseURL, pmode, true ); + job->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( refresh() ) ); + if ( dest.equals( panel->otherPanel->virtualPath(), KUrl::CompareWithoutTrailingSlash ) ) + job->connectTo( SIGNAL( result( KJob* ) ), panel->otherPanel->func, SLOT( refresh() ) ); + } else { + // you can rename only *one* file not a batch, + // so a batch dest must alwayes be a directory + if ( fileNames.count() > 1 ) dest.adjustPath(KUrl::AddTrailingSlash); + job = KIOJobWrapper::copy( pmode, *fileUrls, dest, true ); + job->setAutoErrorHandlingEnabled( true ); + if ( dest.equals( panel->virtualPath(), KUrl::CompareWithoutTrailingSlash ) || + dest.upUrl().equals( panel->virtualPath(), KUrl::CompareWithoutTrailingSlash ) ) + // refresh our panel when done + job->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( refresh() ) ); + } + QueueManager::currentQueue()->enqueue( job ); + } + else if( !virtualBaseURL.isEmpty() ) { // keep the directory structure for virtual paths VirtualCopyJob *vjob = new VirtualCopyJob( &fileNames, files(), dest, virtualBaseURL, pmode, KIO::CopyJob::Copy, true ); connect( vjob, SIGNAL( result( KJob* ) ), this, SLOT( refresh() ) ); Modified: trunk/krusader_kde4/krusader/Queue/queue.cpp =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue.cpp 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/Queue/queue.cpp 2008-09-16 20:13:25 UTC (rev 6082) @@ -1,5 +1,8 @@ #include "queue.h" +#include "../krusader.h" #include <kdebug.h> +#include <klocale.h> +#include <kmessagebox.h> Queue::Queue(const QString& name): _name(name) { @@ -10,10 +13,17 @@ // TODO: save queue on delete? or just delete jobs } -void Queue::enqueue(KIO::Job *job) +void Queue::enqueue(KIOJobWrapper *job) { + bool isRunning = _jobs.count(); _jobs.append(job); + connect( job, SIGNAL( destroyed( QObject * ) ), this, SLOT( slotJobDestroyed( QObject * ) ) ); + job->connectTo( SIGNAL( result( KJob* ) ), this, SLOT( slotResult( KJob* ) ) ); + if( !isRunning ) + job->start(); + + emit showQueueDialog(); dumpQueue(); } @@ -21,3 +31,49 @@ { kDebug() << "Queue: " << name().toLatin1(); } + +void Queue::slotJobDestroyed( QObject * obj ) +{ + KIOJobWrapper * jw = (KIOJobWrapper*) obj; + bool current = false; + if( _jobs.count() > 0 && _jobs[ 0 ] == jw ) + current = true; + _jobs.removeAll( jw ); + if( current && _jobs.count() > 0 ) + _jobs[ 0 ]->start(); +} + +void Queue::slotResult( KJob * job ) +{ + if( _jobs.count() > 0 ) { + KIOJobWrapper * jw = _jobs[ 0 ]; + KIO::Job * kjob = jw->job(); + if( kjob && kjob == job ) { + _jobs.removeAll( jw ); + if( job->error() && _jobs.count() > 0 ) { + // what to do with the other elements in the queue + QString message = i18n( "An error occurred during processing the queue.\n" ); + if( job->error() == KIO::ERR_USER_CANCELED ) + message = i18n( "The last processed element in the queue was aborted.\n" ); + message += i18n( "Do you wish to continue with the next element, delete the queue or suspend the queue?" ); + int res = KMessageBox::questionYesNoCancel(krApp, message, + i18n( "Krusader::Queue" ), KStandardGuiItem::cont(), + KStandardGuiItem::del(), KGuiItem( i18n( "Suspend" ) ) ); + switch( res ) + { + case KMessageBox::Yes: // continue + break; + case KMessageBox::No: // delete the queue + _jobs.clear(); + return; + default: // suspend + /* TODO */ + return; + } + } + + if( _jobs.count() > 0 ) + _jobs[ 0 ]->start(); + } + } +} Modified: trunk/krusader_kde4/krusader/Queue/queue.h =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue.h 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/Queue/queue.h 2008-09-16 20:13:25 UTC (rev 6082) @@ -2,9 +2,11 @@ #define QUEUE_H #include <qobject.h> -#include <kio/jobclasses.h> +#include "../VFS/kiojobwrapper.h" #include <QList> +class KJob; + /** * Queue can hold anything which inherits KIO::Job, and schedule it, start it, stop etc... * the main reason to hold the Job itself (at least for phase 1) is to keep the code @@ -20,13 +22,20 @@ virtual ~Queue(); inline const QString& name() const { return _name; } - void enqueue(KIO::Job *job); + void enqueue(KIOJobWrapper *job); +protected slots: + void slotJobDestroyed( QObject * ); + void slotResult( KJob * ); + protected: void dumpQueue(); QString _name; - QList<KIO::Job *> _jobs; + QList<KIOJobWrapper *> _jobs; + +signals: + void showQueueDialog(); }; #endif // QUEUE_H Modified: trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/Queue/queue_mgr.cpp 2008-09-16 20:13:25 UTC (rev 6082) @@ -3,11 +3,13 @@ const QString QueueManager::defaultName="default"; QMap<QString, Queue*> QueueManager::_queues; +QString QueueManager::_current="default"; QueueManager::QueueManager() { Queue *defaultQ = new Queue(defaultName); _queues.insert(defaultQ->name(), defaultQ); + _current = defaultName; } QueueManager::~QueueManager() @@ -30,3 +32,13 @@ return _queues.keys(); } +Queue* QueueManager::currentQueue() +{ + return queue( _current ); +} + +void QueueManager::setCurrentQueue(const QString& queueName) +{ + if (_queues.contains(queueName)) + _current = queueName; +} Modified: trunk/krusader_kde4/krusader/Queue/queue_mgr.h =================================================================== --- trunk/krusader_kde4/krusader/Queue/queue_mgr.h 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/Queue/queue_mgr.h 2008-09-16 20:13:25 UTC (rev 6082) @@ -19,9 +19,13 @@ static Queue* queue(const QString& queueName=defaultName); QList<QString> queues() const; + + static Queue* currentQueue(); + static void setCurrentQueue(const QString& queueName); protected: static QMap<QString, Queue*> _queues; + static QString _current; }; #endif // QUEUE_MGR_H Modified: trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp =================================================================== --- trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/VFS/kiojobwrapper.cpp 2008-09-16 20:13:25 UTC (rev 6082) @@ -34,15 +34,18 @@ #include <kio/global.h> #include <kio/jobclasses.h> #include <kio/directorysizejob.h> +#include <kio/jobuidelegate.h> #include <kio/job.h> #include <qapplication.h> #include <iostream> +#include <klocale.h> +#include "virtualcopyjob.h" class JobStartEvent : public QEvent { public: JobStartEvent( KIOJobWrapper * wrapperIn ) : QEvent( QEvent::User ), m_wrapper( wrapperIn ) {} - virtual ~JobStartEvent() { delete m_wrapper; } + virtual ~JobStartEvent() { if( m_wrapper->m_delete ) delete m_wrapper; } KIOJobWrapper * wrapper() { return m_wrapper; } private: @@ -60,8 +63,37 @@ return QObject::event( e ); } +KIOJobWrapper::KIOJobWrapper( KIOJobWrapperType type, KUrl &url ) : QObject( 0 ), + m_autoErrorHandling( false ), m_delete( true ), m_started( false ) { + moveToThread(QApplication::instance()->thread()); + m_type = type; + m_url = url; +} + +KIOJobWrapper::KIOJobWrapper( KIOJobWrapperType type, KUrl &url, void * userData ) : QObject( 0 ), + m_autoErrorHandling( false ), m_delete( true ), m_started( false ) { + moveToThread(QApplication::instance()->thread()); + m_type = type; + m_url = url; + m_userData = userData; +} + +KIOJobWrapper::KIOJobWrapper( KIOJobWrapperType type, KUrl &url, KUrl::List &list, + int pmode, bool showp ) : QObject( 0 ), + m_autoErrorHandling( false ), m_delete( true ), m_started( false ) { + moveToThread(QApplication::instance()->thread()); + m_type = type; + m_url = url; + m_urlList = list; + m_pmode = pmode; + m_showProgress = showp; +} + +KIOJobWrapper::~KIOJobWrapper() { +} + void KIOJobWrapper::createJob() { - KIO::Job *job = 0; + KIO::Job * job = 0; switch( m_type ) { case Stat: job = KIO::stat( m_url ); @@ -69,14 +101,34 @@ case DirectorySize: job = KIO::directorySize( m_url ); break; + case VirtualMove: + case VirtualCopy: + { + VirtualCopyJob * vcj = (VirtualCopyJob *)m_userData; + vcj->slotStart(); + job = vcj; + } + break; + case Copy: + job = PreservingCopyJob::createCopyJob( (PreserveMode)m_pmode, m_urlList, m_url, KIO::CopyJob::Copy, false, m_showProgress ); + break; + case Move: + job = PreservingCopyJob::createCopyJob( (PreserveMode)m_pmode, m_urlList, m_url, KIO::CopyJob::Move, false, m_showProgress ); + break; default: fprintf( stderr, "Internal error: invalid job!\n" ); break; } if( job ) { + m_job = job; + m_delete = false; + connect( job, SIGNAL( destroyed() ), this, SLOT( deleteLater() ) ); for( int i=0; i != m_signals.count(); i++ ) if( !m_receivers[ i ].isNull() ) connect( job, m_signals[ i ], m_receivers[ i ], m_methods[ i ] ); + + if( m_autoErrorHandling && job->ui() ) + job->ui()->setAutoErrorHandlingEnabled( true ); } } @@ -88,7 +140,28 @@ return new KIOJobWrapper( DirectorySize, url ); } +KIOJobWrapper * KIOJobWrapper::copy( int pmode, KUrl::List &list, KUrl &url, bool showProgress ) { + return new KIOJobWrapper( Copy, url, list, pmode, showProgress ); +} + +KIOJobWrapper * KIOJobWrapper::move( int pmode, KUrl::List &list, KUrl &url, bool showProgress ) { + return new KIOJobWrapper( Move, url, list, pmode, showProgress ); +} + +KIOJobWrapper * KIOJobWrapper::virtualCopy( const QStringList *names, vfs * vfs, KUrl& dest, + const KUrl& baseURL, int pmode, bool showProgressInfo ) { + return new KIOJobWrapper( VirtualCopy, dest, + new VirtualCopyJob( names, vfs, dest, baseURL, (PreserveMode)pmode, KIO::CopyJob::Copy, showProgressInfo, false ) ); +} + +KIOJobWrapper * KIOJobWrapper::virtualMove( const QStringList *names, vfs * vfs, KUrl& dest, + const KUrl& baseURL, int pmode, bool showProgressInfo ) { + return new KIOJobWrapper( VirtualMove, dest, + new VirtualCopyJob( names, vfs, dest, baseURL, (PreserveMode)pmode, KIO::CopyJob::Move, showProgressInfo, false ) ); +} + void KIOJobWrapper::start() { + m_started = true; KrJobStarter *self = KrJobStarter::self(); QApplication::postEvent( self, new JobStartEvent( this ) ); } @@ -98,3 +171,21 @@ m_receivers.append( (QObject *)receiver ); m_methods.append( method ); } + +QString KIOJobWrapper::typeStr() { + switch( m_type ) + { + case Stat: + return i18n( "Status" ); + case DirectorySize: + return i18n( "Directory Size" ); + case Copy: + case VirtualCopy: + return i18n( "Copy" ); + case Move: + case VirtualMove: + return i18n( "Move" ); + default: + return i18n( "Unknown" ); + } +} Modified: trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h =================================================================== --- trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/VFS/kiojobwrapper.h 2008-09-16 20:13:25 UTC (rev 6082) @@ -34,38 +34,67 @@ #include <qobject.h> #include <kurl.h> #include <qpointer.h> +#include <kio/jobclasses.h> class QEvent; -class KJob; +class vfs; enum KIOJobWrapperType { Stat = 1, DirectorySize = 2, + Copy = 3, + Move = 4, + VirtualCopy = 5, + VirtualMove = 6, }; class KIOJobWrapper : public QObject { friend class KrJobStarter; + friend class JobStartEvent; private: KIOJobWrapperType m_type; KUrl m_url; + KUrl::List m_urlList; + bool m_showProgress; + int m_pmode; + void * m_userData; + bool m_autoErrorHandling; QList<const char *> m_signals; QList<QPointer<QObject> > m_receivers; QList<const char *> m_methods; - KIOJobWrapper( KIOJobWrapperType type, KUrl &url ) { - m_type = type; - m_url = url; - } + QPointer<KIO::Job> m_job; + bool m_delete; + bool m_started; + + KIOJobWrapper( KIOJobWrapperType type, KUrl &url ); + KIOJobWrapper( KIOJobWrapperType type, KUrl &url, void * userData ); + KIOJobWrapper( KIOJobWrapperType type, KUrl &url, KUrl::List &list, int pmode, bool showp ); void createJob(); public: + virtual ~KIOJobWrapper(); + void start(); void connectTo( const char * signal, const QObject * receiver, const char * method ); + void setAutoErrorHandlingEnabled( bool err ) { m_autoErrorHandling = err; } + bool isStarted() { return m_started; } + KIO::Job * job() { return m_job; } + KIOJobWrapperType type() { return m_type; } + QString typeStr(); + KUrl url() { return m_url; } + static KIOJobWrapper * stat( KUrl &url ); static KIOJobWrapper * directorySize( KUrl &url ); + static KIOJobWrapper * copy( int pmode, KUrl::List &list, KUrl &url, bool showProgress ); + static KIOJobWrapper * move( int pmode, KUrl::List &list, KUrl &url, bool showProgress ); + static KIOJobWrapper * virtualCopy( const QStringList *names, vfs * vfs, KUrl& dest, + const KUrl& baseURL, int pmode, bool showProgressInfo ); + static KIOJobWrapper * virtualMove( const QStringList *names, vfs * vfs, KUrl& dest, + const KUrl& baseURL, int pmode, bool showProgressInfo ); }; class KrJobStarter : public QObject { Modified: trunk/krusader_kde4/krusader/VFS/virtualcopyjob.cpp =================================================================== --- trunk/krusader_kde4/krusader/VFS/virtualcopyjob.cpp 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/VFS/virtualcopyjob.cpp 2008-09-16 20:13:25 UTC (rev 6082) @@ -119,7 +119,7 @@ }; VirtualCopyJob::VirtualCopyJob( const QStringList *names, vfs * vfs, const KUrl& dest, const KUrl& baseURL, - PreserveMode pmode, KIO::CopyJob::CopyMode mode, bool showProgressInfo ) : KIO::Job(), m_overwriteAll( false ), + PreserveMode pmode, KIO::CopyJob::CopyMode mode, bool showProgressInfo, bool autoStart ) : KIO::Job(), m_overwriteAll( false ), m_skipAll( false ), m_multi( false ), m_totalSize( 0 ), m_totalFiles( 0 ), m_totalSubdirs( 0 ), m_processedSize( 0 ), m_processedFiles( 0 ), m_processedSubdirs( 0 ), m_tempSize( 0 ), m_tempFiles( 0 ), m_dirsToGetSize(), m_filesToCopy(), m_size(), m_filenum(), m_subdirs(), m_baseURL( baseURL ), @@ -164,7 +164,8 @@ KIO::getJobTracker()->registerJob(this); } - QTimer::singleShot( 0, this, SLOT( slotStart() ) ); + if( autoStart ) + QTimer::singleShot( 0, this, SLOT( slotStart() ) ); } VirtualCopyJob::~VirtualCopyJob() { Modified: trunk/krusader_kde4/krusader/VFS/virtualcopyjob.h =================================================================== --- trunk/krusader_kde4/krusader/VFS/virtualcopyjob.h 2008-09-15 20:06:39 UTC (rev 6081) +++ trunk/krusader_kde4/krusader/VFS/virtualcopyjob.h 2008-09-16 20:13:25 UTC (rev 6082) @@ -53,7 +53,8 @@ public: VirtualCopyJob( const QStringList *names, vfs * vfs, const KUrl& dest, const KUrl& baseURL, - PreserveMode pmode, KIO::CopyJob::CopyMode mode, bool showProgressInfo ); + PreserveMode pmode, KIO::CopyJob::CopyMode mode, bool showProgressInfo, + bool autoStart = true ); virtual ~VirtualCopyJob(); inline bool isSkipAll() { return m_skipAll; } @@ -68,8 +69,10 @@ void copyCurrentDir(); void directoryFinished( const QString & ); +public slots: + void slotStart(); + protected slots: - void slotStart(); void slotReport(); void slotKdsResult( KJob * ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <vac...@us...> - 2008-09-22 21:12:17
|
Revision: 6085 http://krusader.svn.sourceforge.net/krusader/?rev=6085&view=rev Author: vaclavjuza Date: 2008-09-22 21:12:08 +0000 (Mon, 22 Sep 2008) Log Message: ----------- I18N: Updated Czech translation Modified Paths: -------------- trunk/krusader_kde4/ChangeLog trunk/krusader_kde4/po/cs.po Modified: trunk/krusader_kde4/ChangeLog =================================================================== --- trunk/krusader_kde4/ChangeLog 2008-09-22 20:19:41 UTC (rev 6084) +++ trunk/krusader_kde4/ChangeLog 2008-09-22 21:12:08 UTC (rev 6085) @@ -41,6 +41,7 @@ FIXED: Do not duplicate menu entries in UserAction menu while still not crashing when configuring toolbars. + I18N: Updated Czech translation I18N: Updated Ukrainian translation (thanks Yuri Chornoivan) I18N: Updated Slovenian translation (thanks Matej Urbancic) Modified: trunk/krusader_kde4/po/cs.po =================================================================== --- trunk/krusader_kde4/po/cs.po 2008-09-22 20:19:41 UTC (rev 6084) +++ trunk/krusader_kde4/po/cs.po 2008-09-22 21:12:08 UTC (rev 6085) @@ -1,3 +1,4 @@ +# translation of cs.po to # Translation of krusader.pot to Czech # # Copyright (C) 2000-2003, Shie Erlich, Rafi Yanai @@ -12,14 +13,13 @@ "Project-Id-Version: krusader-2.0.0-beta1\n" "Report-Msgid-Bugs-To: kru...@go...\n" "POT-Creation-Date: 2008-09-22 20:47+0200\n" -"PO-Revision-Date: 2008-04-17 13:12+0200\n" -"Last-Translator: Václav Jůza <vac...@se...>\n" -"Language-Team: Czech <kru...@go...>\n" +"PO-Revision-Date: 2008-09-22 23:00+0200\n" +"Last-Translator: Vaclav Juza <vaclavjuza at gmail dot com>\n" +"Language-Team: Czech <kru...@go...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: KBabel 1.11.4\n" #: GUI/dirhistorybutton.cpp:36 GUI/dirhistorybutton.cpp:37 @@ -94,24 +94,24 @@ msgstr "Disketa" #: GUI/mediabutton.cpp:179 -#, fuzzy, kde-format +#, kde-format msgid "CD/DVD-ROM" -msgstr "CD-ROM" +msgstr "CD/DVD-ROM" #: GUI/mediabutton.cpp:181 #, kde-format msgid "USB pen drive" -msgstr "" +msgstr "USB klíčenka" #: GUI/mediabutton.cpp:183 #, kde-format msgid "USB device" -msgstr "" +msgstr "USB zařízení" #: GUI/mediabutton.cpp:185 #, kde-format msgid "Removable media" -msgstr "" +msgstr "Vyměnitelné medium" #: GUI/mediabutton.cpp:187 #, kde-format @@ -119,24 +119,24 @@ msgstr "Pevný disk" #: GUI/mediabutton.cpp:189 -#, fuzzy, kde-format +#, kde-format msgid "Camera" -msgstr "Název" +msgstr "Foťák" #: GUI/mediabutton.cpp:191 #, kde-format msgid "Video CD/DVD-ROM" -msgstr "" +msgstr "Video CD/DVD-ROM" #: GUI/mediabutton.cpp:193 #, kde-format msgid "Audio CD/DVD-ROM" -msgstr "" +msgstr "Zvukové CD/DVD" #: GUI/mediabutton.cpp:195 #, kde-format msgid "Recordable CD/DVD-ROM" -msgstr "" +msgstr "Nahrávatelné CD/DVD" #: GUI/mediabutton.cpp:325 Panel/krpopupmenu.cpp:69 #: BookMan/krbookmarkhandler.cpp:557 @@ -170,12 +170,12 @@ #: GUI/mediabutton.cpp:423 #, kde-format msgid "An error occurred while accessing '%1', the system responded: %2" -msgstr "" +msgstr "Při práci s'%1' nastala chyba: %2" #: GUI/mediabutton.cpp:426 #, kde-format msgid "An error occurred while accessing '%1'" -msgstr "" +msgstr "Při práci s '%1' nastala chyba" #: GUI/syncbrowsebutton.cpp:45 GUI/syncbrowsebutton.cpp:48 #, kde-format @@ -418,10 +418,10 @@ msgstr "Kopírování" #: VFS/preserveattrcopyjob.cpp:361 -#, fuzzy, kde-format +#, kde-format msgctxt "@title job" msgid "Creating directory" -msgstr "Rodičovský adresář" +msgstr "Vytváření adresáře" #: VFS/preserveattrcopyjob.cpp:362 Panel/krinterview.cpp:205 #: Panel/krbriefview.cpp:226 Panel/krdetailedview.cpp:317 @@ -431,9 +431,9 @@ msgstr "Adresář" #: VFS/preserveattrcopyjob.cpp:793 -#, fuzzy, kde-format +#, kde-format msgid "Folder Already Exists" -msgstr "Soubor již existuje" +msgstr "Adresář již existuje" #: VFS/preserveattrcopyjob.cpp:1074 VFS/preserveattrcopyjob.cpp:1594 #: Synchronizer/synchronizer.cpp:1171 Synchronizer/synchronizer.cpp:1181 @@ -442,9 +442,9 @@ msgstr "Soubor již existuje" #: VFS/preserveattrcopyjob.cpp:1074 VFS/preserveattrcopyjob.cpp:1594 -#, fuzzy, kde-format +#, kde-format msgid "Already Exists as Folder" -msgstr "Soubor již existuje" +msgstr "Již existuje adresář s takovým názvem" #: VFS/normal_vfs.cpp:91 #, kde-format @@ -498,19 +498,19 @@ msgstr "Stav" #: VFS/kiojobwrapper.cpp:181 -#, fuzzy, kde-format +#, kde-format msgid "Directory Size" -msgstr "Adresáře" +msgstr "Velikost adresáře" #: VFS/kiojobwrapper.cpp:184 -#, fuzzy, kde-format +#, kde-format msgid "Copy" -msgstr " Kopírovat" +msgstr "Kopírování" #: VFS/kiojobwrapper.cpp:187 -#, fuzzy, kde-format +#, kde-format msgid "Move" -msgstr " Přesun" +msgstr "Přesun" #: VFS/krquery.cpp:159 Filter/generalfilter.cpp:142 #: Konfigurator/konfigurator.cpp:159 @@ -664,60 +664,55 @@ #: Filter/generalfilter.cpp:56 msgid "Any Character" -msgstr "" +msgstr "Jakýkoli znak" #: Filter/generalfilter.cpp:57 -#, fuzzy msgid "Start of Line" -msgstr "Profil při spuštění:" +msgstr "Začátek řádku" #: Filter/generalfilter.cpp:58 msgid "End of Line" -msgstr "" +msgstr "Konec řádku" #: Filter/generalfilter.cpp:59 msgid "Set of Characters" -msgstr "" +msgstr "Jeden ze sady znaků" #: Filter/generalfilter.cpp:60 msgid "Repeats, Zero or More Times" -msgstr "" +msgstr "Opakuje se, ani jednou nebo vícekrát" #: Filter/generalfilter.cpp:61 msgid "Repeats, One or More Times" -msgstr "" +msgstr "Opakuje se, jednou nebo vícekrát" #: Filter/generalfilter.cpp:62 -#, fuzzy msgid "Optional" -msgstr "&Možnosti" +msgstr "Nepovinné" #: Filter/generalfilter.cpp:63 msgid "Escape" -msgstr "" +msgstr "Zrušení zvláštního významu dalšího znaku" #: Filter/generalfilter.cpp:64 msgid "TAB" -msgstr "" +msgstr "TAB" #: Filter/generalfilter.cpp:65 -#, fuzzy msgid "Newline" -msgstr "Nový odkaz" +msgstr "Nový řádek (LF)" #: Filter/generalfilter.cpp:66 msgid "Carriage Return" -msgstr "" +msgstr "Nový řádek (CR)" #: Filter/generalfilter.cpp:67 -#, fuzzy msgid "White Space" -msgstr "Bílá" +msgstr "Prázdné znaky (mezera, TAB)" #: Filter/generalfilter.cpp:68 -#, fuzzy msgid "Digit" -msgstr "Pravá" +msgstr "Číslice" #: Filter/generalfilter.cpp:101 #, kde-format @@ -830,12 +825,12 @@ #: Filter/generalfilter.cpp:265 #, kde-format msgid "RegExp" -msgstr "" +msgstr "Regulární výraz" #: Filter/generalfilter.cpp:286 -#, fuzzy, kde-format +#, kde-format msgid "Encoding:" -msgstr "Upravování" +msgstr "Kódování:" #: Filter/generalfilter.cpp:301 #, kde-format @@ -1600,8 +1595,7 @@ #: UserAction/kraction.cpp:224 #, kde-format -msgid "" -"Embedded terminal emulator does not work, using output collection instead." +msgid "Embedded terminal emulator does not work, using output collection instead." msgstr "" "Zabudovaný emulátor terminálu nefunguje nebo není nainstalován, použiji " "místo něj režim \"Zobrazit smíchaný standardní a chybový výstup\"." @@ -1642,9 +1636,9 @@ msgstr "Uživatelské akce - neplatná akce" #: Panel/krinterview.cpp:58 -#, fuzzy, kde-format +#, kde-format msgid "&Experimental View" -msgstr "Po&drobný pohled" +msgstr "&Experimentální pohled" #: Panel/krdetailedviewitem.cpp:79 Panel/krdetailedviewitem.cpp:113 #: Synchronizer/synchronizergui.cpp:2064 Synchronizer/synchronizergui.cpp:2071 @@ -2325,7 +2319,7 @@ msgstr "Vyhodit do &koše" #: Panel/panelfunc.cpp:690 -#, fuzzy, kde-format +#, kde-format msgid "" "Do you really want to delete this virtual item (physical files stay " "untouched)?" @@ -2482,29 +2476,29 @@ #: Queue/queue.cpp:55 #, kde-format msgid "An error occurred during processing the queue.\n" -msgstr "" +msgstr "Při zpracovávání fronty nastala chyba.\n" #: Queue/queue.cpp:57 #, kde-format msgid "The last processed element in the queue was aborted.\n" -msgstr "" +msgstr "Zpracování poslední položky z fronty bylo přerušeno.\n" #: Queue/queue.cpp:58 #, kde-format msgid "" "Do you wish to continue with the next element, delete the queue or suspend " "the queue?" -msgstr "" +msgstr "Přejete si pokračovat dalšími položkami, smazat frontu nebo pozastavit frontu?" #: Queue/queue.cpp:60 -#, fuzzy, kde-format +#, kde-format msgid "Krusader::Queue" -msgstr "Krusader::Locate" +msgstr "Krusader::Fronta" #: Queue/queue.cpp:61 -#, fuzzy, kde-format +#, kde-format msgid "Suspend" -msgstr "Přidat" +msgstr "Pozastavit" #: Locate/locate.cpp:119 Locate/locate.cpp:123 Locate/locate.cpp:390 #, kde-format @@ -2631,8 +2625,7 @@ #: krusader.cpp:384 #, kde-format msgid "Statusbar will show basic information about file below mouse pointer." -msgstr "" -"Stavová lišta zobrazí základní informace o souboru pod ukazatelem myši." +msgstr "Stavová lišta zobrazí základní informace o souboru pod ukazatelem myši." #: krusader.cpp:467 #, kde-format @@ -3412,7 +3405,7 @@ msgstr "Název složky:" #: MountMan/kmountman.cpp:203 -#, fuzzy, kde-format +#, kde-format msgid "" "<qt>Error ejecting device!\n" " You have to configure the path to the 'eject' tool. Please check the " @@ -3518,8 +3511,7 @@ #: MountMan/kmountmangui.cpp:364 #, kde-format -msgid "" -"MountMan has an internal error. Please notify the developers. Thank you." +msgid "MountMan has an internal error. Please notify the developers. Thank you." msgstr "" "Správce připojení dospěl k vnitřní chybě. Upozorněte prosím vývojáře. " "(anglicky)Děkujeme." @@ -4039,14 +4031,14 @@ msgstr "Funkční klávesy umožňují rychlé operace se soubory." #: krusaderview.cpp:307 -#, fuzzy, kde-format +#, kde-format msgid "Horizontal Mode" -msgstr "Svislé uspořádání" +msgstr "Vodorovné uspořádání" #: Dialogs/krdialogs.cpp:142 #, kde-format msgid "F2 Queue" -msgstr "" +msgstr "F2 Do fronty" #: Dialogs/krdialogs.cpp:158 #, kde-format @@ -4386,8 +4378,7 @@ #: Dialogs/krkeydialog.cpp:135 #, kde-format -msgid "" -"<qt>File <b>%1</b> already exists. Do you really want to overwrite it?</qt>" +msgid "<qt>File <b>%1</b> already exists. Do you really want to overwrite it?</qt>" msgstr "<qt>Soubor <b>%1</b> již existuje. Opravdu ho chcete přepsat?</qt>" #: Dialogs/krkeydialog.cpp:144 @@ -4935,8 +4926,7 @@ msgid "" "The <i>Workdir</i> defines in which directory the <i>Command</i> will be " "executed." -msgstr "" -"<i>Pracovní adresář</i> určí, ve kterém adresáři se <i>Příkaz</i> vykoná." +msgstr "<i>Pracovní adresář</i> určí, ve kterém adresáři se <i>Příkaz</i> vykoná." #. i18n: tag string #. i18n: file ./ActionMan/actionproperty.ui line 250 @@ -5004,14 +4994,14 @@ #: ActionMan/ui_actionproperty.h:722 rc.cpp:116 #, kde-format msgid "If not checked, the action is not shown in the menus." -msgstr "" +msgstr "Pokud není zaškrtnuto, akce se nezobrazí v nabídkách." #. i18n: tag string #. i18n: file ./ActionMan/actionproperty.ui line 401 #: ActionMan/ui_actionproperty.h:725 rc.cpp:119 -#, fuzzy, kde-format +#, kde-format msgid "Enabled" -msgstr "zapnutý" +msgstr "Zapnuto" #. i18n: tag string #. i18n: file ./ActionMan/actionproperty.ui line 420 @@ -5065,16 +5055,16 @@ #. i18n: tag string #. i18n: file ./ActionMan/actionproperty.ui line 463 #: ActionMan/ui_actionproperty.h:748 rc.cpp:146 -#, fuzzy, kde-format +#, kde-format msgid "Run the command in the embedded terminal emulator." -msgstr "Spustit příkaz v terminálu." +msgstr "Spustí příkaz v zabudovaném emulátoru terminálu." #. i18n: tag string #. i18n: file ./ActionMan/actionproperty.ui line 466 #: ActionMan/ui_actionproperty.h:751 rc.cpp:149 -#, fuzzy, kde-format +#, kde-format msgid "Run in the embedded terminal emulator" -msgstr "Poslat do za&budovaného emulátoru terminálu" +msgstr "Spustit v zabudovaném emulátoru terminálu" #. i18n: tag string #. i18n: file ./ActionMan/actionproperty.ui line 39 @@ -5269,8 +5259,7 @@ #: ActionMan/useractionpage.cpp:134 #, kde-format -msgid "" -"The current action has been modified. Do you want to apply these changes?" +msgid "The current action has been modified. Do you want to apply these changes?" msgstr "Současná akce byla změněna. Chcete použít tyto změny?" #: ActionMan/useractionpage.cpp:211 @@ -5456,7 +5445,7 @@ #: ActionMan/addplaceholderpopup.cpp:288 ActionMan/addplaceholderpopup.cpp:487 #, kde-format msgid "list-add" -msgstr "" +msgstr "Přidat zástupce" #: UserMenu/usermenu.cpp:58 #, kde-format @@ -5481,14 +5470,12 @@ #: Synchronizer/synchronizergui.cpp:1160 #, kde-format msgid "The left base directory used during the synchronisation process." -msgstr "" -"Během synchronizačního procesu se použil základní adresář levého panelu." +msgstr "Během synchronizačního procesu se použil základní adresář levého panelu." #: Synchronizer/synchronizergui.cpp:1193 #, kde-format msgid "The right base directory used during the synchronisation process." -msgstr "" -"Během synchronizačního procesu se použil základní adresář pravého panelu." +msgstr "Během synchronizačního procesu se použil základní adresář pravého panelu." #: Synchronizer/synchronizergui.cpp:1207 #, kde-format @@ -5575,8 +5562,7 @@ #: Synchronizer/synchronizergui.cpp:1257 #, kde-format msgid "Show files marked to <i>Copy from left to right</i> (CTRL+L)." -msgstr "" -"Zobrazit soubory označené pro <i>kopírování zleva doprava</i> (CTRL+L)." +msgstr "Zobrazit soubory označené pro <i>kopírování zleva doprava</i> (CTRL+L)." #: Synchronizer/synchronizergui.cpp:1267 #, kde-format @@ -5591,13 +5577,12 @@ #: Synchronizer/synchronizergui.cpp:1287 #, kde-format msgid "Show files marked to <i>Copy from right to left</i> (CTRL+R)." -msgstr "" -"Zobrazit soubory označené pro <i>kopírování zprava doleva</i> (CTRL+R)." +msgstr "Zobrazit soubory označené pro <i>kopírování zprava doleva</i> (CTRL+R)." #: Synchronizer/synchronizergui.cpp:1297 -#, fuzzy, kde-format +#, kde-format msgid "Show files marked to delete (CTRL+T)." -msgstr "Zobrazit soubory označené k vymazání. (CTRL+T)" +msgstr "Zobrazit soubory označené ke smazání (CTRL+T)." #: Synchronizer/synchronizergui.cpp:1302 #, kde-format @@ -6501,8 +6486,7 @@ #: Konfigurator/kggeneral.cpp:73 #, kde-format msgid "Mimetype magic allows better distinction of file types, but is slower." -msgstr "" -"Magická čísla poskytují lepší rozlišení typů souborů, ale jsou pomalejší." +msgstr "Magická čísla poskytují lepší rozlišení typů souborů, ale jsou pomalejší." #: Konfigurator/kggeneral.cpp:80 #, kde-format @@ -6608,8 +6592,7 @@ #: Konfigurator/kggeneral.cpp:213 #, kde-format -msgid "" -"Make sure to install new tools in your <code>$PATH</code> (e.g. /usr/bin)" +msgid "Make sure to install new tools in your <code>$PATH</code> (e.g. /usr/bin)" msgstr "" "Ujistěte se, že instalujete nové nástroje do cesty v <code>$PATH</code> " "(např. /usr/bin)" @@ -6951,12 +6934,12 @@ #: Konfigurator/kglookfeel.cpp:183 #, kde-format msgid "Load the user defined folder icons" -msgstr "" +msgstr "Načítat uživatelské ikony adresářů" #: Konfigurator/kglookfeel.cpp:183 #, kde-format msgid "Load the user defined folder icons (can cause decrease in performance)." -msgstr "" +msgstr "Načítat uživatelské ikony adresářů (může zpomalovat načítání)" #: Konfigurator/kglookfeel.cpp:184 #, kde-format @@ -7092,8 +7075,7 @@ #: Konfigurator/kglookfeel.cpp:264 #, kde-format -msgid "" -"Each directory change in the panel is also performed in the other panel." +msgid "Each directory change in the panel is also performed in the other panel." msgstr "Každá změna v jednom panelu se provede rovněž v protilehlém panelu." #: Konfigurator/kglookfeel.cpp:288 @@ -7381,8 +7363,7 @@ #: Konfigurator/kgadvanced.cpp:63 #, kde-format msgid "MountMan won't (un)mount the following mount-points:" -msgstr "" -"Správce připojení disků nebude při(/od)pojovat následující přípojné body:" +msgstr "Správce připojení disků nebude při(/od)pojovat následující přípojné body:" #: Konfigurator/kgadvanced.cpp:77 #, kde-format @@ -7837,24 +7818,24 @@ msgstr "Pozadí určených ke smazání:" #: Konfigurator/kgcolors.cpp:211 -#, fuzzy, kde-format +#, kde-format msgid "Other" -msgstr "Jiný ..." +msgstr "Ostatní" #: Konfigurator/kgcolors.cpp:219 -#, fuzzy, kde-format +#, kde-format msgid "Quicksearch, match foreground:" -msgstr "Písmo adresářů:" +msgstr "Rychlé hledání, text při shodě:" #: Konfigurator/kgcolors.cpp:220 Konfigurator/kgcolors.cpp:222 -#, fuzzy, kde-format +#, kde-format msgid "Quicksearch, non-match background:" -msgstr "Alternativní pozadí:" +msgstr "Rychlé hledání, pozadí při shodě:" #: Konfigurator/kgcolors.cpp:221 -#, fuzzy, kde-format +#, kde-format msgid "Quicksearch, non-match foreground:" -msgstr "Písmo současného:" +msgstr "Rychlé hledání, text při neshodě:" #: Konfigurator/kgcolors.cpp:255 #, kde-format @@ -7922,14 +7903,14 @@ msgstr "Stejné" #: Konfigurator/kgcolors.cpp:526 -#, fuzzy, kde-format +#, kde-format msgid "Quicksearch non-match" -msgstr "Rychlé hledání" +msgstr "Rychlé hledání neshoda" #: Konfigurator/kgcolors.cpp:527 -#, fuzzy, kde-format +#, kde-format msgid "Quicksearch match" -msgstr "Rychlé hledání" +msgstr "Rychlé hledání shoda" #: Konfigurator/kgcolors.cpp:546 #, kde-format @@ -8195,8 +8176,7 @@ #: Konfigurator/kgarchives.cpp:107 #, kde-format -msgid "" -"Some corrupted archives might cause a crash; therefore, testing is suggested." +msgid "Some corrupted archives might cause a crash; therefore, testing is suggested." msgstr "" "Některé poškozené archívy mohou způsobit spadnutí programu. Proto se " "doporučuje zapnout testování archívů." @@ -8208,8 +8188,7 @@ #: Konfigurator/kgarchives.cpp:125 #, kde-format -msgid "" -"Make sure to install new packers in your <code>$PATH</code> (e.g. /usr/bin)" +msgid "Make sure to install new packers in your <code>$PATH</code> (e.g. /usr/bin)" msgstr "" "Ujistěte se, že instalujete nové archivátory do cesty v <code>$PATH</code> " "(např. /usr/bin)" @@ -8264,9 +8243,9 @@ msgstr "Použít písmo s pevnou šířkou jako výchozí" #: krslots.cpp:100 -#, fuzzy, kde-format +#, kde-format msgid "No selected files to send!" -msgstr "Jen označené soubory" +msgstr "Nejsou označeny soubory, které se mají poslat!" #: krslots.cpp:108 #, kde-format @@ -8278,12 +8257,12 @@ "nainstalujte jej do vaší cesty. Tip: Krusader podporuje KMail." #: krslots.cpp:117 -#, fuzzy, kde-format +#, kde-format msgid "Sending file: %2" msgid_plural "Sending files: %2" -msgstr[0] "Posílám soubor: %1" -msgstr[1] "Posílám soubor: %1" -msgstr[2] "Posílám soubor: %1" +msgstr[0] "Posílám %1 soubor: %2" +msgstr[1] "Posílám %1 soubory: %2" +msgstr[2] "Posílám %1 souborů: %2" #: krslots.cpp:167 #, kde-format @@ -8528,8 +8507,7 @@ #: Splitter/combiner.cpp:154 #, kde-format -msgid "" -"Validity checking is impossible without a good CRC file. Continue combining?" +msgid "Validity checking is impossible without a good CRC file. Continue combining?" msgstr "" "Kontrola platnosti je nemožná bez platného CRC (kontrolní součet) souboru. " "Pokračovat ve slučování?" @@ -8666,48 +8644,3 @@ msgid "Writing to %1 is not supported" msgstr "Zápis do %1 není podporován" -#~ msgid "" -#~ "Don't use KDE's media protocol for media button (if it's buggy or missing)" -#~ msgstr "" -#~ "Nepoužívat protokol media z KDE pro tlačítko Media (pokud nefunguje nebo " -#~ "chybí)" - -#~ msgid "" -#~ "Select if your media protocol is buggy (in some older KDE versions), or " -#~ "not present (no kdebase package installed)." -#~ msgstr "" -#~ "Vyberte, jestli je u vás protokol media chybový (v některých starších " -#~ "verzích KDE), nebo vůbec není nainstalovaný (bývá v balíčku kdebase)" - -#~ msgid "Brief" -#~ msgstr "Stručný" - -#~ msgid "Clear location bar button" -#~ msgstr "Tlačítko vymazat řádek s umístěním" - -#~ msgid "Clears the location bar" -#~ msgstr "Vyčistí řádek s umístěním" - -#~ msgid "CD Recorder" -#~ msgstr "CD Vypalovačka" - -#~ msgid "DVD Recorder" -#~ msgstr "DVD Vypalovačka" - -#~ msgid "DVD" -#~ msgstr "DVD" - -#~ msgid "Zip Disk" -#~ msgstr "Zip disk" - -#~ msgid "add" -#~ msgstr "přidat" - -#~ msgid "<qt>Can't open <b>%1</b></qt>" -#~ msgstr "<qt>Nemohu otevřít <b>%1</b></qt>" - -#~ msgid "Can't open \"%1\"" -#~ msgstr "Nelze otevřít \"%1\"" - -#~ msgid "Clear the location bar" -#~ msgstr "Vyčistit řádek umístění" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |