]> git.sur5r.net Git - bacula/bacula/commitdiff
Update
authorKern Sibbald <kern@sibbald.com>
Wed, 31 Jan 2007 12:55:53 +0000 (12:55 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 31 Jan 2007 12:55:53 +0000 (12:55 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@4083 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/qt-console/README
bacula/src/qt-console/console/console.cpp
bacula/src/qt-console/console/console.h
bacula/src/qt-console/main.ui
bacula/src/qt-console/mainwin.cpp
bacula/src/qt-console/mainwin.h

index e6d6d8c2427f90ff5e9359b1e11637a4f400273b..84ced9ba22a408e9c3c5fd6538b212cc96c41016 100644 (file)
@@ -72,4 +72,16 @@ Design decisions:
 - All signal/slots are connected by explict code (most all are
   done in the MainWin constructor), rather than using designer.      
 
+Major projects:
+- Implement a restore page that does a directory tree restore selection
+  much like wx-console does.
+- Implement other restore interfaces such as brestore ...
+- Implement a database browser
+- Implement graphical commands that allow updating most aspects of
+  the database (i.e. commands for label, update Volume, ...)
+- Implement a resource (conf file) browser
+- Implement a reports page -- e.g. something similar to bweb
+- Implement Qt plugins to add new functionality to bat
+- Implement a GUI configuration file editor (something like JBacula).
+...
 
index 9472af502bf43638df2f6e00561631212370541c..5af0c86096c1b5d1666cdeaea1d9e6ef0dfa43bc 100644 (file)
@@ -117,12 +117,12 @@ void Console::connect()
       mainWin->set_status("Connection failed");
       return;
    } else {
+      /* Update page selector to green to indicate that Console is connected */
       mainWin->actionConnect->setIcon(QIcon(QString::fromUtf8("images/connected.png")));
       QBrush greenBrush(Qt::green);
       m_consoleItem->setForeground(0, greenBrush);
    }
 
-
    jcr.dir_bsock = m_sock;
 
    if (!authenticate_director(&jcr, m_dir, cons)) {
@@ -152,13 +152,11 @@ void Console::connect()
    mainWin->set_status(_(" Connected"));
    return;
 }
-#ifdef xxx
-    QByteArray bytes = m_Bash->readAllStandardOutput();
-    QStringList lines = QString(bytes).split("\n");
-    foreach (QString line, lines) {
-        m_Logw->append(line);
-    }
-#endif
+
+void Console::status_dir()
+{
+   write_dir("status dir\n");
+}
 
 void Console::set_textf(const char *fmt, ...)
 {
@@ -175,8 +173,6 @@ void Console::set_text(const QString buf)
 {
    m_cursor->movePosition(QTextCursor::End);
    m_cursor->insertText(buf);
-   m_textEdit->moveCursor(QTextCursor::End);
-   m_textEdit->ensureCursorVisible();
 }
 
 
@@ -184,11 +180,18 @@ void Console::set_text(const char *buf)
 {
    m_cursor->movePosition(QTextCursor::End);
    m_cursor->insertText(buf);
+}
+
+/* Position cursor to end of screen */
+void Console::update_cursor()
+{
+   QApplication::restoreOverrideCursor();
    m_textEdit->moveCursor(QTextCursor::End);
    m_textEdit->ensureCursorVisible();
 }
 
 
+/* Send a command to the Director */
 void Console::write_dir(const char *msg)
 {
    if (m_sock) {
@@ -206,6 +209,7 @@ void Console::write_dir(const char *msg)
    }
 }
 
+/* Called by signal when the Director has output for us */
 void Console::read_dir(int fd)
 {
    int stat;
@@ -240,11 +244,11 @@ void Console::read_dir(int fd)
    if (m_sock->msglen == BNET_PROMPT) {
       m_at_prompt = true;
       mainWin->set_status(_(" At prompt waiting for input ..."));
-      QApplication::restoreOverrideCursor();
+      update_cursor();
    }
    if (m_sock->msglen == BNET_EOD) {
       mainWin->set_status_ready();
-      QApplication::restoreOverrideCursor();
+      update_cursor();
    }
    return;
 }
index 1fcf095591184c9c4e5eeed94d9f5d79efb3cd3f..0d0304c44bfbef555a8d5b155cd2ae0fb9937ae5 100644 (file)
@@ -18,13 +18,15 @@ public:
    void set_text(const char *buf);
    void set_text(const QString buf);
    void set_textf(const char *fmt, ...);
+   void update_cursor(void);
    void write_dir(const char *buf);
    bool authenticate_director(JCR *jcr, DIRRES *director, CONRES *cons);
    bool is_connected() { return m_sock != NULL; };
 
 public slots:
-   void connect();
+   void connect(void);
    void read_dir(int fd);
+   void status_dir(void);
 
 private:
    QTextEdit *m_textEdit;
index 5dd1a1323257252b300e744accda9b1d7070ef0e..e84aced37b0817f87e6ea83eba04029d7405012d 100644 (file)
@@ -50,6 +50,9 @@
          <height>16777215</height>
         </size>
        </property>
+       <property name="windowTitle" >
+        <string>Page Selector</string>
+       </property>
        <widget class="QWidget" name="dockWidgetContents" >
         <layout class="QGridLayout" >
          <property name="margin" >
            <property name="whatsThis" >
             <string comment="Console Window" />
            </property>
+           <property name="horizontalScrollBarPolicy" >
+            <enum>Qt::ScrollBarAsNeeded</enum>
+           </property>
            <property name="documentTitle" >
             <string comment="Console Window" />
            </property>
    <addaction name="actionConnect" />
    <addaction name="actionSave" />
    <addaction name="actionPrint" />
+   <addaction name="actionStatusDir" />
    <addaction name="actionLabel" />
    <addaction name="actionRestore" />
    <addaction name="actionRun" />
     <string>Run a Job</string>
    </property>
   </action>
+  <action name="actionStatusDir" >
+   <property name="icon" >
+    <iconset>images/status.png</iconset>
+   </property>
+   <property name="text" >
+    <string>StatusDir</string>
+   </property>
+   <property name="toolTip" >
+    <string>status dir</string>
+   </property>
+   <property name="statusTip" >
+    <string>Status of Director</string>
+   </property>
+  </action>
  </widget>
  <resources>
   <include location="main.qrc" />
index ebe975d1036a40054c22e9290a8f8fa141c26efe..79f1cfbb6db5cbab563053ba29a2fddb10d37333 100644 (file)
@@ -57,9 +57,12 @@ MainWin::MainWin(QWidget *parent) : QMainWindow(parent)
            SLOT(treeItemClicked(QTreeWidgetItem *, int)));
    connect(treeWidget, SIGNAL(itemPressed(QTreeWidgetItem *, int)), this, 
            SLOT(treeItemClicked(QTreeWidgetItem *, int)));
+   connect(treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, 
+           SLOT(treeItemDoubleClicked(QTreeWidgetItem *, int)));
+
    connect(actionQuit, SIGNAL(triggered()), app, SLOT(closeAllWindows()));
    connect(actionConnect, SIGNAL(triggered()), m_console, SLOT(connect()));
-
+   connect(actionStatusDir, SIGNAL(triggered()), m_console, SLOT(status_dir()));
 }
 
 void MainWin::treeItemClicked(QTreeWidgetItem *item, int column)
@@ -71,6 +74,21 @@ void MainWin::treeItemClicked(QTreeWidgetItem *item, int column)
    }
 }
 
+/*
+ * ***FIXME***
+ * If item is a Console, then connect it
+ */
+void MainWin::treeItemDoubleClicked(QTreeWidgetItem *item, int column)
+{
+   (void)column;
+   int index = item->text(1).toInt();
+   /* ***FIXME**** make this automatic */
+   if (index >= 0 && index < 2) {
+      stackedWidget->setCurrentIndex(index);
+   }
+}
+
+
 
 /*
  * The user just finished typing a line in the command line edit box
index 67d7b81acf9fe70b6f5c5d048bdeea5d0347f9f6..eed58b21855592b064d7a3df7840e5a7f09f4729 100644 (file)
@@ -54,6 +54,7 @@ public slots:
    void input_line();
    void about();
    void treeItemClicked(QTreeWidgetItem *item, int column);
+   void treeItemDoubleClicked(QTreeWidgetItem *item, int column);
 
 private:
    QString m_UserInput;