summaryrefslogtreecommitdiffstats
path: root/src/app/BookMan/krbookmark.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2025-08-28 22:44:34 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2025-08-31 23:25:26 +0900
commit086012dcad8a976a0dabbb7cbc20c9cb612cdfa9 (patch)
tree56c9bfcfd7cd13b17707dc8862f26932e9814973 /src/app/BookMan/krbookmark.cpp
parent409e7f624d202c7f96b4d0ab2da1834135169f8b (diff)
downloadkrusader-master.tar.gz
krusader-master.zip
Restructure source foldersHEADmaster
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'src/app/BookMan/krbookmark.cpp')
-rw-r--r--src/app/BookMan/krbookmark.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/app/BookMan/krbookmark.cpp b/src/app/BookMan/krbookmark.cpp
new file mode 100644
index 0000000..cc67228
--- /dev/null
+++ b/src/app/BookMan/krbookmark.cpp
@@ -0,0 +1,92 @@
+#include "krbookmark.h"
+#include "../krusader.h"
+#include "../VFS/krarchandler.h"
+#include <tdeactioncollection.h>
+#include <kiconloader.h>
+#include <tdelocale.h>
+#include <kdebug.h>
+
+#define BM_NAME(X) (TQString("Bookmark:")+X)
+
+#if KDE_IS_VERSION(3,4,0)
+static const char* NAME_DEVICES = I18N_NOOP("Media");
+#else
+static const char* NAME_DEVICES = I18N_NOOP("Devices");
+#endif
+static const char* NAME_VIRTUAL = I18N_NOOP("Virtual Filesystem");
+static const char* NAME_LAN = I18N_NOOP("Local Network");
+
+KrBookmark::KrBookmark(TQString name, KURL url, TDEActionCollection *parent, TQString icon, TQString actionName ):
+ TDEAction(name, 0, 0, 0, parent, actionName.isNull() ? BM_NAME(name).latin1() : BM_NAME(actionName).latin1()),
+ _url(url), _folder(false), _separator(false) {
+ connect(this, TQ_SIGNAL(activated()), this, TQ_SLOT(activatedProxy()));
+ // do we have an icon?
+ if (!icon.isEmpty())
+ setIcon(icon);
+ else {
+ // what kind of a url is it?
+ if (_url.isLocalFile()) {
+ setIcon("folder");
+ } else { // is it an archive?
+ if (KRarcHandler::isArchive(_url))
+ setIcon("application-x-tar");
+ else setIcon("folder_html");
+ }
+ }
+
+ _children.setAutoDelete(true);
+}
+
+KrBookmark::KrBookmark(TQString name, TQString icon):
+ TDEAction(name, 0, 0, 0, 0), _folder(true), _separator(false) {
+ setIcon(icon=="" ? "folder" : icon);
+}
+
+KrBookmark* KrBookmark::getExistingBookmark(TQString actionName, TDEActionCollection *collection) {
+ return static_cast<KrBookmark*>(collection->action(BM_NAME(actionName).latin1()));
+}
+
+KrBookmark* KrBookmark::devices(TDEActionCollection *collection) {
+ KrBookmark *bm = getExistingBookmark(i18n(NAME_DEVICES), collection);
+ if (!bm) {
+#if KDE_IS_VERSION(3,4,0)
+ bm = new KrBookmark(i18n(NAME_DEVICES), "media:/", collection);
+#else
+ bm = new KrBookmark(i18n(NAME_DEVICES), "devices:/", collection);
+#endif
+ bm->setIconSet(krLoader->loadIcon("blockdevice", TDEIcon::Small));
+ }
+ return bm;
+}
+
+KrBookmark* KrBookmark::virt(TDEActionCollection *collection) {
+ KrBookmark *bm = getExistingBookmark(i18n(NAME_VIRTUAL), collection);
+ if (!bm) {
+ bm = new KrBookmark(i18n(NAME_VIRTUAL), "virt:/", collection);
+ bm->setIconSet(krLoader->loadIcon("pipe", TDEIcon::Small));
+ }
+ return bm;
+}
+
+KrBookmark* KrBookmark::lan(TDEActionCollection *collection) {
+ KrBookmark *bm = getExistingBookmark(i18n(NAME_LAN), collection);
+ if (!bm) {
+ bm = new KrBookmark(i18n(NAME_LAN), "lan:/", collection);
+ bm->setIconSet(krLoader->loadIcon("network", TDEIcon::Small));
+ }
+ return bm;
+}
+
+KrBookmark* KrBookmark::separator() {
+ KrBookmark *bm = new KrBookmark("");
+ bm->_separator = true;
+ bm->_folder = false;
+ return bm;
+}
+
+
+void KrBookmark::activatedProxy() {
+ emit activated(url());
+}
+
+#include "krbookmark.moc"